常见的SQL注入类型

这篇具有很好参考价值的文章主要介绍了常见的SQL注入类型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一、SQL注入原理


SQL注入简单原理
*

二、常见的SQL注入类型

注:?为php语言中的输入符

(1)、按注入点区分:
1、数字型注入
数字型注入主要存在于网站的url中有?id=处,如:http://xxx.com/index.php?id=1 通过改变id=的数值来判断是否有注入点,一般常见测试手段是令id等于一个不常见的大数,通过页面是否变化来判断是否存在注入点。

2、字符型注入
字符型注入常见于用户登录页面或页面url中有?username=aaa 或者?password=aaa 如:http://xxx.com/index.php?username=aaa&password=bbb,对于字符型注入,常见的手段为通过闭合符和注释符的配合,绕过用户名和密码,直接获取数据库里的账号信息。前文http://xxx.com/index.php?username=aaa&password=bbb的sql语句为select * from 表 where username=‘aaa‘ and password=‘bbb‘,而进行字符型注入时,可将url修改成,http://xxx.com/index.php?username=aaa ’ and 1=1’** **–+****&password=bbb,此时通过 ’ 的闭合和–+的注释,生产的sql语句为 select * from 表 where username=‘aaa’ and 1=1 ’ 由于1=1为永真,数据库就可能返回相关信息。

3、搜索型注入
搜索型相比于数字型和字符型而言,较为特殊点,主要是进行搜索时网站没过滤搜索关键字,常见于url中的 “keyword=” 。生成的 SQL 语句:select * from 表 where 字段 like ‘%关键字%’ ,注入时,可以构造sql注入语句:select * from 表名 where 字段 like ‘%关键字%’ and ‘%1%’=‘%1%’,进行注入。

(2)、按提交方式区分
访问网站时,浏览器只是一个传输和接收数据的工具,那么就需要将用户的操作生成数据包提交到服务器中。
1、GET 注入
按提交方式区分的话,GET注入是最简单的注入,不需要额外的工具。GET提交数据的方式的特点是将用户操作生成的语句直接显示在url上,常见于不需要保密传输的页面。GET 注入点的位置一般在参数部分。如URL为:http://xxx.com/index.php?id=1 , id =输入的内容可能是注入点。

2、POST 注入
使用POST提交的页面通常需要一定的保密性,常见于用户登录页面,用户操作生成的语句不会直接显示在url中,而是会存在于表单中,需要通过抓包才能获取,常用抓包神器BurpSuite,或者可以使用火狐浏览器通过安装hackbar等拓展抓包。抓取数据包后,可以通过修改提交的内容,结合网站页面反馈,判断能否注入。

3、Cookie 注入
Cookie,存在用户本地客户端的数据集合,HTTP 请求表单中会带上客户端的 Cookie, 注入点存在 于Cookie 当中的某个字段中。和POST一样,Cookie也要通过抓包来查看。

(3)、按页面执行反馈区分
此种注入主要是因为页面不直接反馈注入操作的内容,而常要配合各种sql函数进行,如sleep(),if(),ascll(), length()等,通过页面的反馈情况判断注入操作效果。
1、布尔注入
很多时候,sql服务器并不会直接反馈查询内容,而是通过反馈一个布尔参数给网站服务器,然后再由网站服务器将内容反馈到浏览器,也就是用户眼前,而布尔类型只有两个参数,ture和false,此时可通过配合猜解函数如sleep(),if(),ascll(), length()等,来判断注入操作的效果。
2、时间注入
和布尔注入一样,由于不直接反馈出入操作的内容,从而通过执行时间来间接猜解注入效果。常用sleep()、if()、ascll()的等函数猜解,如:if(length(database()) =8,sleep(5),sleep(0))意为:如果数据库的长度等于8,那么页面休眠5秒,否则不休眠。页面休眠一般指页面处于正在刷新状态。
3、基于报错注入
页面反馈操作的错误信息,有的会直接把错误的sql语句反馈在页面中。
常见报错注入点在:单/双引号、数字型注入


三、总结


通过上述,可以一个sql注入既可以是数字型注入,同时也可以是get注入和报错注入,这也正如实际上的sql注入并不是一成不变的,毕竟sql注入存在的原因就是网站开发者在开发时的 疏忽,而人与人之间的疏忽不可能是相同的,而是千奇百怪,千差万别的。文章来源地址https://www.toymoban.com/news/detail-424032.html

到了这里,关于常见的SQL注入类型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • PHP常见的SQL防注入方法

    产生原因主要就是一些数据没有经过严格的验证,然后直接拼接 SQL 去查询。导致产生漏洞,比如: 因为没有对 $_GET[‘id’] 做数据类型验证,注入者可提交任何类型的数据,比如 \\\" and 1= 1 or \\\" 等不安全的数据。如果按照下面方式写,就安全一些。 把 id 转换成 int 类型,就可

    2024年02月07日
    浏览(41)
  • SQL注入原理-POST注入

            小伙伴们大家好!本期为大家带来的是SQL注入原理之POST注入。 目录 GET传参与POST传参 什么是POST注入? 实战演示 一、判断是否存在注入点 二、万能密码 三、判断查询字段个数 四、找出可以回显的字段 五、爆出数据库的数据 1、爆出数据库版本和当前数据库的用户

    2023年04月08日
    浏览(37)
  • 漏洞原理 SQL 注入

    OWASP漏洞原理启航(第一课)-CSDN博客 OWASP漏洞原理<最基础的数据库 第二课>-CSDN博客 小皮面板(phpstudy

    2024年02月20日
    浏览(41)
  • SQL注入原理

    结构化查询语言(Structured Query Language,SQL),是一种特殊的编程语言,用于数据库的标准数据查询。1986 年10 月美国国家标准协会对SQL 进行了规范后,以此作为关系型数据库系统的标准语言。1987 年得到了国际标准组织的支持,成为了国际标准。 不过各种通行的数据库系统在其

    2024年02月11日
    浏览(40)
  • Sql注入详解(原理篇)

    SQL 注入漏洞非常复杂,区分各种 数据库类型,提交方法,数据类型 等注入,同样此类漏洞是WEB安全中严重的安全漏洞,学习如何利用,挖掘,修复也是很重要的 1、什么是SQL注入 SQL 注入就是指 Web 应用程序对用户输入的数据合法性没有过滤或者是判断,攻击者可以在Web应用

    2024年02月09日
    浏览(24)
  • SQL注入攻击原理 实战

    我来进行实战了,总在看教程。 提示:这里可以添加本文要记录的大概内容: 前言,前言,前言(挠头)啊,我终于打实战了 提示:以下是本篇文章正文内容,下面案例可供参考 看这样子,应该是不存在的 如果没有就继续吧, 哎,你看它变了, 又回来了,没有那就试试这个

    2024年02月12日
    浏览(47)
  • SQL注入原理以及Spring Boot如何防止SQL注入(含详细示例代码)

    点击下载《SQL注入原理以及Spring Boot如何防止SQL注入(含详细示例代码)》 SQL注入是一种针对数据库的攻击技术,攻击者通过在应用程序的输入字段中插入或“注入”恶意的SQL代码,从而在数据库服务器上执行非授权的SQL查询。这种攻击可能导致数据泄露、数据篡改、甚至执

    2024年02月20日
    浏览(40)
  • SQL注入原理及利用方式

    在Web表单递交或输入域名或页面请求的查询字符串,通过后端语言连接数据库并查询数据,攻击者可利用此漏洞拼接恶意语句获取大量数据。 在表单页面或者存在参数传递的地方可能存在SQL注入漏洞。 SQL注入漏洞类型 SQL注入类型可分为两大类:数字型注入(不需要添加特殊

    2024年02月06日
    浏览(30)
  • SQL注入原理-布尔盲注

            小伙伴们大家好,今天为大家带来的使SQL注入原理之布尔盲注。 目录 布尔盲注使用的环境 常用函数与语句 substr()函数 ord()函数  length()函数  实战演示  1、判断是否存在注入点 2、尝试用报错盲注看是否能够成功爆出数据 3、使用布尔盲注来爆出数据信息 1.爆出数据

    2023年04月08日
    浏览(48)
  • SQL注入原理-时间盲注

            小伙伴们大家好!本期为大家带来的是SQL注入原理之时间盲注。 目录 使用环境 常见函数与语句 sleep()函数 if语句 substr()函数 ord()函数  length()函数  实战演示 1、判断是否存在注入点 2、使用时间盲注爆出数据 1、爆出当前数据库名的长度 2、爆出数据库名长度 3、爆

    2023年04月10日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包