A5下载 - 努力做内容最丰富最安全的下载站!

A5站长下载站

当前位置:A5下载 > 编程开发 > 网站开发 > php万能密码欺骗的一般原理

php万能密码欺骗的一般原理

时间:2015-04-02 16:27作者:zhao人气:662

PHP登录后台的防注入攻击

如今,互联网上的攻击、入侵事件频发,攻击手段越来越多样,攻击工具也泛滥成灾,这其中尤其以注入攻击最为常见。因为这种攻击方式技术门槛低,攻击 工具多。注入攻击利用网站页面的用户提交数据功能,恶意编造具有攻击破坏性质的特殊数据字符串,提交给网站执行。如果网站源代码设计不健壮,对提交的数据 没有做严格的防范过滤,就很容易被利用,黑客可以以此为突破口,攻入网站服务器。

万能密码欺骗的一般原理

每个网站都要发布信息、更新内容,必须有登录后台,有登录就有提交。每个试图入侵网站的人都想用最快最简单的方法达到目的,猜测或破解后台密码显然是一种高效的手段。于是网络上便有了破解后台登录的万能密码。

下面结合语句进行具体分析,来看一下这条语句:

SELECT * FROM admin WHERE Username= '".$username."' AND Password= '".$password."'

这是一个标准的SQL 查询语句,查找表里面记录的用户的账号密码和用户提交的账号和密码是否匹配,如果查找到或者查找成功(找到和查找成功有非常大的区别,万能密码正是利用了这一点),则系统就认为您是合法的管理员了。

正常的思路是如何猜对用户名和密码,即从“找到”的角度出发,从而成功非法侵入。显然,猜对的可能性非常小。于是有人另辟蹊径,从“查找成功”入手。

分析这条语句,要让其“查询成功”,只要让电脑“认为”查询结果为真即可,而不必理会用户名和密码,于是有人想到了逻辑运算“OR”,只要“OR”一个真值,电脑就认为查询成功了。

这里我们假设在用户名处输入 1′ or 1=1 or ‘1’=’1,密码随便输入,假设输入“123”,那么上面这条语句在执行时就变成了:

SELECT * FROM admin WHERE Username='1' OR 1=1 OR '1'='1' AND Password='123'

分析一下语句的逻辑判断,看看是怎样执行的。

首先,逻辑运算的优先顺序是NOT>OR>AND(非> 或> 与)。根据这样的优先顺序,上面语句中先执行的是’1’=’1′ AND Password=’123’,’1’=’1′ 条件当然为真,Password=’123′ 为假(当然也有例外,那就是管理员真的把密码设成123),所以,进行AND 操作后,结果为假。

相应地,语句中Username=’1′ 条件为假,1=1 条件为真,那么简化一下逻辑判断,就是“假OR 真 OR 假”。显然这条语句经过逻辑运算后其结果为真。

这样,虽然没有提交正确的用户名和密码,但却得到了一个结果为真的逻辑判断,从而成功地骗过电脑,侵入了系统。

标签php,万能,密码,欺骗,一般,原理,PHP,登录,后台,注

相关下载

查看所有评论+

网友评论

网友
您的评论需要经过审核才能显示

公众号