我上学那会,老师喊来了老学长来给我们讲他从事网络安全行业的经历,老学长ppt演示的就是他通过sql注入万能钥匙成功登录网站的故事,没有你的密码,也能登录你的账号,当时同学们心中都种下了一颗神奇黑客的种子。
ailx10
网络安全优秀回答者
网络安全硕士
去咨询
所以说,web渗透测试是一门手艺活,不懂原理没关系,一顿突突就完事,又不是不能跑,如果能知道原理,那就更上一层楼了,随着时间的增长,自然而然,耳濡目染,就懂了原理了。话说回来,这种注入已经是实验室古董了,现实环境几乎绝迹了,因为加密和盐。
常见的sql注入 万能密码 |
a' or 'a'='a' |
a' or 1 # |
a" or ""a"="a |
123 or 1 |
a"" or ""a""=""a |
'or' |
&mo# |
sql注入本质上是拼接sql语句,其中$uname和$passwd是用户提交的用户名和密码,如果where后面是true,那么就能成功登录$uname的账号,本意是只有用户名和密码都输入正确,才能成功登录
select * from user where username='$uname' and password = '$passwd'
但是黑客$uname正常输入admin,$passwd异常输入a' or 'a'='a' ,组合的sql语句如下,强制绕过了密码检查,where后面铁定是true,自然成功登录了admin的账号
select * from user where username='admin' and password = 'a' or 'a'='a'
现在这种套路已经很难奏效了,因为密码会经过加密计算,你输入的信息,需要经过一轮解密运算,得到新的字符串,再拼接就很难是一个有效的sql语句了,从而导致sql注入失败,这也是一个高频的网络安全面试题,你学会了吗?