SQL注入原理&分类&危害&防护

 

SQL是什么?

结构化查询语句web

SQL注入是什么?

是一种将SQL 语句插入或添加到用户输入的参数中,这些参数传递到后台服务器,加以解析并执行shell

形成注入的缘由/原理?

1.对用户输入的参数没有进行严格过滤(如过滤单双引号 尖括号等),就被带到数据库执行,形成了SQL注入数据库

2.使用了字符串拼接的方式构造SQL语句安全

SQL注入分类?

根据数据类型分为:1.整型注入  2.字符型注入服务器

根据注入语法分为:1.联合查询注入  2.报错型注入    3.布尔型注入  4.延时型注入  5.多语句查询注入网站

SQL注入危害?

1.数据库信息泄露编码

2.网页篡改:登录后台后发布恶意内容spa

3.网站挂马 : 当拿到webshell时或者获取到服务器的权限之后,可将一些网页木马挂在服务器上,去攻击别人字符串

4.私自添加系统帐号io

5.读写文件获取webshell

防护?

1.对进去数据库的特殊字符(单双引号 尖括号等)进行编码转换

2.不要使用动态拼装SQL,使用参数化SQL

3.不要使用管理员权限的数据链接,最好为每一个应用使用单独的数据库链接

4.应用异常信息尽可能给出少的提示,最好自定义报错信息对原始报错信息进行包装

5.使用防火墙,安全狗,云盾等

扩展:

联合查询:合并多个类似的选择查询结果

联合查询限制条件:必须由两条或两条以上的select语句组成,语句之间用关键字union分隔

                                 union中的每一个查询必须包含相同的列

无论是报错还联合注入都是基于整型和字符型注入这两种类型下的

报错注入:因为配置不当,错误信息被输出到前台,致使攻击者根据报错信息进行一系列操做

延时注入和布尔注入共同点:都是一个字符一个字符爆出来的,耗费时间长,都没有显示位,都要ASCII码推算

相关文章
相关标签/搜索