论坛: 菜鸟乐园 标题: 两个欺骗cgi扫描器的办法2004-09-1615:46[转帖] 复制本贴地址    
作者: 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号