SQL是什么?

结构化查询语句

SQL注入是什么?

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

造成注入的原因/原理?

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

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

SQL注入分类?

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

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

SQL注入危害?

1.数据库信息泄露

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

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

4.私自添加系统账号

5.读写文件获取webshell

防御?

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

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

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

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

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

扩展:

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

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

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

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

报错注入:由于配置不当,错误信息被输出到前台,导致攻击者根据报错信息进行一系列操作

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

SQL注入原理&分类&危害&防御的更多相关文章

  1. Web安全之SQL注入(原理,绕过,防御)

    首先了解下Mysql表结构 mysql内置的information_schema数据库中有三个表非常重要1 schemata:表里包含所有数据库的名字2 tables:表里包含所有数据库的所有的表,默 ...

  2. SQL注入原理及绕过安全狗

    1.什么是SQL注入攻击 SQL注入攻击指的是通过构造特殊的输入作为参数插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令 http://www.xxx.com/list. ...

  3. web安全之sql注入原理

    sql注入的原理:        将(恶意)的SQL命令注入到后台数据库引擎执行的能力,把信息返回到页面 sql注入产生的原因:      过滤不严谨,导致产生的sql注入. sql注入产生的地方:  ...

  4. SQL注入原理与解决方法代码示例

    一.什么是sql注入? 1.什么是sql注入呢? 所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网 ...

  5. sql注入原理及解决方案

    sql注入原理 sql注入原理就是用户输入动态的构造了意外sql语句,造成了意外结果,是攻击者有机可乘 SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的 ...

  6. sql注入原理,利用与防护

    一.sql注入原理 注入攻击的本质就是把用户输入的数据当作代码来执行.所以注入攻击有两个必要条件 1.用户能够控制的输入. 2.原本程序要执行的代码,拼接了用户输入的数据. 二.sql注入分类 按照请 ...

  7. SQL注入原理及代码分析(二)

    前言 上一篇文章中,对union注入.报错注入.布尔盲注等进行了分析,接下来这篇文章,会对堆叠注入.宽字节注入.cookie注入等进行分析.第一篇文章地址:SQL注入原理及代码分析(一) 如果想要了解 ...

  8. Java程序员从笨鸟到菜鸟之(一百)sql注入攻击详解(一)sql注入原理详解

    前段时间,在很多博客和微博中暴漏出了12306铁道部网站的一些漏洞,作为这么大的一个项目,要说有漏洞也不是没可能,但其漏洞确是一些菜鸟级程序员才会犯的错误.其实sql注入漏洞就是一个.作为一个菜鸟小程 ...

  9. 回头探索JDBC及PreparedStatement防SQL注入原理

    概述 JDBC在我们学习J2EE的时候已经接触到了,但是仅是照搬步骤书写,其中的PreparedStatement防sql注入原理也是一知半解,然后就想回头查资料及敲测试代码探索一下.再有就是我们在项 ...

随机推荐

  1. 在jupyter notebook中运行R语言

    要想在jupyter notebook中运行R语言其实非常简单,按顺序安装下面扩展包即可: install.package('repr','IRdisplay','evaluate','crayon' ...

  2. Linux - 搭建FastDFS分布式文件系统

    1. FastDFS简介 说明:FastDFS简介部分的理论知识全部来自于博主bojiangzhou的 <用FastDFS一步步搭建文件管理系统>,在此感谢博主的无私分享.当然最最要感谢的 ...

  3. kubeadm init 时从本地私有仓库下载镜像

    #kubeadm init 时从本地私有仓库下载镜像 images=( gcr.io/google_containers/kube-proxy-amd64:v1.6.1 gcr.io/google_c ...

  4. Windows启动控制台登录模式

    效果如下: 实现代码: Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\Lo ...

  5. virtualbox+vagrant学习-2(command cli)-20-vagrant suspend命令

    Suspend 格式: vagrant suspend [options] [name|id] 这个suspend命令将挂起vagrant正在管理的客户机,而不是完全关闭或摧毁它. 挂起有效地保存了计 ...

  6. 牛顿法/拟牛顿法/DFP/BFGS/L-BFGS算法

    在<统计学习方法>这本书中,附录部分介绍了牛顿法在解决无约束优化问题中的应用和发展,强烈推荐一个优秀博客. https://blog.csdn.net/itplus/article/det ...

  7. 微信公众号开发 [03] 结合UEditor实现图文消息群发功能

    0.写在前面的话 如何实现微信平台后台管理中的,图文消息发送功能? 大概的过程如下: 通过类似表单的形式,将文章各部分内容提交到后台,封装成一个实体类,并持久化到数据库中 需要推送的时候,将不同的文章 ...

  8. CentOS如何配置yum源

    参考:http://blog.csdn.net/qingfenggege/article/details/80394564 1. yum 前端软件包管理器2. 基于RMP包管理,能够从指定的服务器自动 ...

  9. Kali渗透测试2-抓包/DNS工具

    转载请注明出处. TCPDUMP:命令行网络抓包工具tcpdump -h tcpdump version 4.9.2 libpcap version 1.8.1 OpenSSL 1.1.0h 27 M ...

  10. docker 下 mysql 集群的搭建

    下载程序&&创建docker容器 从mysql官网https://dev.mysql.com/downloads/cluster/上下载mysql集群库mysql-cluster-gp ...