upload-labs 靶场(1~5)
免责声明
本博客文章仅供教育和研究目的使用。本文中提到的所有信息和技术均基于公开来源和合法获取的知识。本文不鼓励或支持任何非法活动,包括但不限于未经授权访问计算机系统、网络或数据。
作者对于读者使用本文中的信息所导致的任何直接或间接后果不承担任何责任。包括但不限于因使用本文所述技术而可能导致的法律诉讼、财产损失、隐私泄露或其他任何形式的责任。
在进行任何渗透测试或安全研究之前,请确保您已获得所有必要的授权,并遵守适用的法律和道德准则。未经授权的安全测试可能违反法律,并可能导致严重的法律后果。
本文中的内容仅供参考,不应被视为专业建议。在进行任何安全相关活动之前,建议咨询具有相应资质的专业人士。
作者保留对本博客文章的所有权利,并有权在未经通知的情况下进行修改或删除。
正文部分
前期准备:
目标:学习文件上传漏洞的绕过
系统环境:
攻击机:Windows 10
靶机:192.168.162.100:8084(Ubuntu ===> docker ===> uploads-labs)
工具:
Google浏览器、BurpSuite
Pass-01
这一关有两种绕过方式
方法一:关闭浏览器的 JS 功能
根据源码可以看出验证在前端
直接关掉浏览器的 js 功能,上传冰蝎🐎
连接🐎
方法二:修改数据包
为了避免🐎冲突,先把前面上传的🐎删掉。选择一个图片文件提交,用 bp 抓住数据包。为什么不直接上传 php 文件?原因是文件验证在前端,提交的时候如果不是白名单中的文件格式就提交不了,更不会将数据发送给服务器,导致抓不到数据包
将数据包发给 Repeater,将文件名修改一下,测试一下是否会上传成功
测试完成后,将修改好的数据包 Ctrl+A,Ctrl+C,然后回到 Proxy,全选、粘贴将原本数据包替换
放包,使用冰蝎连接🐎即可
Pass-02
这一关通过源码可以得出,只能上传图片类型的文件,那么就创建一个 txt 文本文档,将🐎写入,然后修改文件后缀为图片类型的后缀
接着上传这个“图片”,抓包,修改数据包,测试步骤这里就不做演示了
按照我这个方法的话就只用修改文件名,如果上传的是个 php 文件,那么就需要修改文件的 MIME
两种方法都行。放包,连接🐎
Pass-03
通过源码可以看出,这一关设置了黑名单,php 类型就在其中,那么还有什么文件后缀可以当作 php 文件进行解析?不知道就找一下度娘
这个 phtml 一下就入了我的法眼,就用它吧
放包,连接🐎
怎么回事?连接失败,原来是后端给打编号了
重振旗鼓,再来一次
Pass-04
从源码看出这一关拉黑的文件后缀还是挺多的,不过有一个配置文件忘了拉黑,那就是 .htaccess
.htaccess 文件是 Apache 服务器中的一个配置文件,用于实现各种服务器配置功能,比如文件类型关联
这个配置的意思是,所有图像类型的文件都当作 php 文件处理,所以接下来就先上传 .htaccess,然后上传图片🐎
放包
连接🐎
Pass-05
这一关,限制了 .httaccess 文件,不过解放了 .ini 文件,那么有 .user.ini 这么一个文件
.user.ini 文件是PHP配置文件的一种,它允许在用户目录中覆盖默认的 PHP 配置。这种文件通常用于存储用户特定的设置和偏好,采用键值对的形式,每行代表一个设置,键值之间使用等号连接
最具有代表性的就是这两段
auto_prepend_file = "header.php"
auto_append_file = "footer.php"
这个的意思是,在运行每个 php 文件之前,都会将指定文件包含进去当作 php 文件进行解析,那么接下来就将这个文件上传上去,然后上传图片🐎
放包,连接🐎。诶?没连上,发现这个 PHP 版本有点问题,换一个靶机,用小皮搞
收工
每一关都认真对待了,没划水、没摸鱼