文件上传
搭建靶场 Vulhub
开靶场
1 | 进入tomcat所在目录 |
关靶场
1 | 在tomcat8目录下将靶场关掉 |
相关知识
思路,要知道是那种类型的漏洞,如果不知道,就按照常规处理
1、什么是文件上传漏洞?
只要有文件上传的地方,就有可能存在文件上传漏洞,要判断文件上传部分的代码是否写得完整,安全,要是存在疏忽,就有文件上传漏洞存在的可能
2、文件上传漏洞有哪些危害?
可以上传后门文件webshell,获取到当前网站权限,高危漏洞
3、文件上传漏洞如何查找及判断?
查找
①黑盒查找,对方的源码我们不知道,需要自己判断,可以通过扫描目录、敏感文件,有的字典中会有上传地址,通过扫描获取上传地址,或者在网站上给出的相关应用,比如说备案中心,一般可以上传图像
②白盒查找,有对方的源代码,可以分析源代码查找有无文件上传功能,文件上传地址
主要方法是扫描,寻找上传点
4、文件上传漏洞有哪些需要注意的地方?
要对文件上传的类型进行区分,比如说是利用编辑器,就搜索这个编辑器的相关漏洞,然后利用漏洞上传
文件上传常见验证:
后缀名,类型,文件头等
后缀名:黑名单,白名单
文件类型:MIME信息
文件头:内容头信息
文件上传之过滤方式
upload靶场
相关函数
upload-labs靶场通关(文件上传漏洞靶场)_風月长情的博客-CSDN博客
move_uploaded_file(file,newloc)
- 将上传的文件移动到新位置,通过HTTP POST上传文件,如果目标文件已存在,则会被覆盖
- file:要移动的文件
- newloc:规定文件的位置
unlink(file)
删除文件
in_array(search,array)
搜索数组中是否存在指定的值
一句话木马
1 | <?php phpinfo();?> |
Pass-01(前端JS绕过/客户端校验绕过)
有的网页采用js前端验证,可以在浏览器把js禁用,绕过验证,但是如果网站需要其它js代码才能正常运行,就不能采用这种方法
这道题是在前端使用了js对不合法图片进行检查
方法1
把网页源代码下载下来,删除js验证部分的代码,然后在图片上传的部分添加action,告诉它提交给谁
查看抓包信息,得到提交地址
编辑代码,并且删除js验证部分的代码,再运行,就可以提交成功
如果页面没有PHP代码来上传数据,只用JS来上传,就会抓不到包
方法2
在上传前,删除源码中的onsubmit=”return checkFile()”
方法3
先将php文件后缀改为png,抓包,如何修改后缀名位.php在上传就可以上传成功
Pass-02(后端验证文件类型–MIME校验)
点击右上角查看源码
源代码对图片类型进行了分析
方法1
上传一个图片文件,抓包记录它的MIME类型
上传一句话木马,抓包修改文件的MIME类型为刚才记录的 Content-Type
然后点击Forward提交,上传成功
方法2
修改文件后缀为图像文件,抓包修改文件名后缀
finecms前台任意文件上传漏洞 | CN-SEC 中文网
刷题
13、Upload
创建一个木马文件
可绕过的后缀名检测:php,php3,php4,php5,phtml.pht
上传该文件,显示Not image!
抓包,修改Content-Type
的内容为 image/jpeg
,send,查看文件名后缀应为.phtml
使用蚁剑
URL地址为:/upload/a.phtml
连接密码为:a
测试连接,连接成功后添加
右键单击,文件管理,查看根目录,找到flag
双击查看flag
1 | flag{34c3fd89-3b0b-450b-9953-287122b67247} |
14、Upload
上传一句话木马<?php eval($_POST[a]);?>
,修改后缀名为.jpg
抓包,显示上传成功
使用蚁剑连接,URL地址为:http://458e3dd3-d7c3-41c5-b4cd-06727f565048.node4.buuoj.cn:81/./uplo4d/394659692a460258b45a99f1424ea357.jpg
连接密码为:a
尝试一下,测试连接显示返回数据为空
尝试修改后缀名为.phtml
使用蚁剑连接,URL地址为:http://458e3dd3-d7c3-41c5-b4cd-06727f565048.node4.buuoj.cn:81/./uplo4d/71056c0c9cb12f2b7d720156da9eabf1.phtml
连接密码为:a
测试连接,连接成功 后添加
右键单击,文件管理
在根目录中找到flag
双击查看flag
1 | flag{8337ba06-02fe-47b4-8563-e341d08b19fe} |