有了上述1、2的基础知识我们来看一个SQL注入的案列。
代码链接:https://github.com/PrivateThink/sqlinjection
上述代码是用springboot搭建的测试环境,用来测试SQL注入,接下来所有的SQL系列讲述都会用到这个测试代码。有兴趣的可以下载下来跟着SQL注入系列教程进行学习。
当请求链接:
http://localhost:8080/user/name?name=lingheng'
时,数据库将会执行下面SQL语句:
select * from t_person where Fname='lingheng''
当参数name=lingheng' 时,上述的SQL语句是不规范的,所以会返回错误:
由于SQL语句中多了一个单引号" ' ",数据库执行错误,服务器直接返回错误的信息。从上图的错误信息中可以清楚的看到执行的SQL语句,以及网站使用的数据为 MySQL , 错误的信息回显在网页上会给攻击者提供必要的攻击信息,方便攻击者构造SQL注入语句进行攻击。
我是小图灵视界,会不定时更新互联网安全、互联网资源、互联网技术、以及互联网工具的文章,欢迎各位进行关注!
SQL注入系列
- SQL注入-概念
- SQL注入-MySQL注入基础
- SQL注入-案例