前段时间的几次渗透测试中有几个有意思的sql注入,记录一下注入的绕过过程,网站地址及部分信息都有模糊处理,并已反映给相关单位。
0x01 案例一 绕安全狗
加',报错,连sql语句都给了出来,典型的注入,原本以为属于可以直接一把梭的站
order by查字段遭遇安全狗拦截
现在需要手动绕过,感觉这个安全狗应该是比较老的版本
过滤字符:
order by
union select
Length(database())
……
不过滤单个字符,只过滤了相关组合查询语句,一番手动测试成功测出%23%0a可以绕过安全狗拦截
查字段payload:
%20order%23%0aby%2013%23
%23: #
%0a: 换行符
根据是否报错,查询出有13个字段,但是当使用联合查询注入或盲注时这个payload失效,再次绕过安全狗
终极bypass如下,采用注释绕过,同时#必须用%23,不然会被安全狗拦截
/*&ID=-20 union select 1,2,3,4,5,6,7,8,9,10,11,12,13%23*/
0x02 案例二 盲注绕WTS
查询字段很顺利,直接order by 2查出2个字段但是联合查询注入失败,各种绕过都试了下均失败
又试了下盲注,居然过了,只是过程稍显麻烦
数据库长度为9
and Length(database())>9%23
然后burp抓包,设置爆破范围
and ORD(mid(database(),1,1))=95%23
设置AIISC范围95~122,因为mysql默认不区分大小写,默认都为小写
一位一位爆库
不再赘述。
作者:zjun 文章来源:https://www.zjun.info/2020/sqlina.html
关注公众号:HACK之道