CTFHub笔记之技能树RCE:eval执行、文件包含、远程包含、php://input、读取源代码

小白一个,记录解题过程,如有错误请指正!

一、eval执行

知识点:

        eval():把字符串 code 作为PHP代码执行。函数eval()语言结构是非常危险的,因为它允许执行任意 PHP 代码。它这样用是很危险的。如果您仔细的确认过,除了使用此结构以外别无方法, 请多加注意,不要允许传入任何由用户提供的、未经完整验证过的数据 。


1.用ls查看当前目录,没有发现什么

?cmd=system("ls");

        system():执行系统命令并输出执行结果

2.查看根目录,发现了flag

?cmd=system("ls%20/");

3.读取flag_26396内容即可

?cmd=system("cat%20/flag_26396"); 

二、文件包含

1.题目给了一个shell,点击之后发现是一句话木马

考点:include

解释:假如在index.php中include了一个文件,那么不管这个文件后缀是什么 这个文件中的内容将会直接出现在index.php中。

思路:只要我们把shell.txt的一句话木马内容传到index.php,就可以用蚁剑连接。

padload:

?file=shell.txt

 2.在根目录最下面找到flag

 或者 打开终端  cat /flag

三、php://input

        进来发现又是一段源码,大概意思是必须要php://+payload,看到这会想到php://input和php://filter,不过根据题目可以知道这题要用php://input伪协议

 不过还是进入phpinfo看一下allow_url_include是否打开,发现没有问题

 1.使用burp进行改包

 2.修改payload后发送,发现什么都没有

3.去根目录看一下,发现flag

4.拿到flag

四、远程包含

发现php://input还可以使用,解题方式与上题相同。

五、读取源代码

1.进来发现题目直接给出flag的位置了,用之前的php://input伪协议burp改包发现不管用了,应该是allow_url_include:off 了(默认off,on状态php://input伪协议才可以使用)。

2.我们可以用php://filter实现对文件的访问

?file=php://filter/resource=/flag

 

3.还可以用下面的payload实现flag以base64加密形式输出:

?file=php://filter/read=convert.base64-encode/resource=/flag

 

 

参考文章:

https://blog.csdn.net/weixin_50464560/article/details/117385343

https://blog.csdn.net/m0_52432374/article/details/115186285

https://www.cnblogs.com/linuxsec/articles/12684259.html

### CTFHub 技能树中的 RCE文件包含漏洞 #### 关于远程代码执行 (RCE) 在Web应用程序开发过程中,如果开发者未能正确过滤用户输入的数据就将其用于构建命令字符串,则可能导致远程代码执行(RCE)漏洞。例如,在某些情况下,`shell_exec()` 函数被用来执行系统级别的指令而未对传入参数进行适当的安全检查[^4]。 ```php $result .= shell_exec('ping ' . $ip); // 用户提供的 IP 地址可能携带恶意负载 ``` 这种做法非常危险,因为它允许攻击者注入额外的命令来操纵服务器端的行为。为了防止这种情况发生,应当始终确保所有来自用户的输入都经过严格的验证和清理过程后再使用。 #### 文件包含漏洞概述 文件包含漏洞分为两种主要形式:本地文件包含(LFI)与远程文件包含(RFI),其中LFI更为常见。当应用允许动态加载文件时(比如通过URL参数指定要显示哪个页面),并且这些请求缺乏足够的访问控制机制的话,那么就可能存在这样的风险——即攻击者能够利用该功能读取敏感信息甚至运行任意脚本[^1]。 对于PHP环境而言,内置函数如 `include()` 或者 `require_once()` 都可用于引入其他文件的内容到当前文档流中去。然而一旦程序逻辑设计不当,使得外部可控变量可以直接影响所载入的具体位置,就会形成安全隐患: ```php //安全的做法 if(isset($_GET['file'])) { include $_GET['file']; // 攻击者可以通过修改 URL 参数 file 来尝试加载不同类型的文件 } ``` 上述例子展示了如何不当地依赖未经审查的 GET 请求参数来进行文件操作,这很容易成为 LFI 的入口点[^2]。 #### 安全建议 为了避免遭受因 RCE文件包含缺陷带来的威胁,应该遵循以下几点最佳实践: - 对所有的用户提交数据实施强有力的输入校验; - 使用白名单策略限定可接受的操作范围; - 尽量减少对外部源码片段直接解释的需求,转而在必要场合下采用更稳妥的方式实现相同目的; - 警惕像 eval() 这样的高危特性,除非绝对必需否则应避免使用它们,并且即使要用也需格外小心地管理传递给它的每一个字符[^3];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值