我正在尝试修改SQLmap连接类(https://github.com/sqlmapproject/sqlmap/blob/master/lib/request/connect.py)以满足我的需求。
我想要做的是检查回复是否包含“CAUGHT BY WAF”并重复该请求,直到它不包含它为止。
因此,在第471行之后,我补充道:
conn = urllib2.urlopen(req)
while('CAUGHT BY WAF' in conn.read()):
conn = urllib2.urlopen(req)
但是这不起作用,因为在执行conn.read()
之后,SQLmap将无法再次读取响应,因为您只能执行一次。
P.S:我试图使用深度镜:
conn = urllib2.urlopen(req)
conn2 = copy.deepcopy(conn)
while('CAUGHT BY WAF' in conn2.read()):
conn = urllib2.urlopen(req)
conn2 = conn
但仍然无效(不明白为什么!!)
所以我的问题是:我怎样才能不止一次conn.read()
?
谢谢!
答案 0 :(得分:1)
调用正在向您发送一个流,因此如果您想多次使用该数据,可以将其保存在临时文件中,然后从那里解析它。
content = conn.read()
file.write(content)