您的位置:首页 > 房产 > 建筑 > 成品人和精品人的区别在哪_app开发大概多少钱_下载百度官方版_怎样做公司网站推广

成品人和精品人的区别在哪_app开发大概多少钱_下载百度官方版_怎样做公司网站推广

2025/7/22 22:32:16 来源:https://blog.csdn.net/weixin_61178890/article/details/146252861  浏览:    关键词:成品人和精品人的区别在哪_app开发大概多少钱_下载百度官方版_怎样做公司网站推广
成品人和精品人的区别在哪_app开发大概多少钱_下载百度官方版_怎样做公司网站推广

文章目录

前言

一、原理、危害和利用条件

1.原理

2.危害

3.利用条件

二、防御措施

三、绕过手段

四、反弹shell的方式

五、文件上传怎么绕过黑名单?.user.ini和htaccess绕过原理

六、什么是webshell

七、文件上传后常见的安全问题有哪些?

八、产生文件上传漏洞的原因有哪些?

九、文件上传漏洞常见的防护措施有哪些?

十、常见的一句话木马有哪些?

十一、如何检测文件上传漏洞?

十二、文件上传漏洞如何利用?

十三、如何制作图片马?

十四、介绍一下php中$_file函数

总结


前言

本文记录了博主文件上传漏洞的面试笔记。


一、原理、危害和利用条件

1.原理

文件上传漏洞是指应用程序没有正确验证或限制用户上传的文件,从而导致攻击者上传恶意文件,并在服务器上执行这些文件,进而获取对系统的控制权或破坏系统的正常运行。

2.危害

文件上传漏洞的危害主要有:webshell上传、远程代码执行、病毒和恶意软件传播等。

3.利用条件

(1)上传的文件能够被服务器执行;

(2)用户能够从web访问这个文件;

(3)用户上传的文件没有经过格式化、压缩、剪裁等安全处理。

二、防御措施

(1)对上传的文件类型进行验证,使用MIME类型验证;检查文件头,通过读取文件头来确认其实际类型;限制允许上传的文件扩展名。

(2)将上传的文件重命名为随机名,防止文件名冲突和路径猜测;将上传的文件存储在非公开目录,防止直接通过url访问。

(3)设置适当的文件权限,防止执行权限。

(4)限制文件大小,防止上传过大文件造成服务器资源耗尽。

(5)白名单验证(对上传文件的类型、扩展名进行严格的白名单验证,只允许特定类型的文件上传)

三、绕过手段

(1)前段检测:

burp抓包修改上传文件后缀;

禁用js。

(2)后端检测:

如果后端对于MIME类型检测,可以修改http请求包中的content-type字段为合法类型进行绕过;

如果后端对文件扩展名进行检测,那就可以判断一下是白名单检测还是黑名单检测

        1)如果是黑名单检测,可以尝试异形后缀绕过(php2\php3\phtml\pht)、利用系统机制绕过(php.\php+)或者利用畸形文件名后缀来进行绕过(大小写\混写)

        2)如果是白名单检测,可以尝试利用一些解析漏洞(比如apache多后缀解析漏洞),或者通过上传图片马的方式来进行绕过(一般要结合文件包含漏洞)

四、反弹shell的方式

Windows:powershell、powercat

Linux:bash、netcat、wget、python、php

五、文件上传怎么绕过黑名单?.user.ini和htaccess绕过原理

参考链接:

.user.ini文件构成的PHP后门0x00背景这个估计很多同学看了不屑,认为是烂大街的东西了:.htaccess文件 - 掘金 (juejin.cn)

深入剖析文件上传:黑名单、白名单与数组绕过技巧_springboot 文件上传白名单绕过方式-CSDN博客

(1)后缀大小写绕过,如.Php。【在php环境下服务器默认是不区分文件名大小写的,这样就有可能绕过黑名单检测】

(2)空格绕过,如test.php (注意后面有空格)【在windows中保存文件时会自动去除文件名末尾的空格,而黑名单中通常不会包含带空格的后缀,以此绕过检测】

(3)点绕过,如.php,。【在windows中文件名最后一个点会被自动忽略。可以利用这个特性,上传文件,绕过黑名单检测】

(4)特殊字符串绕过,如test.php::$DATA。【服务器检测时,可能会将::$DATA视为非法字符而不进行严格检查,但Windows系统会正确处理这个文件名,将其保存为test.php,从而绕过黑名单】

(5)解析漏洞配合绕过【例如,在apache服务器在解析文件时,如果遇到不认识的后缀,会从右往左继续判断。可以构造文件名如test.php.owmf.rr,apache会一直往左解析,直到遇到.php,从而将文件识别为php文件并执行】

(6).htaccess文件利用:

.htaccess是Apache服务器的分布式配置文件,用于针对目前目录及其子目录进行配置。可以上传包含特定规则的.htaccess文件,使服务器将指定文件作为php文件解析。例如,在.htaccess文件中写入AddType application/x-httpd=php.sng,然后上传名为test.sng的文件(内容为恶意php代码),服务器就会将test.sng当做php文件解析,从而绕过黑名单。

(7).user.ini绕过原理:

        .user.ini比.htaccess用的更广,不管是nginx/apache/iis,只要是以fastcgi运行的php都可以使用。.user.ini是php中的一种配置文件,和.htaccess一样是对当前目录的所有php文件进行配置,即写了.user.ini,和它同目录的文件会优先使用.user.ini中设置的配置属性。

        在.user.ini中写入:auto_prepend_file=1.png然后上传。指定一个文件,自动包含在要执行的php文件前,类似于在文件前调用了require()函数。而auto_append_file类似,只是在文件后面包含。(1.png可以是图片马:<?php @eval($_REQUEST[shell]);?>)

        比如某网站限制不允许上传.php文件,那就可以尝试上传一个.user.ini,再上传一个图片马,包含起来进行getshell。不过前提是含有.user.ini的文件夹需要有正常的php文件,否则也不能包含了。

六、什么是webshell

参考链接:文件上传漏洞面试题 | blog小窝 (my011215.github.io)

        webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称之为一种网页后门。攻击者在入侵了一个网站后,通常会将这些asp或php后门文件与网站服务器web目录下正常的网页文件混在一起,然后使用浏览器来访问这些后门,得到一个命令执行环境,以达到控制网站服务器的目的(可以上传、下载或者修改文件,操作数据库,执行任意命令等)。webshell后门隐蔽性高,可以轻松穿越防火墙,访问webshell时不会留下系统日志,只会在网站的web日志中留下一些数据提交记录。

七、文件上传后常见的安全问题有哪些?

(1)上传的文件是web脚本语言,服务器的web容器解释并执行了用户上传的脚本,导致代码执行。

(2)上传的文件是Flash的策略文件crossdomain.xml,黑客用以控制Flash在该域下的行为。

(3)上传的文件是病毒、木马文件,黑客用以诱骗用户或者管理员下载执行。

(4)上传的文件是钓鱼图片或者包含了脚本的图片,在某些版本的浏览器中会被作为脚本执行,被用于钓鱼和欺诈。

(5)除此之外,还有一些不常见的利用方法,比如将上传文件作为一个入口,溢出服务器的后台处理程序,如图片解析模块;或者上传一个合法的文本文件,其内容包含了php脚本,再通过LFI本地文件包含漏洞执行此脚本。

八、产生文件上传漏洞的原因有哪些?

由于程序员对用户文件上传部分的控制不足或者处理缺陷,而导致用户可以越过其本身权限向服务器上传可执行的动态脚本文件。简单地说就是没有对文件上传后的安全问题做正确的处理。

九、文件上传漏洞常见的防护措施有哪些?

(1)将文件上传目录的所有用户执行权限全部取消。

(2)判断文件类型:可以结合MINE Type、后缀检查等方式。在文件类型检查中,使用白名单方式。此外,对于图片可以使用压缩函数或者resize函数,在处理图片的同时破坏图片中可能包含的HTML代码。在使用白名单的时候,使用"."来分割文件名,只允许有两个字符串:文件名和文件扩展名。

(3)使用随机数改写文件名和文件路径。

(4)单独设置文件服务器的域名:把网站服务器和文件服务器分开,但是要保证,文件服务器的安全级别很高,且保证上传文件是相对高的可靠。直接把上传的图片等文件存储在文件服务器,并在文件服务器把所有目录设置为可读可写不可执行。

(5)使用二次渲染:将上传的图片重新保存为一个新的图片,将里面可能含有的可执行代码删除。

十、常见的一句话木马有哪些?

php一句话:

<?php @eval($_POST['pass']);?> 
<?php phpinfo();?>

jsp一句话:

<%if(request.getParameter("f")!=null)(newjava.io.FileOutputStream (application.getRealPath("\\")+request.getParameter("f"))).write (request.getParameter("t").getBytes());%>

asp一句话:

<%eval(Request.Item["pass"],”unsafe”);%>

aspx一句话:

<scriptrunat=”server”>WebAdmin2Y.x.y aaaaa =newWebAdmin2Y.x.y (“add6bb58e139be10″);</script>

十一、如何检测文件上传漏洞?

(1)首先找到一些上传点(如图片上传点);

(2)上传不同类型的恶意文件(其他后缀名等);

(3)看网页源码,判断是否通过前端的js限制(禁用js进行绕过);

(4)尝试不同的绕过方式进行绕过(黑名单/MIME类型/目录oxoo截断绕过等等);

(5)进行相关的尝试和猜测,绕过他的限制;

(6)如果非法文件上传成功,那么就存在漏洞。

十二、文件上传漏洞如何利用?

首先寻找上传点,确认存在任意文件上传漏洞,然后上传webshell、连接webshell,进行攻击和入侵。

十三、如何制作图片马?

(1)利用cmd

copy /b test.png + test.php ccc.png

(2)利用GIMP(开源的图片修改软件)

通过增加备注,写入执行命令

十四、介绍一下php中$_file函数

php中的$_FILES()函数是用来处理客户端向服务端上传文件的:

$_FILES['file']['name'] 文件名

$_FILES['file']['type'] 文件类型

$_FILES['file']['size'] 文件大小,单位为字节

$_FILES['file']['tmp_name'] 存储在服务器的文件临时副本的名称

$_FILES['file']['error'] 文件上传的错误代码

其中$_FILES['file']['type']就是MIME类型,而http请求中的content-type用户可控,所以可以绕过。


总结

以上为博主的文件上传漏洞面试笔记整理,持续更新。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com