网站后台万能密码'or'='or' 原理

 

很多菜鸟都不知道'or'='or' 为什么可以直接进网站的后台,下面就来解释下给大家吧! 原理是这样的:(以下全部以asp为例子) 很多网站把密码放到数据库中,在登陆验证中一般都用以下sql查询语句去查找数据库, sql=select * from user where username='username'
  很多菜鸟都不知道'or'='or' 为什么可以直接进网站的后台,下面就来解释下给大家吧!
原理是这样的:(以下全部以asp为例子)

很多网站把密码放到数据库中,在登陆验证中一般都用以下sql查询语句去查找数据库,

 

sql="select * from user where username='"&username&"'and pass='"& pass&'" ,

如果用户提交的用户名密码和数据库里面的一样就让你登录,反之则不行。

 

这里多嘴两句,or 是一个逻辑运算符,作用是在判断两个条件的时候,只要其中一个条件成立,那么

等式将会成立.而在语言中,是以1来代表真的(成立).那么在这行语句中,原语句的"and"验证将不再

继续,而因为"1=1"和"or"令语句返回为真值.。(其实也好理解,英文or是或者的意思,也就是说

这个或者那个中有一个是对的,那么整句话就对的,那我还管你后面的and甘什么呢?)好了,

我们根据sql这个特性构造一个特殊的用户名和密码来绕过它的验证,就用我构造的那个'or' '=' ,

用户名和密码都是'or' '=',我们来看看放到整个程序中会是什么样子。

 

sql="select * from user where username=''or' '=''and pass=''or' '='' (注意,or前面和=后面都不是

双引号,而是两个单引号,查询语句里面没有双引号,双引号只是让里面的变量变成字符而已,

我们查询的时候双引号中的变量就被我们提交的数据所代替),好了,现在整句话的意思是:从数

据库的user表中查找的用户名是空(两个单引号之间没东西当然是空了:))或者空等于空。废

话,因为空当然等于空了,所以程序就认为你提交的数据是合法的,于是就放你通过拉and后面

的密码验证都不要了。

有人问我,是不是只有这个'or' '=' 才可以绕过验证呢? NO,you are wrong !

 

根据这个原理我就可以随便构造我喜欢的语句,比如 aweige' or 'aweige'<>'骆驼

这样放进去就变成了用户名是aweige或者aweige不等于骆驼,废话,aweige当然不不等于骆驼拉

难道还等于骆驼啊??于是就给我放行了。大家也可以根据自己的喜欢去构造这样的语句,我就

不多说了。我想说的是修补方法。

 

修补方法有两(当然还有别的,这只是我自己常用的):

 

1,对输入的内容验证

 

可以加一些脚本来验证客户端输入的内容进行验证

 

2,特殊字符特别是单引号的过滤。

 

我们也看到了,上面的构造语句中,都有但引号的存在,也有一些其它的字符,因此,只要我们

吧这些东西都过滤掉,系统就会安全一点了。

 

可以用replace语句对但引号和其他特殊字符进行过滤,比如

 

replace(username,"'","''") '把单引号转换为两个单引号

 

replace(username,"<>"," ") '把不等号转换为空

这样的话用户提交的构造语句就没用了。

========

后记

========

 

1,以上的漏洞只是登录的问题,如果再精心构造,还能得到整个系统的全部数据,我曾用过自

己构造的union语句拿到金梅电影的所有钻石会员和黄金会员,搞得我电影都看不完,大家去仔细

研究学习一下asp和sql数据库查询语言的话可能还会得到比我还多的东西哦

2,现在的系统除了一些比较烂的之外,基本上都已经修补好了这个漏洞,所以,远离知道了,

大家就去学习新的东西,通过别的方法来得到我们想要的东西。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值