计算机技术论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

  • 欢迎访问 计算机技术论坛-电脑迷与初学者的家园!由于论坛管理严格,新注册会员可能遇到各种问题,无法解决的请发邮件 admin@jsjbbs.cn
查看: 2778|回复: 0

“or”漏洞是网站的要害-网站安全加固

[复制链接]
发表于 2009-12-25 16:46:23 | 显示全部楼层 |阅读模式
“or”漏洞是网站的要害-网站安全加固
   网站后台可以说是一个网站的核心,也是网站管理员管理网站的地方,如果我们要登录网站后台,则必须在登录页面输入管理员的账户和密码,验证成功后才能登录。但是有一种名为“or”的漏洞却可以让后台登录验证系统犹如一层薄纸,一捅即破。黑客只需输入几个字符,就可以绕过网站后台的登录验证,直接进入后台管理界面。
“or”漏洞的成因
   “or”漏洞通常被称为`or` `=`漏洞,懂一些编程或数据库知识的朋友肯定知道这是一个条件语句,而造成“or”漏洞的原因正是因为程序员在编写网站程序时逻辑上考虑不周,同时对单引号没有进行过滤,让上面这个条件语句被成功执行,从而导致无需验证即可进入网站后台。所以我们要做好网站安全加固措施。
我们来看一段很多网站后台登录页面都存在的代码:
user=request.form("user")
pass=request.form("pass")
(省略)
sql="select * from guestbook where user=`"&user&"` and pass=`"&pass&"`" (*)
    第一句代码的意思是获取输入的用户名,第二句是获取输入的密码,第三句是将输入的管理员信息与数据库中存在的数据进行比对。上文这段代码看似没有问题,但是当我们输入`or` `=`(都是单引号)后,第三句验证语句就成了sql="select * from guestbook where user="or"=" and pass="or"=""。因为"="的值是真,那么后面的验证部分就成了user=`"&user&"` and pass=`"&pass&"`,相信这点大家都能看懂,类似于1=1,2=2,谁都不会认为这有错,这样整个语句的条件就成为了真,也就是说,我们欺骗了验证程序,通过了验证。
    漏洞的利用:知道了原理后,我们再测试一下利用这个漏洞所能达到的效果,在google中以“inurl:admin_login.asp”为关键字进行搜索,可以找到很多符合条件的页面安全,这些页面大多数都是一些网站的后台登录页面,在其“用户名”和“密码”处都输入`or` `=`,输入完毕后点击“登录”即可。如果该网站存在“or漏洞”,那么这时我们会惊奇的发现,页面直接跳转到了后台管理界面,说明我们已经绕过了后台登录验证系统。如果出现密码错误的提示,则可能是因为网站对于“空”=“空”这样的语句不认同,这时我们可以用` or `1`=`1再进行尝试。
    从上文中我们可以看到,利用“or”漏洞登录网站的后台,从而入侵一个网站是十分容易的,尽管“or”漏洞是一个比较经典的老漏洞,但是却仍然有很多网站存在这样低级的漏洞。要防御“or”漏洞也比较简单,在后台登录页面的开头处(之间)加上一句:
On Error Resume Next
    这句代码的作用是容错,也就是当程序的语句执行错误时,将自动跳过错误,这样即使黑客利用“or”漏洞构造了特殊语句,也无法绕过后台的登录验证了。
以上安全隐患,请登录官方网站:中国安全基地
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

无图版|手机版|计算机技术论坛 JSJBBS.CN @ 2008-2024 ( 鲁ICP备17021708号 )

技术支持 : 北京康盛新创科技有限责任公司

快速回复 返回顶部 返回列表