软考-信息安全工程师学习笔记96—数据库安全知识扩展

软考-信息安全工程师学习笔记96—数据库安全知识扩展

技术教程gslnedu2024-12-25 11:15:2515A+A-

SQL注入原理

定义:通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL 命令。

具体来说,它是利用现有应用程序,将恶意的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句


SQL注入演示

例如:

当我们在网站上输入用户名和密码登陆时,系统会在后台 产生一个SQL语句。

Select * from Users where Username=‘”&UserName&”’ and Password=‘”&Password&”’

正常情况下:UserName=abc ,Password=123语句产生如下: – select * from Users where UserName='abc' and Password='123

若我在用户名中输入‘ or 1=1 –,密码随意输入3,则语句如下:

– select * from Users where Username='' or 1=1 --and password='3'

说明下:

  1. 两个单引号说明用户名为空
  2. 1=1说明永远成立
  3. or 只要有一个成立即可
  4. --将密码判断注释掉了
  5. 意义:绕过输入真实的用户名,密码任意填写,即可登录系统

SQL注入攻击总结

  • 利用SQL语句本身问题,将原有的SQL语句改变。
  • 并不是每次注入都能够成功。

总结:攻击通过什么呢?

  1. 空格 , -- ;
  2. or
  3. delete、drop、update等关键词
  4. xp_shel

SQL注入防范—数据库防范

用户权限控制 – 坚持最小权限原则,特别是truncate、drop等权限

特殊字符的过滤 – 空格, -- ;

数据完整性判断

  1. 若参数是纯数字,则要进行数字判断,如:Id=1。
  2. 若参数为字符串,则要删除特殊字符,重点是空格。如:高校邦的 测试题。其次可以对长度进行判断,比如学号15位,身份证号18位等等

借助于第三方软件对web服务器进行防范。

  • 代表软件:网站安全狗
  • 普通的注入是可以阻挡的,但不是万能的。
  • 这主要取决于网站安全狗的算法。




学习参考资料:

信息安全工程师教程(第二版)

建群网培信息安全工程师系列视频教程

信息安全工程师5天修炼

点击这里复制本文地址 以上内容由朽木教程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

朽木教程网 © All Rights Reserved.  蜀ICP备2024111239号-8