SQL注入学习笔记

教程:http://edu.51cto.com/course/5733.html

经典的登录模块的SQL语句是:
select id from users where username = 'USERNAME' and password = 'PASSWORD'
如果存在SQL注入漏洞,可输入用户名、密码为:' or' 1=1
则生成的SQL语句为:
select id from users where (username = '' or' 1=1') and (password = '' or' 1=1')
这等效于:
select id from users

该语句会获取users表中的每一条记录,一般应用程序会返回第一条记录作为登录用户。而很多系统的第一个用户为管理员

修改一下,输入用户名为' or' 1=1';drop table users;-- 
则SQL语句变为:
select id from users where (username = '' or' 1=1';drop table users;-- )' and (password = 'PASSWORD')
这会导致users表被删除

判断一个系统是否有SQL注入漏洞的三部曲:
1.在正常的输入值之后加一个',看系统是否有异常;
2.在正常的输入值之后加一个 and 1=1 或 ' and '1'='1 (视具体情况而定),看结果是否与正常的输入相同;
3.在正常的输入值之后加一个 and 1=2 或 ' and '1'='2 (视具体情况而定),看查询结果是否与正常的输入不同。如显示内容为空(程序加上了on error resume next)、出现异常页面、提示BOF或EOF(程序没做任何判断)、提示找不到记录(判断了rs.eof时)。总之,与正常输入的现象不同。以上三个条件都满足则说明系统一定存在SQL注入漏洞;反之则说明不存在SQL注入漏洞

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值