2022-TQLCTF-A More Secure Pastebin-WP
/
ctf
TQLCTF-Web-A More Secure Pastebin
题目与去年祥云杯的PackageManager有异曲同工之处,只不过那个是mongo的注入,但是也有XSLeaks的做法。
XSleaks - SCU-CTF HomePage (scuctf.com)
这道题是XSLeaks侧信道攻击,由init.js可知mongodb中有五条关于flag的记录。
1 | // add flags |
再看到admin.js路由中/searchword接口
1 | router.get("/searchword", ensureAdmin, async (req, res) => { |
admin的搜索是进行全局搜索,所以可以构造一个页面去让bot进行搜索。
虽然因为跨域的原因我们没办法直接获取搜索结果,但是可以根据接口响应时间去判断出来,类似于SQL时间盲注入。
例如搜索TQLCTT,因为结果中没有这样的字符串,所以请求响应较快,而搜索TQLCTF则响应速度要稍慢。
以下是exp:
1 | from flask import Flask,render_template,request, |
1 | <!-- templates/index.html--> |
将flask服务器架设起来接收结果。
打开burp用测试器爆破,提交架设的页面让bot去访问,Payload选择小写字母和数字(因为flag只有八位小写字母和数字),爆破完一位往flask代码里再加一位就好了。
这里的前六位MD5验证码其实是可以重复使用的,如果失效了就再申请一个替换session即可。
可以看到搜索有结果的请求,响应时间的差别还是很大的。
最后flag就是TQLCTF{5b2e5a7f}