初级安全入门—— WEBshell与文件上传漏洞
概念介绍
- WebShell网页木马文件
- 最常见利用文件上传漏洞的方法就是上传网站木马(WebShell)文件,根据开发语言的不同又分为ASP木马、PHP木马、JSP木马等,该木马利用了脚本语言中的系统命令执行、文件读写等函数的功能,一旦上传到服务器被脚本引擎解析,攻击者就可以实现对服务器的控制。
一句话木马(小马):功能简单,需要配合客户端使用,隐蔽性强,容易通过变形隐藏特征,绕过过滤
大马:功能完善,直接使用浏览器即可利用,隐蔽性相对较弱,通常需要通过加密等方式来隐藏特征
实验场景一:文件上传
检测文件MIME类型的文件上传传漏洞利用
通过把木马eval.php拓展名改成jpg,再通过代理抓包,将拓展名改回php
实现绕过MIME类型检测
服务端黑名单检测文件扩展名的文件上传漏洞利用
把木马eval.php拓展名改成jpg,再通过代理抓包,send到BurpSuitde的repeat模块
尝试各种拓展名修改绕过黑名单如(拓展名改为Php,PHP,php5,php6等等)
发现Php可以绕过检验
猜测推断或者利用其他功能找出木马在服务器的路径
找到路径后,可以直接配合CKnife使用来控制整个服务器
文件上传漏洞防护
- 黑名单检测:一般有个专门的blacklist文件,里面包含各种常见的危险脚本文件的拓展名,如:php,asp,jsp。该方式过滤的完整度受限于blacklist内容,不够安全
- 白名单检测:只允许系统接受的文件类型通过,如只能上传png,jpg,zip,rar等。该方式相对安全。
总结
通过实验可以看出,木马的直接利用难度很高,一般通过文件上传,攻击者很难猜出木马在服务器的路径。木马的利用,大都是攻击者通过其他方式获取了shell权限,为了下次控制服务器的方便,在服务器上留下的后门(正如木马本身的含义)。
初级安全入门—— WEBshell与文件上传漏洞的更多相关文章
- 1.5 webshell文件上传漏洞分析溯源(1~4)
webshell文件上传漏洞分析溯源(第一题) 我们先来看基础页面: 先上传1.php ----> ,好吧意料之中 上传1.png ----> 我们查看页面元素 -----> ...
- web安全之文件上传漏洞
成因: 当文件上传时,若服务端脚本语言未对上传的文件进行严格验证和过滤,若恶意用户上传恶意的 脚本文件时,就有可能控制整个网站甚至是服务器,这就是文件上传漏洞. 权限: 1. 后台权限:登陆了后台,可 ...
- 小白日记38:kali渗透测试之Web渗透-手动漏洞挖掘(四)-文件上传漏洞
手动漏洞挖掘 文件上传漏洞[经典漏洞,本身为一个功能,根源:对上传文件的过滤机制不严谨] <?php echo shell_exec($_GET['cmd']);?> 直接上传webshe ...
- WEB安全:文件上传漏洞
文件上传漏洞过程 用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力. 一般的情况有: 上传文件WEB脚本语言,服务器的WEB容器解释并执行了用户上传的脚本,导致代码执行: ...
- DVWA 黑客攻防演练(五)文件上传漏洞 File Upload
说起文件上传漏洞 ,可谓是印象深刻.有次公司的网站突然访问不到了,同事去服务器看了一下.所有 webroot 文件夹下的所有文件都被重命名成其他文件,比如 jsp 文件变成 jsp.s ,以致于路径映 ...
- Kali学习笔记38:文件上传漏洞
早些年,提到Web渗透,或者搜索一些黑客教程 基本都会看到文件上传漏洞. 它是一个很经典的漏洞 但它本质其实不是一个漏洞,而是网站本身的上传文件功能 不过如果我们上传了Webshell,那么就成为了文 ...
- 【代码审计】CLTPHP_v5.5.3 前台任意文件上传漏洞
0x00 环境准备 CLTPHP官网:http://www.cltphp.com 网站源码版本:CLTPHP内容管理系统5.5.3版本 程序源码下载:https://gitee.com/chichu/ ...
- 攻防:文件上传漏洞的攻击与防御,转自H3C
WebShell就是以asp.php.jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门.黑客在入侵了一个网站后,通常会将这些asp或php后门文件与网站服务器WEB目 ...
- WebLogic 两处任意文件上传漏洞动态分析(CVE-2018-2894)
0x01 前言 CNCERT前几天发公告称发现Oracle公司出品的基于JavaEE结构的中间件WebLogic产品存在一个远程上传漏洞,并得到了厂商的确认,危害程度评分高达9.8分.鉴于厂商已进行了 ...
随机推荐
- 配置hive元数据数据库
<configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <v ...
- Python中列表(list)、字典(dict)排序的程序
Python3 中的排序,在 Sorting HOW TO 中已经讲得很清楚了.来个实际的例子,对下面的这个 list 依据创建时间排序: pages = [{'title': '十年学会程序设计', ...
- Maven下载项目依赖jar包和使用方法
一.Maven3.5.0安装与配置+Eclipse应用 参考:Maven3.5.0安装与配置+Eclipse应用 二.http://mvnrepository.com/ 此处以http://mvnre ...
- CI 数据库操作总结
最简单示例 $query = $this->db->query("YOUR QUERY"); foreach ($query->result() as $row) ...
- 黄聪:实用WordPress SQL查询方法
为所有文章和页面添加自定义字段 这段代码可以为WordPress数据库内所有文章和页面添加一个自定义字段. 你需要做的就是把代码中的‘UniversalCutomField‘替换成你需要的文字,然后把 ...
- 关于MySql悲观锁与乐观锁
悲观锁与乐观锁是两种常见的资源并发锁设计思路,也是并发编程中一个非常基础的概念.本文将对这两种常见的锁机制在数据库数据上的实现进行比较系统的介绍. 悲观锁(Pessimistic Lock) 悲观锁的 ...
- 【问题解决】使用docker配置redis主从复制,不生效
不生效,解决 原因1:修改 bind 原因2: Slave即的db save失败,因为没有写权限
- print 输出到文件
content = """We have seen thee, queen of cheese, Lying quietly at your ease, Gently f ...
- PAT 乙级 1048 数字加密(20) C++版
1048. 数字加密(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题要求实现一种数字加密方法.首先固 ...
- Scala函数式对象-有理数
有理数类的表示 实现规范:支持有理数的加减乘除,并支持有理数的规范表示 1.定义Rational 首先,考虑用户如何使用这个类,我们已经决定使用“Immutable”方式来使用Rational对象,我 ...