找回密码
 注册
搜索
热搜: 超星 读书 找书
查看: 692|回复: 0

[【原创】] 对'or'的一点认识,还好没有重复,帖子是偶原创,但内容地球人都知道

[复制链接]
发表于 2006-1-3 10:37:26 | 显示全部楼层 |阅读模式
现在,大多数老鸟都知道'or''='的奥秘了,但可能很多人知其然而不知其所以然,今天偶就唐僧唐僧,罗嗦两句,顺便纠正一些误区.
   这其实是一个漏洞,一个ASP语法上的漏洞.由于现在大多数网站的登陆(顺便说一句,这里应该是登录,你以为你是海军陆战队啊)界面都是基于ASP格式的(网页扩展名为.asp),所以很可能具有这个漏洞.具不完全统计,有一半左右的网站具有此漏洞.因为此漏洞只针对ASP,所以诸如Windows登录等等情况用此法是行不通的,我们也不用担心自己的系统有此漏洞.

闲话少叙,这就详细地分析一下:

user=request.from(\"user\")
pass=request.from(\"pass\")
这相当于给变量赋值,即将文本框中的输入赋给user和pass

sql=\"select * from guestbook where user=' \"&user&\" ' and pass=' \"&pass&\" ' \"
这是核心语句,就是靠它判断的

将user= 'or''=' 和
  pass= 'or''=' 代入

sql=\"select * from guestbook where user=' 'or' '=' ' and pass=' 'or' '=' '\"

学过数字逻辑的一定知道了,' '=' '的值是“1”“真”“True”,or是“或”的意思,任何值 或1都等于1,所以最终值为真,顺利登录.

注意:'or''='都是单引号没有双引号,还是半角,不要开输入法.

至于防范之法也是有的,只需加一些验证算法,这里不再赘述,让管理员都学会了怎么办.多亏有此漏洞才使我们能过一把黑客瘾.
另外,用户名可用其他字符,我试过数字字母,都可以.只要\"密码\"正确就行.
其实这是个比较容易发现的漏洞,可能图书馆管理员都很菜,不一定懂底层代码,他们的数据库都是现成的.其实我同大家一样,喜欢用DreamWeaver,而看不懂Html代码.
现在真正搞技术的人太少了,我们要发展民族工业,掌握核心技术啊!!!!!
祝大家多读好书,多长见识,多搞技术!!!!!     
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|网上读书园地

GMT+8, 2024-5-26 00:05 , Processed in 0.278381 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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