CGI漏洞的发现及利用原理
觉得该把这东西写出来给大家看看,让大家对CGI安全有个全面的了解.
费话后边再说,直入正题:
想发现CGI漏洞至少应该有以下几个条件:
1.有WEB编程经验
2.熟知各种CGI漏洞
3.熟悉HTTP协议
如果你有点狗屎运(如我)那就最好了!
CGI漏洞大多分为以下几种类型:
1.暴露不该暴露的信息如:
暴露密码文件, 暴露自身源代码, 暴露文件存放绝对路径等(这种往往是WEB SERVER的毛病)
2.执行不该执行的命令如:
执行SHELL指令等(这种往往是CGI自身编写的问题)
3.溢出:
如iishacker(这种往往是WEB SERVER的毛病)
第一种漏洞一般是因为SERVER编写不当造成的,如我发现的在NT下用PHP查看硬盘任何文件的BUG,首先你要了解PHP的执行过程,在NT下PHP3文件被请求后,经过PHP.EXE解释,然后将解释后结果返回给浏览器,而PHP.EXE本身就可以读任何文件(你可以在自己机器上试验)所以PHP.EXE是无罪的,那就只有怪APACHE为什么不好好判断用户的输入了.像ASP文件为什么加上xxx.asp%81就会暴露源代码也是相同道理,Server认为asp%81不是一个asp文件,所以不加以解释就返回给浏览器,当然这其中还有些判断过程,Server肯定是先判断对方的请求是否合法,但xx.asp%81翻译过来为:xx.asp?这种请求是合法的,所以Server找到这文件并不经过解释器而直接把它的内容读出来给用户.像我昨天夜里发现的暴露JSP源代码的方法也是一样,开始我试验的时候Server老认为我的请求不合法,所以我就骗它,:)骗到它认为我的请求是合法的它就就范了!(脱个精光)哈哈!
在谈第二种漏洞的原理:
这种漏洞容易出问题的地方一般是UNIX下SHELL命令的直接执行和fopen()等对文件操作的函数的使用。往往是因为程序员不对用户输入做精确的判断造成的,这类例子太多了,如著名的/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd就是一个最好的例子,unix认为第一条命令结束后将要执行第二条命令,然后Hacker的指令就顺利的执行了.所以CGI的漏洞经常是因为“;|”等特殊符号造成的,还值得我一提的是../欺骗,很多BUG都因为../造成的,道理其实和前边的差不多,如NT4上的SHOWCODE.ASP,大家看它的源代码都知道,其实它做了限制的,只允许看/msadc/Samples/目录下的东东的,不过我们可以欺骗它,(搞的黑客技术和欺骗技术一样)然后达到目的查看它诸如:winnt/repair/sam._这样的核心文件(顺便提一下,我以前用JAVA写过一个showcode的利用程序,有兴趣的朋友可以下载它).
在谈谈FOPEN()函数吧,其实它的作用就是打开文件,也就是读文件内容,它这个特性就可以让我们利用它做我们想做的事情,如:看弱智女子洗澡,但你千万别像我一样被诬
告强奸哦:),使用这个函数和WEB程序员的水平有关,弱智力的一般就可以让我们利用了,最好的例子就是看我当时是怎么使用抓X龙爪手抓下来的那副图/~lovehacker/passwd.jgp想必你也就会明白其中的道理了!
第三种漏洞原理:最著名的就是EEYE发现的IIS的溢出,也就是当年的IISHACKER(呵呵,他的取名和我还很像哦,CGIHACKER,IISHACKER)靠,有兴趣的朋友可以多看看关于溢出方面的文章和IISHACKER的源代码.其实是因为没有判断用户输入边界造成的,应用我们安盟大虾的话就是:本来我做电梯上五楼,234楼是机密单位别人无权进入,谁知道电梯超载了,到了二楼电梯停了,我也就进了我不该进的地方,干了我不该干的事情.(形象吧,经典吧,大家鼓掌)
我对CGI漏洞研究乐此不疲,因为利用CGI入侵有很多其它方法无可比拟的好处,用它对付那些自以为安装了FIREWALL就不得了的主机很有效果,当然发现一个CGI的漏洞并利用也并不是那么简单的一件事情,最重要的是你有兴趣.
顺便吹个牛皮:我自己写一个WEB SERVER取名叫"AnyWay",支持GET和POST请求,支持COOKIE、身份验证.用纯JAVA编写,不支持JSP和SERVLET,但支持纯JAVA写的应用程序,自认为功能很强,现在的CGI和JSP,PHP,ASP能做到的它都可以. 绝不会出现暴露源代码的问题,也绝对不会产生溢出让用户执行任意代码,最多就是我的SERVER挂起.那天心情好,放到网上悬赏5元钱让大家测试.标题:"Lovehacker AnyWay WebServer叫板全球黑客"幅标题:"谁能查看到index.cmd,list.cmd或其它以后缀.cmd结尾的文件的源代码,Lovehacker承诺奖励发现者五元RMB:)"
接着我的广告来了:CGIHacker正式版收录了我所知的258条CGI漏洞,扫描完成并生成日志报告,报告包括:漏洞,漏洞类型,漏洞描述,攻击方法,解决方案.并且CGIHacker正式版永久免费在线升级漏洞库.正式版仅需120元,如果你有兴趣请和lovehacker@联系!
摘自安盟