您现在的位置是:主页 > 数据库技术 > 数据库技术
SQL注入该如何理解
IDCBT2022-01-06【服务器技术】人已围观
简介SQL注入该如何理解,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 SQL是什么? 结构化查询语⾔(Structured
SQL注入该如何理解,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
SQL是什么?
结构化查询语⾔(Structured Query Language ,SQL),是⼀种特殊的编程语⾔,⽤于数据库的标准数据查询。1986 年10 ⽉美国国家标准协会对SQL 进⾏了规范后,以此作为关系型数据库系统的标准语⾔。1987 年得到了国际标准组织的⽀持,成为了国际标准。
什么是SQL注入SQL注入是服务端未严格校验客户端发送的数据,而导致服务端SQL语句被恶意修改并成功执行的行为
SQL 注⼊的攻击⾏为可以描述为通过⽤户可控参数中注⼊SQL 语法,破坏原有SQL 结构,达到编写程序时意料之外结果的攻击⾏为。其成因可以归结为以下两个原因叠加造成的。
程序员在处理程序和数据库交互时,使⽤字符串拼接的⽅式构造SQL 语句
未对⽤户可控参数进⾏⾜够的过滤,便将参数内容拼接到SQL 语句中
漏洞原因用户能够控制输入
是对于输入检查不充分,导致SQL语句将用户提交的非法数据当作语句的一部分来执行
为什么会有SQL注入代码对带入SQL语句的参数过滤不严格
未启用框架的安全配置,例如:PHP的magic_quotes_gpc
未使用框架安全的查询方法
测试接口没有删除
未启用防火墙
未使用其他的安全防护设备
注⼊点可能存在的位置根据SQL 注⼊漏洞的原理,⽤户“可控参数”中注⼊SQL 与发,也就是说Web 应⽤获取⽤户输⼊的地⽅,只要带⼊数据库查询,都有存在SQL 注⼊的可能,这些地⽅通常包括:
GET 数据
POST 数据
Cookie 数据
HTTP 头部(HTTP 头部中的其他字段)
漏洞危害数据库信息泄漏、获取、修改敏感数据:数据库中存放的用户的隐私信息(帐号、密码)的泄露
绕过登录验证:使用万能密码登录网站后台等
文件系统操作:列目录,读取、写入文件等
网页篡改:通过操作数据库对特定网页进行篡改,嵌入网马链接,进行挂马攻击
注册表操作:读取、写入、删除注册表等
执行系统命令:远程执行命令
服务器被远程控制、种植木马:黑客可以修改或控制操作系统
提交方法有:get、post、cookie、request等
其中:request支持度较好,你把参数以get方式、post方式、cookie方式提交都是可以的
会在疑似注⼊点的地⽅或者参数后⾯尝试提交数据,从而进⾏判断是否存在SQL 注⼊漏洞。
很赞哦! ()