6、sql注入漏洞 20190930

1、漏洞介绍

1.1、定义:

  • sql注入是通过sql命令插入到web表单提交,输入域名或页面请求中的查询字符串,最终达到欺骗服务器执行恶意sql命令的目的。具体来说,它是利用现有应用程序,将恶意的sql命令注入到后台数据库引擎执行的能力,它可以通过web表单中输入恶意sql语句得到存在安全漏洞的网站上的数据库信息,而不是让网站按照设计者意图去执行sql语句。

1.2、产生条件:

  • 服务器未对客户端提交数据进行关键字过滤;

  • 客户端提交的数据直接参与sql查询

1.3、漏洞危害:

  • 攻击者通过sql注入可以获取数据库中的信息,包括管理员账户信息和普通用户账户信息,攻击者可以进一步寻找后台,利用获取的管理员账号登录,为进一步渗透服务器提供便利。
2、sqlmap简介
  • -u 指定注入url

  • –tables 猜测当前数据库所有表名

  • –dump 将获取到的内容保存到本地

  • -T 指定通过注入需要获取信息的表

  • –current-user 查询数据当前用户

  • –current-db 查询当前数据库名

  • -D 设定需要获取信息的数据库

  • –colums 查询指定表的所有列名

  • –os-cmd 利用诸如点,执行系统命令

  • –os-shell 利用注入点,写入shell

3、sql注入加固

3.1、参数化查询

  • 在使用参数化查询的情况下,数据库服务器不会将参数的内容视为SQL的一部分来处理,而是在数据库完成SQL指令的编译后,才套用参数运行,因此就算参数中含有SQL关键字,也不会被数据库运行

    例:匿名参数"?" UserName=?AND Password=?

    @+参数名:UserName=@UserName AND Password=@Password

3.2、过滤特殊字符

  • 使用正则表达式来筛选需要的字符串,过滤不需要的字符串
发布了38 篇原创文章 · 获赞 135 · 访问量 2806

猜你喜欢

转载自blog.csdn.net/weixin_44023693/article/details/102385258