SQL注入(SQL Injection)

SQL注入的定义:

所谓SQL注入,就是利用现有应用程序的特性,攻击者通过在web表单、URL等可输入数据的地方插入(恶意)SQL语句一并原有SQL语句被代库执行。SQL命令就是前端应用程序和后端数据库之间的接口。

SQL注入的危害:

  • 数据库敏感信息泄露
  • 网页被篡改,挂马
  • 数据库被恶意操作
  • 服务器被远程控制,被安装后门
  • ……

SQL注入常见分类:

按数据类型:数字型(Integer)、字符型(String)

按返回结果:显错注入(Error-Based)、盲注(Boolean/Time-Based Blind)

SQL注入的形成:

  1. 数据与代码未严格分离
  2. 用户提交的参数数据未做充分检查过滤即被代入到SQL命令中,改变了原有SQL命令的“语义”,且成功被数据库执行。

SQL注入常见过程:

客户端:参数值等数据被修改——>服务端:未经检查和过滤即将被修改的数据注入到SQL命令中,SQL命令功能被修改——>数据库引擎:执行被修改后的SQL命令——>服务端:将注入的结果返回给客户端——>客户端:根据上一次注入获取到的敏感信息构造注入语句进一步注入

SQL注入在渗透测试过程中的作用:

  • 绕过登录验证:使用万能密码登录网站后台等
  • 获取敏感数据:获取网址管理员账号、密码等
  • 文件系统操作:列目录、读取、写入文件等
  • 注册表操作:读取、写入、删除注册表等
  • 执行系统命令:远程执行命令

猜你喜欢

转载自blog.csdn.net/qq_41251963/article/details/104143822