当前位置:首页 > 教育培训 >

sql语句引号处理(sql语句连接后怎么判断引号)

来源:原点资讯(www.yd166.com)时间:2023-06-04 19:08:27作者:YD166手机阅读>>

1. 首先了解sql注入的原理:

SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击.(来源于百度)

也就是说网站页面包含与数据库交互的部分(例如新闻网站的查找功能),而当在网站输入数据信息,数据信息被程序化后传入数据库执行的过程中,网站的开发人员没有对这些传入数据库的相应数据做安全处理(比如过滤特殊字符、编码等),导致黑客可以将恶意代码(也就是包含非法SQL语句的SQL命令)通过网站前段传入数据库,并在数据库中执行这些具有黑客目的的SQL语句,从而造成数据库信息泄露、损坏等后果。

2. SQL注入的一般分类

按照注入点类型来分类

(1)数字型注入点

许多网页链接有类似的结构 http://www.example.com/12.php?id=1 基于此种形式的注入,一般被叫做数字型注入点,缘由是其注入点 id 类型为数字,在大多数的网页中,诸如 查看用户个人信息,查看文章等,大都会使用这种形式的结构传递id等信息,交给后端,查询出数据库中对应的信息,返回给前台。这一类的 SQL 语句原型大概为 select * from 表名 where id=1 若存在注入,我们可以构造出类似与如下的sql注入语句进行爆破:select * from 表名 where id=1 and 1=1

(2)字符型注入点

网页链接有类似的结构 http://xwww.example.com/users.php?user=admin 这种形式,其注入点 user 类型为字符类型,所以叫字符型注入点。这一类的 SQL 语句原型大概为 select * from 表名 where user='admin' 值得注意的是这里相比于数字型注入类型的sql语句原型多了引号,可以是单引号或者是双引号。若存在注入,我们可以构造出类似与如下的sql注入语句进行爆破:select * from 表名 where user='admin' and 1=1 ' 我们需要将这些烦人的引号给处理掉。

(3)搜索型注入点

这是一类特殊的注入类型。这类注入主要是指在进行数据搜索时没过滤搜索参数,一般在链接地址中有 "keyword=关键字" 有的不显示在的链接地址里面,而是直接通过搜索框表单提交。此类注入点提交的 SQL 语句,其原形大致为:select * from 表名 where 字段 like '%关键字%' 若存在注入,我们可以构造出类似与如下的sql注入语句进行爆破:select * from 表名 where 字段 like '%测试%' and '%1%'='%1%'

3. 如可判断是否存在SQL注入(小白总结,仅供参考)

简单点讲就是:

所有的输入只要和数据库进行交互的,都有可能触发SQL注入

SQL注入按照数据提交的方式可分为:

(1)GET 注入:提交数据的方式是 GET , 注入点的位置在 GET 参数部分。比如有这样的一个链接http://xxx.com/news.php?id=1 , id 是注入点。

(2)POST 注入:使用 POST 方式提交数据,注入点位置在 POST 数据部分,常发生在表单中。

(3)Cookie 注入:HTTP 请求的时候会带上客户端的 Cookie, 注入点存在 Cookie 当中的某个字段中。

(4)HTTP 头部注入:注入点在 HTTP 请求头部的某个字段中。比如存在 User-Agent 字段中。严格讲的话,Cookie 其实应该也是算头部注入的一种形式。因为在 HTTP 请求的时候,Cookie 是头部的一个字段。

根据提交方式分类后,你会发现SQL注入最长发生的位置在链接地址、数据参数、cookie信息以及HTTP请求头等位置。

了解了可能存在SQL注入的位置,然后我们需要判断在这些位置上是否能够触发SQL注入,最简单的方式就是在相应位置输入and 1=1 (以及and 1=1 的变换形式)来判断。对于不同的注入点类型,比如字符型需要适当添加单引号,而对于数字型的注入点则不需要。

4. SQL注入的高级分类(按照执行效果分类)

(1)基于布尔的盲注:即可以根据返回页面判断条件真假的注入。

(2)基于时间的盲注:即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。

(3)基于报错注入:即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。

(4)联合查询注入:可以使用union的情况下的注入。

(5)堆查询注入:可以同时执行多条语句的注入。

(6)宽字节注入:利用gbk是多字节的编码,两个字节代表一个汉字

栏目热文

sql语句参数含有引号(sql语句条件查询)

sql语句参数含有引号(sql语句条件查询)

一、修改查询出来的字段属性①、cast 和convert都是用来将一种数据类型的表达式转换为另一种数据类型的表达式cas...

2023-06-04 19:38:48查看全文 >>

sql语句中连接单引号怎么写

sql语句中连接单引号怎么写

书写风格1. 语句关键字应全部使用小写。2. 引用字符时应使用单引号。如:update testable set idc...

2023-06-04 19:03:53查看全文 >>

sql语句中的反引号(sql语句大全及用法)

sql语句中的反引号(sql语句大全及用法)

目前找到的资料来看可以把这些绕过WAF的技术分为9类包含从初级到高级技巧a) 大小写混合 b)替换关键字 c)使用编...

2023-06-04 19:15:03查看全文 >>

sql语句什么时候加双引号(sql语句加双引号怎么设置)

sql语句什么时候加双引号(sql语句加双引号怎么设置)

标准结构化查询语言(Structured Query Language)简称SQL,sql是我们日常工作中使用最多一项技...

2023-06-04 19:05:10查看全文 >>

sql语句中库要加引号吗

sql语句中库要加引号吗

第一章 SQL的介绍1.1、什么是sqlSQL:Structure Query Language。(结构化查询语言),通...

2023-06-04 19:09:32查看全文 >>

sql插入语句带单引号(sql语句中含有单引号)

sql插入语句带单引号(sql语句中含有单引号)

今天给大家介绍了关于mysql语句插入含单引号或反斜杠值的相关内容,下面话不多说了,来一起看看详细的介绍吧比如说有个表,...

2023-06-04 19:39:43查看全文 >>

985和211全部是一本吗(985和211有哪些大学)

985和211全部是一本吗(985和211有哪些大学)

一、211和985是什么意思1、211工程:又称“211工程”大学、“211”高校,“21代表21世纪,后面的1代表10...

2023-06-04 19:39:53查看全文 >>

一本和985211的区别(一本二本三本是什么意思)

一本和985211的区别(一本二本三本是什么意思)

国内高校有一本,二本,专科和高职院校之分,而其中一本又分为普通一本和211,985重点大学。考上一本已经很不错了,但每年...

2023-06-04 18:51:49查看全文 >>

985211算是一本吗(北影算是985211吗)

985211算是一本吗(北影算是985211吗)

98.5%的学生都进不去的大学叫985211个学生只有11个能进的大学叫211一般学生上不了的大学叫一本只要你不二就能上...

2023-06-04 19:05:16查看全文 >>

985211与普通一本区别(985211和普通一本有何区别)

985211与普通一本区别(985211和普通一本有何区别)

考大学,周边的人和父母都会希望能考上211/985的学校,为什么?因为211和985的学校到底是有什么魔力,引的人们争相...

2023-06-04 19:19:06查看全文 >>

文档排行