记一次aspx+KindEditor上传拿webshell


Apr 30 2015

记一次aspx+KindEditor上传拿webshell

首页 » 原创作品 » 记一次aspx+KindEditor上传拿webshell   

记一次aspx+KindEditor上传拿webshell

作者:mOon  博客:www.mooonsec.com

0x01:前言

学员发来的站把,搞一下把。

首先用扫描器扫一些后台的html

现在开发一般都是包含html 这样方便点 随意调用用div+css样式把。

爬虫爬一下可能找到一些比较有价值的东西噢!

例如下面

kindeditor.jpg

弄到kindeditor编辑器。 上面的上传封面上传怎么绕都绕不过。试试下面的编辑器把!

漏洞.jpg

这个编辑器出现漏洞的地方基本都是这个页面 ,但是每次基本都是白名单验证 基本都是失败,抱着试一试的心态。


bianji.jpg

拿到webshell分析一下源码


%@ WebHandler Language="C#" Class="upload" %>

/*
 * 作耿 牛腩
 * 创建时间: 2009-10-6 16:38:30
 * Email: 164423073@qq.com
 * 说明: 
 */

using System;
using System.Web;
using System.IO;
using System.Text;

public class upload : IHttpHandler
{

    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/html";
        // 下面这句是最重要的,取得HttpPostedFile对象后就可以调用他的SaveAs方法亿 
        HttpPostedFile imgFile = HttpContext.Current.Request.Files["imgFile"];
        // 取文件后缀吿
        string houzui = new FileInfo(imgFile.FileName).Extension;//这里获取后缀 www.mooonsec.com
        //string url = context.Request.QueryString["url"].ToString();//莿   
        string filename = DateTime.Now.ToString("yyyyMMddhhmmss") + houzui;           // 服务器上保存的文件名秿

        // 保存文件到根目录下的upload目录丿
        DateTime now = DateTime.Now;
        string datestr = now.Year.ToString() + "/" + now.Month.ToString();
        if (!Directory.Exists(context.Server.MapPath(string.Format("/cpimg/{0}", datestr))))
        {
            Directory.CreateDirectory(context.Server.MapPath(string.Format("/cpimg/{0}", datestr)));
        }
        string savePath = context.Server.MapPath(string.Format("/cpimg/{0}/{1}", datestr, filename));
        imgFile.SaveAs(savePath);
        // 插入图片到kindeditor丿
        string id = context.Request["id"];
        string file_url = string.Format("/cpimg/{0}/{1}", datestr,filename) ;
        string imgTitle = context.Request["imgTitle"];
        string imgWidth = context.Request["imgWidth"];
        string imgHeight = context.Request["imgHeight"];
        string imgBorder = context.Request["imgBorder"];
        StringBuilder sb = new StringBuilder();
        sb.Append("<html>");
        sb.Append("<head>");
        sb.Append("<title>Insert Image</title>");
        sb.Append("<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">");
        sb.Append("</head>");
        sb.Append("<body>");
        sb.Append("<script type=\"text/javascript\">parent.KE.plugin[\"image\"].insert(\"" + id + "\", \"" + file_url + "\",\"" + imgTitle + "\",\"" + imgWidth + "\",\"" + imgHeight + "\",\"" + imgBorder + "\");</script>");
        sb.Append("</body>");
        sb.Append("</html>");
        context.Response.Write(sb.ToString());


    }
    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
 string houzui = new FileInfo(imgFile.FileName).Extension;//这里获取后缀 整个段代码居然没有白名单验证,看到这里也是醉了。


11.jpg


0x02结束:

以后大家遇上这种aspx+KindEditor编辑器可以试试这个上传噢


如果您喜欢本博客,欢迎点击图片定订阅到邮箱填写您的邮件地址,订阅我们的精彩内容:

正文部分到此结束

文章标签: KindEditor漏洞 KindEditor拿站 KindEditor拿shell

版权声明:若无特殊注明,本文皆为( mOon )原创,转载请保留文章出处。

也许喜欢: «Cobalt Strike v2.4(破解版+原版) | 检测网站本地文件包含(LFI)漏洞的安全工具»

你肿么看?

你还可以输入 250/250 个字

 微笑 大笑 拽 大哭 亲亲 流汗 喷血 奸笑 囧 不爽 晕 示爱 害羞 吃惊 惊叹 爱你 吓死了 呵呵

评论信息框

已有1条评论

匿名

2015-05-01 12:14 沙发
醉了