sql注入攻击登录页面

适用范围:

 

1. 如果一个系统是通过

SELECT * FROM accounts WHERE username='admin' and password = 'password'这种显式的SQL来进行登陆校验,

也就是执行这个SQL语句,如果数据库中存在用户名为admin, password为password的用户,就登陆成功,否则就登陆失败。



2. 系统没有对用户输入进行全面的过滤



3. 系统后台使用的是MYSQL数据库



4. 系统中存在一个user name为admin的用户



攻击原理:



利用MYSQL的注释功能,也就是"/*", mysql执行SQL脚本时,如果遇到/*标示符,就会把之以后的SQL当做注释而不会执行,

正常情况下用户在用户名框内输入"admin",在password框内输入"password", 后台执行的SQL语句就为

SELECT * FROM accounts WHERE username='admin' and password = 'password'

但是如果在用户名框内输入"admin' AND 1=1 /*", 在密码框内输入任意字符串,那么后台执行的SQL就为

SELECT * FROM accounts WHERE username='admin' AND 1=1 /* and password = 'aa', 可以看到数据库实际执行的SQL为

SELECT * FROM accounts WHERE username='admin' AND 1=1, 而/*后面的SQL就被当做注释而忽略掉了,登陆成功!
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值