攻防世界Web进阶区部分writeup 2
¶lottery
这题是我那一届xman选拔赛QCTF的题目 当时做出来了
我记得payload所以一下子就做出来了
但这题应该的步骤是
扫描目录->发现有git泄露->githack下载源码->审计发现有弱类型漏洞->编写payload
¶Web2
1 | <?php |
就是逆向解密加密算法
把密文通过rot13 strrev base64_decode之后得到
‘~88:36e1bg8438e41757d:29cgeb6e48c`GUDTO|;hbmg’
对代码进行分析 发现主要的加密逻辑在这里
1 | $__=ord($_c)+1; |
取原文的每一个ASCII值加1
复制源代码吧+1改为-1即可
附上代码
1 | <?php |
得到flag
¶PHP2
/index.phps发现源码泄露
1 | <?php |
第一步 要使’admin’不等于id传入的参数
第二步 id传入的参数经过一次url解码之后使得它等于’admin’
思路就是二次url编码
payload:
/index.php?id=admi%256e
因为浏览器会进行第一次解码 传入的参数在第一次判断时就变成了’admi%6e’
代码中进行第二次解码就变成了’admin’
¶easytornado
这道题是护网杯的题目之前打过
flag的位置在/fllllllllllllag
welcome 的内容为
http://111.198.29.45:49603/file?filename=/welcome.txt&filehash=a74279ca034b144dfdbb3aca8e4a21c1
hints的内容为md5(cookie_secret+md5(filename))
很容易让人联想到哈希长度扩展攻击
但其实不是
哈希长度扩展攻击要求md5(cookie_secret+这里的内容长度是可控的)
但这里被md5长度锁死了
所以这题的思路就是
获取cookie_secret 构造合适的filehash来读取flag
但怎么获取呢?
在试错之后发现一个页面
http://111.198.29.45:49603/error?msg=Error
msg=Error 发现这个是可控的
想到了模版注入
确实存在模版注入
查了资料之后发现tornado的cookie_secret在handler.settings文件中
得到了cookie_secret
现在可以构造payload了
1 | <?php |
得到filehash=73686d058425888d3491cbd05aaf4948
代入得到flag