所谓SQL注入攻击,就是攻击者把SQL命令插入Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造或者影响动态SQL命令,或作为存储过程的输入参数,这类表单特别容易收到SQL攻击。
SQL注入是从正常的WWW端口访问,而且表面看起来和一般的web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报。
testfire 网站有SQL注入风险
1. 打开 http://demo.testfire.net
2. 打开登录页面
3. 在Username文本框中输入 ' or '1'='1 ,在Password 文本框中输入 ' or '1'='1,按Login按钮。
4.查看结果页面
期望结果:页面显示拒绝登录的信息
实际结果:以管理员身份成功登录
类似的,testasp网站有SQL注入风险
网址: http://testasp.vulnweb.com/
点击login,在Username文本框中输入admin'-- ,在Password 文本框中输入任意值(不得为空),按Login按钮。
期望结果:不能登录
实际结果:登录成功
常见SQL注入攻击的类型:
1.没有正确过滤转义字符
2.不正确的数据类型处理
3.数据库服务器中的漏洞
4.盲目SQL注入攻击
5.条件响应
6.条件性差错
7.时间延误
SQL注入攻击利用的是数据库SQL语法,对SQL语法使用越深入,攻击得到的信息就越多。