分享
 
 
 

安全专家:CGI安全概述

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

1.什么是CGI?

不要奇怪,有相当一部分人对CGI的概念还比较模糊,他们眼中的CGI就是Perl CGI,其实CGI是Common Gateway Interface(公用网关接口)的简称,并不特指一种语言。事实上,几乎任何支持标准输入输出的语言都可以称为CGI语言,如Perl,Php,C,VC++等都可以称为CGI语言。

2.什么是CGI安全?

这里所说的CGI安全,主要包括两个方面,一是Web服务器的安全,一是CGI语言的安全(其实对于解释型CGI语言,还涉及到解释器的安全,不过由于它在CGI安全中所占的比例不大,所以我们就不考虑了)。对于不同的CGI语言,我们所说的CGI安全可能有些不同,比如说对于ASP和JSP,我们所说的CGI安全主要是指Web服务器的安全。而对于Php和Perl,我们所说的CGI安全就主要是指CGI语言的安全。

3.CGI存在什么安全问题?

既然CGI安全包括两个方面,那我们就分别从这两个方面来介绍一下CGI的安全性,下面依次介绍Web服务器的安全和CGI语言的安全。

Web服务器的安全问题主要包括两个方面,一是Web服务器软件编制中的BUG,二是服务器配置错误。这可能导致CGI源代码泄露,物理路径信息泄露,系统敏感信息泄露或远程执行任意指令。

下面主要讨论一下CGI语言的安全问题。由于CGI语言的复杂性,所以这方面的安全问题也比较多,参考Securityfocus关于漏洞起因的分类,我们可以为CGI语言漏洞分为以下几类:。

?配置错误

这里所说的配置错误主要指CGI程序和数据文件的权限设置不当,这可能导致CGI源代码或敏感信息泄露。还有一个经常犯的错误就是安装完CGI程序后没有删除安装脚本,这样攻击者就可能远程重置数据。前些日子“XX大联盟”论坛多次被黑就是这个低级错误所致。

?边界条件错误

这个错误主要针对C语言编写的CGI,利用这个错误,攻击者可能发起缓冲区溢出攻击,从而提升权限。

?访问验证错误

这个问题主要是因为用于验证的条件不足以确定用户的身份而造成的,经常会导致未经授权访问,修改甚至删除没有访问权限的内容。用于确定用户身份的方法一般有两种,一是帐号和密码,一是Session认证。而不安全的认证方法包括userid认证,Cookie认证等等。

?来源验证错误

比较常见的利用这种错误进行攻击的方法就是DoS,也就是拒绝服务攻击,如我们知道的灌水机,就是利用CGI程序没有对文章的来源进行验证,从而不间断的发文章,最后导致服务器硬盘充满而挂起。

?输入验证错误

这种错误导致的安全问题最多,主要是因为没有过滤特殊字符。比如说,没有过滤“%20”造成的畸形注册,没有过滤“../”经常造成泄露系统文件,没有过滤“$”经常导致泄露网页中的敏感信息,没有过滤“;”经常导致执行任意系统指令,没有过滤“|”或“\t”经常导致文本文件攻击,没有过滤“’”和“#”经常导致SQL数据库攻击,没有过滤“”导致的Cross-Site Scripting攻击等。

?意外情况处理失败

这种错误也很常见,如没有检查文件是否存在就直接打开设备文件导致拒绝服务,没有检查文件是否存在就打开文件提取内容进行比较而绕过验证,上下文攻击导致执行任意代码等。

?策略错误

这种错误主要是由于编制CGI程序的程序员的决策造成的。如原始密码生成机制脆弱导致穷举密码导致在Cookie中明文存放帐号密码导致敏感信息泄露,使用与CGI程序不同的扩展名扩展名存储敏感信息导致该文件被直接下载,丢失密码模块在确认用户身份之后直接让用户修改密码而不是把密码发到用户的注册信箱,登陆时采用帐号和加密后的密码进行认证导致攻击者不需要知道用户的原始密码就能够登陆等。

?习惯问题

程序员的习惯也可能导致安全问题,如使用某些文本编辑器修改CGI程序时,经常会生成“.bak”文件,如果程序员编辑完后没有删除这些备份文件,则可能导致CGI源代码泄露。另外,如果程序员总喜欢把一些敏感信息(如帐号密码)放在CGI文件中的话,只要攻击者对该CGI文件有读权限(或者利用前面介绍的一些攻击方法)就可能导致敏感信息泄露。

?使用错误

主要是一些函数的使用错误,如Perl中的“die”函数,如果没有在错误信息后面加上“\n”的话,就极可能导致物理路径泄露。

?其它错误

此外,还有一些其它难以归类的错误,如“非1即0”导致绕过认证的问题。

4.如果让你的CGI更安全?

了解了CGI的安全问题,我们也该知道怎么加强CGI的安全了吧?下面简单总结一下作为参考:

?使用最新版本的Web服务器,安装最新的补丁程序,正确配置服务器

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

?使用C编写CGI程序时,使用安全的函数

?使用安全有效的验证用户身份的方法

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

?推荐过滤“& ; ` ' \ " | * ? ~ ^ ( ) [ ] { } $ \n \r \t \0 # ../”

?注意处理好意外情况

?实现功能时制定安全合理的策略

?培养良好的编程习惯

?科学严谨的治学态度,避免“想当然”的错误

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有