利用sql注入进行登录

利用sql注入进行登录

ID:6788865

大小:701.50 KB

页数:5页

时间:2018-01-25

利用sql注入进行登录_第1页
利用sql注入进行登录_第2页
利用sql注入进行登录_第3页
利用sql注入进行登录_第4页
利用sql注入进行登录_第5页
资源描述:

《利用sql注入进行登录》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、关于“进销存”系统的登录方法——利用SQL注入进行登录“进销存”系统的登录存在着SQL注入的漏洞,利用这个漏洞可以绕过用户名和密码的判断,从而进入“进销存”系统。下面,对于这个漏洞进行具体的说明。(注:由于系统源代码可见,于是可以直接通过代码来分析SQL注入,因此不在这里进行源代码语句漏洞试探。)1、首先打开登录页面,找到源代码地址。图1——登录页面的源代码地址2、打开源代码,找到有关登录语句验证的代码,代码如下(重要部分已给出注释):<%elsenowusername=request.form("u

2、sername")//声明一个变量nowusername,把页面中的登录名内容传值给此变量。nowpwd=request.form("pwd")//声明一个变量nowpwd,把页面中的密码内容传值给此变量。userip=Request.ServerVariables("HTTP_X_FORWARDED_FOR")Ifuserip=""Thenuserip=Request.ServerVariables("REMOTE_ADDR")endifsql="select*fromloginwhere(user

3、name='"&nowusername&"'andpwd='"&md5(nowpwd)&"')or(bianhao='"&nowusername&"'andpwd='"&md5(nowpwd)&"')"//声明一个sql语句,条件是调用login表中的username字段为页面中的登录名内容值且pwd字段为页面中的密码内容值,或者调用login表中的bianhao字段为页面中的登录名内容值且pwd字段为页面中的密码内容值。//从这里还可以看出,登录方式为两种:输入用户名和密码;输入用户编号和密码。//

4、username='"&nowusername&"'此段代码的意思为:把用户输入的登录名内容替换如下代码——"&nowusername&"。//例:登录时登录名输入admin,运行时,username='"&nowusername&"'将被编译为username=’admin’。setrs=conn.execute(sql)//创建一个对象rs,运行上面的sql语句。ifrs.eofThen//如果没有查询结果。//rs.eof的意思是rs对象移动到最后一行,如果rs对象在最后一行,说明没有查询结果,

5、因为如果有查询结果,rs对象将是查询结果。conn.execute("insertintorizi(username,class,address)values('"&nowusername&"','登陆失败','"&userip&"')")//在rizi表中添加记录,记录username登录失败的信息。%>alert('登录名称或密码错误!')//弹出警告对话框window.history.go(-1)3、由代码中可以看到,关键的

6、登录判断语句为:sql="select*fromloginwhere(username='"&nowusername&"'andpwd='"&md5(nowpwd)&"')or(bianhao='"&nowusername&"'andpwd='"&md5(nowpwd)&"')"这段语句会判断login表中是否存在输入的用户名和密码,或者用户编号和密码。下面,提出sql语句进行具体分析:SQL语句1:select*fromloginwhere(username='"&nowusername&"'and

7、pwd='"&md5(nowpwd)&"')or(bianhao='"&nowusername&"'andpwd='"&md5(nowpwd)&"')可见,where条件有两大部分,用or进行连接(形式为:select*fromloginwhere条件1or条件2)。因此,or后面的语句是否为真不重要,只要前面(条件1)为真即可。再拿出前面的(条件1)语句进行分析:SQL语句2:username='"&nowusername&"'andpwd='"&md5(nowpwd)&"'由这段代码中可以看到,此

8、部分又分为两个条件判断,用and进行连接(形式为:条件1and条件2)。4、进行SQL注入分析由上面的登录代码分析可见,如果SQL语句2为真,那么SQL语句1也为真。现在的问题是如何让SQL语句2恒为真。现在SQL语句2的形式为:条件1and条件2,根据SQL语句1的提示,可以看出,如果SQL语句2形式变成:条件1or条件3or条件4and条件2,那么可见,即使条件2不为真,如果条件1或者条件3有一个为真,那么SQL语句2就为真。因此,目的就是要添加or

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。