天下网吧 >> 网吧天地 >> 网吧技术 >> 网吧安全 >> 正文

CGI中最常见漏洞的安全问题

2012-11-2251CTO黑客x档案

  CGI中最常见的漏洞是由于未验证用户输入参数而引起的问题。CGI脚本一般从URL 、表单或路径信息(Path Information)中获取用户的请求信息。Web程序开发人员容易习惯性认为用户会按照要求的格式输入数据,并在这个假定的前提下开发程序,而当这个前提没有满足时,程序的控制逻辑就可能发生错误。对于攻击者来说,他们总能找到一些开发人员未料到的发送数据的方法。

  CGI程序中经常会使用路径信息填充PATH_INFO或其他环境变量,路径信息通常指Web服务器上的那些如配置文件、临时文件或者被脚本因问题调用的文件等此类不用变更的参数。但 PATH_INFO 变量是可以通过其他方式修改的,因而在使用时必须小心地验证其内容,盲目地根据PATH_INFO指定的路径文件进行操作的CGI脚本可能会被恶意用户利用。

  例如,某个CGI脚本的功能是打印PATH_INFO中引用的文件,脚本程序如下所示:

  源码复制打印

  #!/bin/sh

  #Send the header

  echo "Content-type:text/html"

  echo ""

  #Wrap the file in some HTML

  #!/bin/sh

  echo "

"

  echo "Here is the file you requested:

\n"

  cat $PATH_INFO

  echo "

"

  一个恶意的用户可能会输入这样的 URL:

  http://www.hack6.com /cgi-bin/foobar.sh/etc/passed

  上述脚本立刻就会返回机器的口令文件。通过这一方法,用户就可以读取机器上的几乎所有文件。

  在使用CGI进行Web应用开发时,有一些应该遵循的重要原则。

  1.按照帮助文件正确安装CGI程序,删除不必要的安全文件和临时文件。

  2.检查CGI代码,检查其来源是否可靠、是否存在漏洞或恶意代码。

  3.使用C/C++ 编写CGI程序时,注意使用安全的函数。

  4.使用安全有效的验证用户的方法。

  5.验证用户的来源,防止用户短时间内过多动作。

  6.建议过滤下列字符:& ; ·、“ | * ? ~ <>^ () [] {} $ \n \r \t \0 # ../ 。

  7.注意处理好意外和错误情况。

本文来源:51CTO 作者:黑客x档案

相关文章
没有相关文章
声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。文章是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢。 Email:support@txwb.com,系统开号,技术支持,服务联系微信:_WX_1_本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下
  • 本周热门
  • 本月热门
  • 阅读排行