文件上传和文件包含
目录文件上传
文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。
一句话木马
PHP: <?php @eval($_POST['cmd']);?>
ASP: <%eval request("cmd")%>
ASPX: <%@ Page Language="Jscript"%><%eval(Request.Item["cmd"],"unsafe");%>
JSP: <%Runtime.getRuntime().exec(request.getParameter("cmd"));%>
要满足三个条件,才能实现成功入侵:
(1)木马上传成功,未被杀;
(2)知道木马路径在哪,蚁剑等工具连接需要路径
(3)上传的木马能正常运行
上传绕过思路
IIS5和IIS6版本中
1.格式解析
语言 | 等价扩展名 |
---|---|
php | asa、cer、cdx |
asp | ashx、asmx、ascx |
aspx | php2、php3、php4、php5、phps、phtml |
jsp | jspx、jspf |
2.目录解析
服务器会默认将PHP目录下的文件解析为php文件。因此test.jpg、test.txt等文件都会被当作test.php文件解析执行。
3.分号解析
服务器会默认不解析“;”后面的内容,因此test.php;.jpg就被作为test.php解析执行。
4.黑名单
双写(phpphp)、大小写(PHP)、点(php.)、空格(php )编码、等价扩展名
5.白名单
%00截断、0x00截断、MIME绕过
MIME | 描述 |
---|---|
text/html | HTML格式 |
application/json | JSON数据格式 |
multipart/form-data | 文件上传(二进制数据) |
image/jpeg | jpg图片格式 |
总结:删除/禁用JS、修改MIME、等价扩展名、大小写、.htaccess文件+图片马、双写、空格、点、::$DATA、%00截断、0x00截断、条件竞争等等。
文件上传防御
1.检验扩展名是否在范围内
2.图像文件的情况下确认其文件头为图像类型,而不是伪装文件
3.针对上传文件大小进行约定(防止上传大文件进行 DDOS 攻击)
4.服务器端验证(防止前端绕过),重新渲染图片 b
5.上传的文件重命名,把文件地址隐藏了
Webshell介绍
Webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门。黑客在入侵了一个网站后,通常会将asp或php后门文件与网站服务器web目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。
webshell分类
大马:体积大、功能全、代码加密隐藏
小马:用于上传大马
一句话木马:代码短、实用场景多、难以查杀、数据传递
文件包含漏洞
文件包含,是一个功能。在各种开发语言中都提供了内置的文件包含函数,可以使开发人员在一个代码文件中直接包含(引入)另外一个代码文件。由于没有对要包含的文件进行安全考虑,就导致攻击者可以修改文件的位置来让后台执行任意文件,从而导致文件包含漏洞。
1、本地文件包含漏洞(LFI)
仅能够对服务器本地的文件进行包含,由于服务器上的文件并不是攻击者所能够控制的,因此该情况下,攻击者更多的会包含一些固定的系统配置文件,从而读取系统敏感信息。
2、远程文件包含漏洞(RFI)
能够通过url地址对远程的文件进行包含,这意味着攻击者可以传入任意代码。
常用的文件包含函数
include()、require()、include_once()、require_once()
标签:文件,解析,包含,10,漏洞,php,上传 From: https://www.cnblogs.com/candada/p/17255731.html