zoukankan      html  css  js  c++  java
  • Eval版的ASP木马原理解析

    先管理员防范WebShell的技术也有所提高,以前那种直接放上一个WebShell的时代离我们而去了,现在的WebShell越来越注重隐蔽性。WebShell的隐藏技术也发展得很快,从改变代码大小写 到C/S模式,都是牛人们智慧的结晶。说到C/S模式,是不是让你想起ASP下那个"Execute Request("#")"一句话 后门,呵呵,今天我也跟大家介绍一个ASP一句话后门,不过不是execute,而是另一个函数——eval。 嗯,先来说说eval后门的原理和使用方法,不会的听仔细啦。偶们知道在asp里面有个execute函数专门用 来执行asp代码,这个就类似于Javascript里面的eval函数。所以execute就可以拿来做成一 句话后门:execute request("x")。不过,当POST的参数x为空时execute函数会出错,所以你得加一 句容错语句才是。其实VBScript里面也有eval函数的,不知道能不能拿来用,嗯,看看它功能先: Eval函数 计算一个表达式的值并返回结果。 [result = ] Eval(expression) 参数 result 可选项。 是一个变量,用于接受返回的结果。如果未指定结果,应考虑使用 Execute 语句代替。 expression 必选项。可以是包含任何有效VBScript表达式的字符串。 小提示: 在VBScript 中,x = y可以有两种解释。第一种方式是赋值语句,将y的值赋予x。第二种解释 是测试x 和y是否相等。如果相等,result为True;否则result为False。Eval方法总是采用第 二种解释,而Execute语句总是采用第一种。 注意,参数expression"可以是包含任何有效VBScript表达式的字符串"。呵呵,那不就是暗示 我们eval能执行任意代码嘛。不过看那个说明,eval总是把赋值语句解释成判断句,岂不是不能 拿来赋值。呵呵,不要紧,如果我们拿eval来执行execute再由execute执行任意代码呢? 呵呵,eval后门诞生了! 同execute相比,eval有个好处就是当参数为空不会出错,所以迄今为止最短的ASP后门就是""。数数吧, 是不是比以前的都短啊,呵呵。 把eval函数插入到一正常的ASP文件,你的后门就留好了(如果能够把文件最后修改时间改回去就更好了) 。现在可以执行任意代码了,当然,代码需要你用客户端POST上去。 客户端用网页实现很是方便。海阳顶端有个eval客户端,好像是用session保存代码然后执行,不过我试了几 次都不行,唉,还是自己写一个吧。 我做的这个客户端与海阳的不同,是由各个功能分别构成,每个功能使用一个htm页面,对应一段代码,放在 网页的隐藏域。参考了冰狐浪子那个微型ASP后门客户端的网页结构,感谢之。 先前不是说了,我们得用eval执行execute再由execute执行代码。所以隐藏域的内容类 似于"execute("response.write(""Hello , World !""):response.write("" "")"——注意在引号之中的引号得双写;而且execute中的字符可以使用回车换行也可以用冒 号代替回车换行。 这样子还不够,我们还要"斩头去尾"。斩头呢就是把我们的后门代码执行之前的数据清空,去 尾呢就是把后门执行代码之后的数据清空,不能让其他无用数据影响我们看回显嘛。 这个分别用response.clear和response.end来完成。Ok,经过一番斩头去尾,我们的隐藏 域就成了:"resposne.clear:execute("response.write(""Hello, World!""):response.write("" ""):response.end")"。 这里顺便说一下,去年不是有牛人提出用#i nclude一图片的形式来隐藏后门,图片最后 是一段asp代码。当时不是说这个方法执行代码之后会显示图片而没有回显吗,其实是有回显的 ,你把图片保存后用十六进制编辑软件打开,原来回显内容在图片末尾。呵呵,想到 了吧,用response.clear就可以清除图片显示出回显啦。 现在的任务就是找点ASP后门的代码改动改动再结合Javascript做成html文件就是了,有 兴趣的朋友看代码,在此就不赘述咯。另外,execute函数也可以使用这个客户端的哦。 这种后门的优点就是体积小,隐蔽性高,杀毒软件不能查杀,而且所有提交的数据 都是POST方式,IIS日志不会记录;缺点是每次执行代码都会有大量数据传送,而且代码通过execute执行速度会慢些。 这种执行代码还有一个好处就是可以把POST的代码加密,绕过IDS,呵呵,这个嘛以后再说咯 这些也是我综合了某牛淫的资料然后发出来给大家看看 不错的思路可以借鉴
  • 相关阅读:
    leetcode 29-> Divide Two Integers without using multiplication, division and mod operator
    ros topic 发布一次可能会接收不到数据
    python中的print()、str()和repr()的区别
    python 部分函数
    uiautomatorviewer错误 unable toconnect to adb
    pyqt 不规则形状窗口显示
    appium 计算器demo
    Spring 3.0 注解注入详解
    Spring Autowire自动装配
    restful 学习地址
  • 原文地址:https://www.cnblogs.com/adodo1/p/4327127.html
Copyright © 2011-2022 走看看