美文网首页菜鸟追梦Web前端之路Android开发经验谈
你们尽管绕dogByPass,绕不过算我输!

你们尽管绕dogByPass,绕不过算我输!

作者: 漏斗社区 | 来源:发表于2017-11-14 14:19 被阅读46次

    0x00 背景

    这周学弟学妹经常提问到如何绕过安全防护软件的检测,那么本篇就以dog为例子带大家走一遍dogByPass的一条龙服务流程,本篇仅提供思路,后续可能由于软件规则的更新而需要重新设置或更改规则,所以先带大家走一遍流程,熟悉后各位便能自行去更改规则了。

    dogByPass的一条龙服务:

    上传ByPass -> 一句话ByPass -> cknife ByPass

    0x01 UploadByPass

    在目标站点有上传漏洞并使用dog防护的时候,可以使用如下的方式绕过。

    在服务端写好未做任何限制的上传脚本,然后直接上传php文件,发现被dog拦截了。

    最基本的方式可以通过对request的报文进行FUZZ,得到绕过防护软件的方式。

    举个栗子在filename=后面加上空格,TAB等空字符再跟上文件名,可以绕过dog的上传检测。

    又一个栗子在分号的前后加上一定数量的TAB,在测试中是加入了466个TAB字符,可以绕过dog的上传检测。

    0x02 OneWordByPass

    dog By Pass 的一句话可以参考往篇的文章:

    https://mp.weixin.qq.com/s/5EYc-foPPvu9B0DKkUKmMw

    https://mp.weixin.qq.com/s/vzNx1qz6iTnOUurW0hO2MQ

    绕过上传后,普通的一句话会被dog查杀,因此需要特殊的一句话,又为了能够使用cknife连接而不是手动连接的方式,因此需要在传输的过程中对内容进行编码或加密,最简单的方式就是使用base64编码,上传后没有被查杀,因为这个一句话是免杀的。

    使用手动连接的方式确认一句话可以正常使用,把POST请求中参数的值cmd=system(‘whoami’) 进行base64编码得到cmd=c3lzdGVtKCd3aG9hbWknKQ==,提交后正常执行。

    0x03 CknifeByPass

    正常情况下Cknife发送的数据是没有进行编码或加密的,因此会造成某些敏感关键字被dog检测到从而被拦截,所以为了能够让Cknife能够发送编码或加密的内容可以在cknife中的Config.ini配置发包规则。

    首先查看默认情况下Cknife的发包规则,设置Cknife的代理地址和端口是BurpSuite的地址和端口。

    使用BurpSuite拦截Cknife的请求包,然后发送的repeater,可以看到因为cmd参数的值中包含敏感关键字从而被dog拦截。cmd是免杀一句话的密码。

    拦截后Cknife无法正常使用,直接报错。

    接下来开始对Cknife进行修改,打开Config.ini文件,这里以PHP为例子,找到PHP_MAKE,将PHP_MAKE中的值eval(base64_decode($_POST[action]))进行base64编码,编辑好后保存config.ini

    重新启动Cknife,使用BurpSuite监测请求包,cmd参数的值成功被转成base64编码的数据,由于上一步的免杀一句话会进行base64解码,所以请求可以正常运行。

    此时关闭BurpSuite的拦截,cknife可以正常使用,本篇介绍的流程也就到此结束。

    0x04 小小总结

    本篇重在带大家走下dogByPass的一条龙服务流程,提供一些bypass的思路,但bypass的技巧都是要靠不断的学习和积累的,并且由于cknife是开源的所以为很多骚操作提供很好的支撑。cknife还要很多知识本篇没有涉及到后续再进行总结和探讨。期待大家的交流和讨论。

    相关文章

      网友评论

        本文标题:你们尽管绕dogByPass,绕不过算我输!

        本文链接:https://www.haomeiwen.com/subject/untfvxtx.html