打开题目
dirsearch扫描发现存在shell.php
非预期解
访问shell.php,往下翻直接就看到了flag..
正常解法
访问shell.php
看见php的版本是7.3.33
我们知道
PHP<=7.4.21时通过php -S开起的WEB服务器存在源码泄露漏洞,可以将PHP文件作为静态文件直接输出源码
读取不完整,有不可见字符
我们复制进16进制编辑器里面看看
正常结果应该是
但是我的16进制转文本导出来的结果如下
所以我们根本很难将其转换文emoji
那我们反推
我们知道
就知道了emoji的16进制是
F0 9F 91 BD
get传参
得到根目录下的所有文件
直接cat /flag得到flag
知识点:
1.在16进制数中,两个字符是一个字节。
2.php特殊版本7.4.21
PHP<=7.4.21时通过php -S
开起的WEB服务器存在源码泄露漏洞,可以将PHP文件作为静态文件直接输出源码
复现的时候记得要关掉Burp自动修改Content-Length的功能
"\r\n"就是bp中的换行,即留一行空着。
知识点参考:PHP<=7.4.21 Development Server源码泄露漏洞