首页 > 其他分享 >10.文件上传和文件包含

10.文件上传和文件包含

时间:2023-03-25 22:14:19浏览次数:36  
标签:文件 解析 包含 10 漏洞 php 上传

文件上传和文件包含

目录

文件上传

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

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

相关文章

  • 临时上传服务器搭建 transfer.sh
    https://github.com/dutchcoders/transfer.shtransfer.sh   Easyandfastfilesharingfromthecommand-line.Thiscodecontainstheserverwitheverythingyo......
  • mybatis xml文件热加载实现
    本文博主给大家带来一篇mybatisxml文件热加载的实现教程,自博主从事开发工作使用Mybatis以来,如果需要修改xml文件的内容,通常都需要重启项目,因为不重启的话,修改是不生......
  • ghidra---导出数据到文件
    ghidra---导出数据到文件Ghidra里,没有比较方便的方法直接导出数据到文件,可以执行python脚本实现。写了一个Ghidra用的脚本:https://github.com/qux-bbb/ghidra-scripts/......
  • Ajax上传文件Djano后台接收
    模态框的编写<!--按钮--><inputtype="button"class="btnbtn-primarychange-password-buttonAvatar"value="更换头像"style="margin-......
  • 1073-76
    #include<iostream>#include<cmath>usingnamespacestd;intmain(){ intn; doublex,z,c,j,p; intr=0; cin>>n; doublex2=0,z2=0; for(inti=0;i<n;i++){......
  • 洛谷P1020
    P1020[NOIP1999普及组]导弹拦截思考这题很显然是一道DP题,第一问就是求该序列的最长不下降子序列.先说最长不下降子序列的\(O(n^2)\)的做法.用\(dp_k\)表示第\(k\)......
  • 1073:救援
    #include<iostream>#include<cmath>usingnamespacestd;intmain(){ floatn,a,b,c,d; cin>>n; cin>>a; cin>>b; cin>>c; d=d+a/50*2; d=d+b/50*2; d=d+c*1; d=d+c*0.5......
  • 1074 津津的储蓄计划
    include<iostream>usingnamespacestd;intmain(){intn=0,x,s=0,a,b=0,y=1;for(inti=1;i<=12;i++){cin>>x;n=n+300-x;if(......
  • 配置GlusterFS分布文件系统​
    一、在Centos01到Centos04,在每台服务器创建四个分区格式为xfs文件系统自动设置开机自动启挂载二、在Centos01到Centos04安装glusterFs分布式存储系统一、在Centos01到Cento......
  • win10 打开 chm 文件
    用管理员身份打开command窗口,输入regsvr32hhctrl.ocx ......