论SQL注入绕过技术—Hack之路

SQL注入绕过技术
大小写绕过注入
    例如大小写绕过注入的测试地址:http://192.168.0.106/sqli/?id=1。访问id=1’,发现错误页面爆出MySQL错误,当访问id=1 and 1=1 时,页面返回”no hack”,显然是被拦截了,说明有关键词被过滤。使用关键字大小血的方式尝试绕过,如And 1=1,可以看到访问id=1 And 1=1时页面返回与id=1相同的结果,访问id=1 And 1=2时页面返回与id=1不同的结果,得出有SQL注入漏洞的结论
小结:关于 id=1 and 1=1被拦截,则进行大小写转换绕过(aNd 1=1,AND 1=1,And,AnD 1=1)
    使用order by查询字段数量,发现还是被拦截了,还是利用修改关键字大小来进行绕过它,尝试只改order这个单词,结果发现当order改成Order后,页面显示正常,说明by并没有被拦截
小结:关于order by进行大小先转换(Order By,oRder By)等类似转写

双写绕过注入
     例如双写注入的测试地址:http://192.168.0.106/sqli/?id=1。访问id=1’,发现页面爆出MySQL错误,接着访问id=1 and 1=1,页面依然报出MySQL的错误,但是从错误信息中可以看出,输入 and 1=1 变成了1=1,因此可以得知,关键字and被过滤了。这时尝试使用双写的方式绕过,如anandd 1=1,当and被过滤后,anandd变成了and,所以这时传入数据库的语句是and 1=1,结果,成功执行并返回正常页面
接着,输入anandnd 1=2,返回错误信息,判断页面参数存在SQL注入漏洞。当访问id=1 order by 3时,MySQL的错误信息为”der by 3″,所以这里并没有过滤order整个单词二十仅过滤or,因此只需要双写or即可
小结:关于and 1 = 1 变成1=1就是过滤and双写绕过(andand,aanndd,anandd),order by 变成der by过滤or则双写or便可以oror

编码绕过注入
     例如双写注入的测试地址:http://192.168.0.106/sqli/?id=1。访问id=1’,发现页面报出MySQL错误,接着访问id=1 and 1=1和id=1 and 1=2时,发现关键字and被拦截。尝试使用URL全编码的方式绕过拦截。由于服务器会自动对URL进行一次URL解码,所以需要吧关键词编码两次,这里需要注意的地方是,URL编码需选择全编码,而不是普通的URL编码。关键字and进行两次URL全编码的结果是%25%36%31%25%36%65%25%36%34,访问id=1%25%36%31%25%36%65%25%36%34 1=1时,页面正常%25%36%31%25%36%65%25%36%34,访问id=1%25%36%31%25%36%65%25%36%34 1=2时,页面返回与id=1有不同的结果,所以该网址存在SQL注入
注:本人未测试出来,可能环境不符

内联注释绕过注入
    内联注释绕过注入的测试地址:http://192.168.0.106/sqli/?id=1。访问id=1’,发现页面报出Mysql错误,接着访问id=1 and 1=1 和id=1 and 1=2时发现页面提示”no hack”,即使关键词被拦截。尝试使用内联注释绕过。内联注释的相关内容在介绍MySQL的知识点时讲解过。访问/*!1/**/and/**/1=1*/,页面返回与id=1相同的结果;访问/*!1/**/and/**/1=2/时,页面返回与id=1不同的结果

网站地址:https://www.hackzl.cn;发布者:hack之路,转转请注明出处:https://www.hackzl.cn/index.php/2020/09/21/%e8%ae%basql%e6%b3%a8%e5%85%a5%e7%bb%95%e8%bf%87%e6%8a%80%e6%9c%af-hack%e4%b9%8b%e8%b7%af/

发表评论

邮箱地址不会被公开。 必填项已用*标注