10.任意文件上传漏洞(超详细!!!)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


1、WebShell与WebShell管理工具

1.1 WebShell

WebShell就是以asp、php、jsp等网页文件形式存在的一种命令执行境,也可以将其称做为一种网页后门。黑客在入侵了一个网站后,通常会将asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。

1.2 病毒和木马

病毒:通常通过感染宿主文件,如可执行文件或文档,复制自身到其他文件或系统,有时会通过电子邮件附件或下载传播。有些病毒在感染时可能会有明显的迹象,如弹出消息或系统性能下降。可能执行多种恶意行为,包括但不限于数据破坏、数据加密(勒索软件)、自我复制、发送垃圾邮件等。

木马:伪装成合法软件或利用社会工程学诱骗用户下载和安装,不会自我复制。通常木马非常隐蔽,用户很难察觉到它们的存在。主要目的是打开后门,允许攻击者远程控制受感染的系统,进行数据窃取、键盘记录、远程执行命令等。

1.3 webshell的分类

WebShell根据编程语言可以分为php木马,asp木马,也有基 于.NET的aspx木马和基于Java的jsp木马。根据文件大小,也可以 分为大马、小马、一句话木马,具体使用场景和特点如下图:

在这里插入图片描述

1.4 WebShell管理工具

攻击者在入侵网站时,通常要通过各种方式写入WebShell,从而获得服务器的控制权限,比如执行系统命令、读取配置文件、窃取用户数据,篡改网站页面等操作。为了方便对这些WebShell进行管理,就诞生了各种各样的WebShell管理工具。

1、中国蚁剑

中国蚁剑是一款开源的网站管理工具,它主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员。

项目地址:

https://github.com/AntSwordProject/AntSword-Loader

https://github.com/AntSwordProject/antSword/releases/tag/2.1.14

在这里插入图片描述

2、冰蝎

冰蝎通信过程中使用AES(高级加密算法,对称加密,微信小程序 使用此种方法)进行加密,Java和.NET默认支持AES,php中需要 开启openssl扩展,在V2.0版本后,php环境方式根据服务端支持情 况动态选择,使得冰蝎更强大。

项目地址:https://github.com/rebeyond/Behinder

冰蝎的WebShell只能使用冰蝎客户端进行连接,密码默认为: rebeyond

在这里插入图片描述

3、哥斯拉

护网期间,各大厂商的waf不断,在静态查杀、流量通信等方面对 webshell进行拦截,众红队急需一款优秀的权限管理工具,冰蝎3.0 的发布可能缓解了流量加密的困境,但是冰蝎3.0的bug众多,很多 朋友甚至连不上冰蝎的shell,于是@BeichenDream决定公开他所 开发的一款shell权限管理工具,名为“哥斯拉”。

项目地址:https://github.com/BeichenDream/Godzilla

在这里插入图片描述

在这里插入图片描述

2、任意文件下载

2.1 漏洞介绍

任意文件下载漏洞:允许攻击者从服务器下载任意文件,这可能导致敏感信息泄露、服务器被控制等安全风险。这种漏洞通常由于应用程序没有对用户输入进行充分的验证和过滤而导致

攻击者可以利用多种技术来执行任意文件下载,包括本地文件包含(LFI)、远程文件包含(RFI)、目录遍历和服务器端请求伪造(SSRF)等 。这些技术通常通过构造特殊的URL参数或请求头来实现,例如使用…/进行目录遍历或利用文件读取函数的漏洞来读取服务器上的敏感文件

2.2 利用方式

1、获取配置文件:攻击者可以下载如SSH、WebLogic、FTP、MySQL等相关配置文件,这些文件可能包含敏感信息,如数据库的访问凭证。

2、**访问日志文件:**通过下载各种.log文件,攻击者可能找到后台地址、文件上传点等信息,甚至可能获得前辈们的后门。

3、控制服务器:如果攻击者具有root权限,可以通过下载如/etc/passwd或/root/.bash_history等文件来获取更多系统信息,进一步控制服务器。

4、利用Web应用文件:下载web业务文件进行白盒审计,攻击者可以利用发现的漏洞进一步攻入服务器。

5、利用文件读取函数:例如,使用**fopen()、fread()或include()**等PHP函数读取文件内容,如果这些函数的参数可控且未经严格校验,就可能被用来利用任意文件下载漏洞。

6、利用目录遍历:构造特殊的URL参数或请求头,使用…/进行目录遍历,访问并下载服务器上任意目录中的文件。

7、利用服务器端请求伪造(SSRF):攻击者可能通过构造特定的请求头或参数,使服务器发起到攻击者控制的远程服务器的请求,从而下载恶意文件并执行。

8、利用特定的Web框架或应用漏洞:例如,利用Java SpringMVC或SpringBoot框架的配置文件,下载对应的class文件或jar包,进一步分析源码或构造反序列化攻击链。

9、下载操作系统敏感文件:在Windows系统中,下载如C:\boot.ini查看系统版本,或在Linux系统中下载/etc/passwd获取用户信息。

10、利用文件下载漏洞挖掘:使用web漏洞扫描器或Google hacking技术寻找潜在的文件下载漏洞点,例如通过搜索特定的文件名和参数名来发现可能的漏洞。

2.3 常见利用文件

/root/.ssh/authorized_keys
/root/.ssh/id_rsa
/root/.ssh/id_ras.keystore
/root/.ssh/known_hosts //记录每个访问计算机用户的公钥
/etc/passwd
/etc/shadow
/etc/my.cnf //mysql配置文件
/etc/httpd/conf/httpd.conf //apache配置文件
/root/.bash_history //用户历史命令记录文件
/root/.mysql_history //mysql历史命令记录文件
/proc/mounts //记录系统挂载设备
/porc/config.gz //内核配置文件
/var/lib/mlocate/mlocate.db //全文件路径
/porc/self/cmdline //当前进程的cmdline参数

3、任意文件上传

大多数网站都有文件上传的接口,但如果在后台开发时并没有对上传的文件进行安全考虑或采用了有缺陷的措施,导致攻击者可以通过一些手段绕过安全措施从而上传一些恶意文件,从而通过该恶意文件的访问来控制整个后台

上传文件的时候,如果服务器端后端语言未对上传的文件进行严格的验证和过滤,就容易造成上传任意文件的情况。常见场景是web服务器允许用户上传图片或者普通文本文件保存,而攻击者绕过上传机制上传恶意代码文件并执行从而控制服务器。这个恶意的代码文件(php、asp、aspx、jsp等),又被称WebShell。

3.1 漏洞危害

攻击者通过上传恶意文件传递给解释器去执行,然后就可以在服务器上执行恶意代码,进行数据库执行、服务器文件管理、命令执行等恶意操作。从而控制整个网站,甚至是服务器。

3.2 upload-labs靶场安装

访问https://github.com/c0ny1/upload-labs下载

在这里插入图片描述

1、下载之后解压,然后将解压后的文件放到phpStudy的网站根目录

在这里插入图片描述

2、然后浏览器访问http://192.168.1.11:90/upload-labs/即可

在这里插入图片描述

3.3 文件检测的方式

在这里插入图片描述

在这里插入图片描述

3.4 如果判断检测方式

在这里插入图片描述

1、客户端绕过

客户端检测一般都是在网页上写一段javascript脚本,校验上传文件的后缀名,有白名单形式也有黑名单形式。 判断方式:在浏览加载文件,点击上传按钮时便弹出对话框,内容如:只允许上传.jpg/.jpeg/.png后缀名的文件,而此时并没有发送数据包。

绕过方法:在本地浏览器客户端禁用JS:可使用火狐浏览器的Noscript插件、 浏览器禁用JS等方式实现。

在这里插入图片描述

在这里插入图片描述

2、服务端绕过

服务端检测就是网站对用户上传的文件的检测代码放置在服务器里,当用户上传的文件通过了检测才会被允许保存在服务器里。

MIME类型检测

MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型 的因特网标准。用来表示文档、文件或字节流的性质和格式。在 HTTP数据包中在Content-Type字段显示。

  • 超文本标记语言.html文件:text/html
  • 普通文本.txt文件:text/plain
  • PDF文档.pdf:application/pdf
  • PNG图像.png:image/png
  • GIF图像.gif:image/gif
  • JPEG图像 .jpeg、.jpg:image/jpeg
  • MPEG文件.mpg、.mpeg:video/mpeg

3、黑名单绕过

黑名单是有限的,可以随意构造一个文件后缀,如果可以上传,则说明是黑名单检测,反之,为白名单检测。 比如上传一个php后缀的文件,发现不允许上传,接下来就是去判断检测方式

4、白名单检测

上传一张图片与上传一个自己构造的后缀,如果只能上传图片不能上传其它后缀文件,说明是白名单检测。一般情况下,代码文件里会有一个列表存放着允许上传的文件后缀,如果上传的文件后缀名不符合白名单,就不允许上传。

4、文件上传漏洞修复

1、上传的目录设置为不可执行。只要web容器无法解析该目录下面的文件,即使攻击者上传了脚本文件,服务器本身也不会受到影响,因此这一点至关重要。

2、对文件后缀的判断中使用白名单的方式。

3、文件服务器和web服务器分离,也就是上传的文件单独存放到其他的服务器之中。

4、不需要返回文件路径的情况下,随机改写文件名。

下一篇会讲到upload-labs靶场的详细解题过程,大家可以期待一下!!!

  • 42
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值