|
![]() | 作者: BrideX [bridex]
![]() |
登录 |
发信人: 包子 (我是FQ), 信区: Security 标 题: 两个欺骗cgi扫描器的办法 发信站: 郑大绿城 BBS (Thu Sep 16 15:06:40 2004), 本站(bbs.zzu.edu.cn) 前段时间在看www.tsinghua.edu.cn的时候发现我扫描他的cgi漏洞的时候他总给我返回漏洞存在的信息,自己手动测试一下却返回的是index页,以前也遇到过这样的问题,但是我一时没想到具体的办法就放弃了,这次带着对tsinghua的景仰之情,我不得不好好的整整 扫描器判断CGI漏洞就我所知一般有两种方式 首先我们介绍一下web请求返回码,不知道是不是在哪个RFC里定义了,但是我们可以在apache的头文件里查看他 [root@s-ec apache_1.3.31]# vi src/include/httpd.h #define RESPONSE_CODES 55 #define HTTP_CONTINUE 100 #define HTTP_SWITCHING_PROTOCOLS 101 #define HTTP_PROCESSING 102 #define HTTP_OK 200 #define HTTP_CREATED 201 #define HTTP_ACCEPTED 202 #define HTTP_NON_AUTHORITATIVE 203 #define HTTP_NO_CONTENT 204 #define HTTP_RESET_CONTENT 205 #define HTTP_PARTIAL_CONTENT 206 #define HTTP_MULTI_STATUS 207 #define HTTP_MULTIPLE_CHOICES 300 #define HTTP_MOVED_PERMANENTLY 301 #define HTTP_MOVED_TEMPORARILY 302 #define HTTP_SEE_OTHER 303 #define HTTP_NOT_MODIFIED 304 #define HTTP_USE_PROXY 305 #define HTTP_TEMPORARY_REDIRECT 307 #define HTTP_BAD_REQUEST 400 #define HTTP_UNAUTHORIZED 401 #define HTTP_PAYMENT_REQUIRED 402 #define HTTP_FORBIDDEN 403 #define HTTP_NOT_FOUND 404 #define HTTP_METHOD_NOT_ALLOWED 405 #define HTTP_NOT_ACCEPTABLE 406 #define HTTP_PROXY_AUTHENTICATION_REQUIRED 407 #define HTTP_REQUEST_TIME_OUT 408 #define HTTP_CONFLICT 409 #define HTTP_GONE 410 #define HTTP_LENGTH_REQUIRED 411 #define HTTP_PRECONDITION_FAILED 412 #define HTTP_REQUEST_ENTITY_TOO_LARGE 413 #define HTTP_REQUEST_URI_TOO_LARGE 414 #define HTTP_UNSUPPORTED_MEDIA_TYPE 415 #define HTTP_RANGE_NOT_SATISFIABLE 416 #define HTTP_EXPECTATION_FAILED 417 #define HTTP_UNPROCESSABLE_ENTITY 422 #define HTTP_LOCKED 423 #define HTTP_FAILED_DEPENDENCY 424 #define HTTP_INTERNAL_SERVER_ERROR 500 #define HTTP_NOT_IMPLEMENTED 501 #define HTTP_BAD_GATEWAY 502 #define HTTP_SERVICE_UNAVAILABLE 503 #define HTTP_GATEWAY_TIME_OUT 504 #define HTTP_VERSION_NOT_SUPPORTED 505 #define HTTP_VARIANT_ALSO_VARIES 506 #define HTTP_INSUFFICIENT_STORAGE 507 #define HTTP_NOT_EXTENDED 510 首先我们知道在httpd.conf里设置ErrorDocument 404 /index.php 可以在浏览器访问一个不存在的地址的时候返回404代码,然后跳转到这个index.php页面去,注意返回的是404而非200 1:请求一个特殊的地址,然后根据返回码来判断这个漏洞(地址)是否存在 比如 get /phpadmin/index.php 这个是比较简单的判断,不过要让这种扫描器误判的话我们还是需要修改httpd.h里 #define HTTP_NOT_FOUND 200 这样在扫描器请求一个不存在的地址的时候,服务器会返回一个200的,这样就可以让扫描器误判了,呵呵,比如一个freebsd的服务器,会扫出http://ww.xxa.com/../../boot.ini这个CGI漏洞:) 2:高级一点的,首先检查返回码,然后和正常的页面对比,如果在某个范围之内,就认为有这个漏洞,这个具体是怎么样我也不清楚,冰师傅说xscan就是这样子判断的,我不大懂,也不管那么多,问他要代码看我又看不懂~~~反正我又不需要开发扫描器,我只想要。。骗他……呵呵,所以我们在httpd.conf里加入 ErrorDocument 200 /index.php 这样两个办法结合在一起就可以骗掉xscan了,扫描的结果如下 警告 www (80/tcp) CGI漏洞: http://www.aaa.com/_vti_bin/shtml.dll/nosuch.htm 警告 www (80/tcp) CGI漏洞: http://www.aaa.com/_vti_bin/shtml.exe 警告 www (80/tcp) CGI漏洞: http://www.aaa.com/_vti_bin/_vti_aut/dvwssr.dll 警告 www (80/tcp) CGI漏洞: http://www.aaa.com/_vti_inf.html 警告 www (80/tcp) CGI漏洞: http://www.aaa.com/_vti_log 警告 www (80/tcp) CGI漏洞: http://www.aaa.com/_vti_bin/fpcount.exe?Page=default.htm|Image=2|Digits=1 警告 www (80/tcp) CGI漏洞: http://www.aaa.com/_vti_pvt/ 警告 www (80/tcp) CGI漏洞: http://www.aaa.com/_vti_pvt/administrator.pwd 警告 www (80/tcp) CGI漏洞: http://www.aaa.com/_vti_pvt/author.log 警告 www (80/tcp) CGI漏洞: http://www.aaa.com/_vti_pvt/authors.pwd 不知道是不是去掉这个服务器就不支持TRACE了,猜测一下而已的,呵呵,有兴趣的朋友可以44 #define M_TRACE 6 当然还可以装一些模块来实现了,但是似乎没必要:) 水平有限,还请各位不吝赐教 -- 每天灌一灌,快乐似神仙 :) ※ 来源:.郑大绿城 BBS http://bbs.zzu.edu.cn [FROM: 210.115.22.138] IIS的估计得改DLL才可以实现找不到页面返回200,可能是可以改的,但是我抓了 w3ext.dll w3scfg.dll w3svc.dll 三个dll来看,strings的结果是没404 500之类的了,不过IIS的banner信息是可以在这里改掉的 看得一头雾水。。。 |
地主 发表时间: 04-11-05 09:39 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号