10.文件上传和文件包含

文件上传和文件包含

文件上传

文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。

一句话木马
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()

posted @ 2023-03-25 21:55  candada  阅读(193)  评论(0编辑  收藏  举报