公开课-利用文件上传漏洞攻破网站(上)

作者: 海一 分类: 分享 发布时间: 2020-03-06 22:48

DVWA 的 low 级别文件上传漏洞

1 文件上传漏洞简介

通常在某些网站中,都有上传文件的功能,比较典型的就是上传图片,设置账号的头像,那么这就是一个文件上传的功能。文件上传功能成为一个漏洞的原因往往是由于对用户上传文件的类型、内容没有进行严格的过滤、检查,使得攻击者可以通过上传木马文件并获取得服务的权限,因此文件上传漏洞往往会带来毁灭性的危害,比如:Apache、Tomcat、Nginx 等都曝出过文件上传漏洞。

打开 DVWA 用户:admin 密码:password

2 文件上传代码分析

源码分析,Low 级别,这个级别下没有对任何对文件类型进行限制。

3上传文件测试

回到 dvwa,点击“File Upload”文件上传漏洞演练,并在文件上传漏洞演练页面中点击“Browse”选择需要上传的文件

在打开文件选择框中,点击“主目录”—> 点击“root”,而后选择“shell.php”,点击打开。

由此可以看到已经选好了shell.php 文件,而后点击“Upload”进行上传。

上传成功后,可以看到显示文件所在的路径,注意:在演练中会显示文件传的路径,只是方便渗透测试者演练,在实际当中通常是看不到的。

一句话木马简介
对于不同的语言有不同的构造方法。
基本构造:最开头构造的是脚本开始的标记。
核心部分:获取并执行得到的内容,通常类似eval、execute 等。
被执行内容:一般是http等协议接受的值,通常类似 request、$_POST 等。
如果我们通过客户端向服务器发送被执行内容,那么就会让服务器执行我们发送的脚本,挂马就实现了。

黑帽子的目的,就是想尽办法给目标网站插入这么一段会被储存起来的语句。可以是一个单独的脚本文件文件(.asp 、.php、.aspx ),或者是隐藏在某些网页下的文件、代码等。其中的 value 就是客户端要发送的内容,然后通过客户端与服务器建立连接,发送控制脚本。也会涉及到一些任意文件上传漏洞等。
在 web 安全领域木马分为两类:
小马:通常指一句话木马,体积小,功能简单,容易上传,可以用来渗透测试初期与服务器建立链接取得 shell 权限
大马:指的是在小马的基础上集成了非常的的功能,比如连接数据库下载文件等。

4使用菜刀进行连接

菜刀官方下载链接:https://github.com/raddyfiy/caidao-official-version
下载 caidao-official-version-master 后,并解压,解压得到官方原版菜刀 3 个版本,可以解压进行使用。

本次实验以解压 2016 版本为例,解压后双击运行 caido.exe

注意:如果当前电脑运行有防御类的软件时,在解压后会自动检测到菜刀工具并删除掉,可以在防御软件中找回,否则不能正常使用。

打开菜刀后删除官方测试的链接。

在空白处,右击,选择添加

地址:192.168.1.120/dvwa/hackable/uploads/shell.php

双击进行访问,默认进入文件管理页面

上传、下载文件:
注:仅在 web 站点目录可进行上传,因为当前用户是以站点运行的用户身份,因此仅对 web 站点目录拥有写权限,下载文件则需要拥有对下载文件的读权限

打开虚拟终端。

默认会加载一条命令,netstat -an |grep ESTABLISHED

注意:如果回车后,提示 netstat 命令没找到,(通常最小化安装的 centos 中,没有自带 netstat 命令)

原因是这个命令在有些系统中不是自带的,所以我们使用其他命令查看 Web 站点的网络连接信息,ss命令是 centos 中用来代替 netstat 的系统命令,它比 netstat 更高效。
[/var/www/html/dvwa/hackable/uploads/]$ ss -antup

可以看到服务器中的端口类型,以及端口状态,还有和哪些主机建立了连接,通过什么端口建立的链接,一般情况下我们可以通过端口来判断服务器开放了具体的哪些服务,比如图片中监听了 3306 端口我们判断服务器开启了 mysql 或者 mariadb 服务,监听了 22 端口表示开启了 sshd 服务。

查看用户信息
[/var/www/html/dvwa/hackable/uploads/]$ id

可以看到用户是 Apache 因为我们是通过 php 解析来进行执行命令的,Apache 的运行用户为 Apache 所以我们获取到的就是 Apache 权限。如果站点是以 root 身份运行的我们获取到的就是超级管理员权限。
如果系统或运行的服务存在可提权的漏洞即可提权为 root 用户。
最后到靶机上把上传的内容删除掉:
[root@piloteer120 uploads]# rm -rf shell.php

*注:因部分代码触发网站安全权限,故以图片方式提供给大家。

——END——

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。