最新宽字节注入攻击和代码分析技术

从返回结果可知,数据库第一个表名是users,查询users表字段可使用特定语句。宽字节注入代码分析 在宽字节注入页面中,程序首先获取GET参数ID,对该参数使用addslashes()进行转义,然后将转义后的ID拼接到SQL语句中进行查询。当访问id=1'时,执行的SQL语句为SELECT * FROM users WHERE id='1\'。单引号...
最新宽字节注入攻击和代码分析技术
宽字节注入攻击

这类攻击的测试地址位于书中第二章。当访问id=1',页面返回了带有转义符(反斜杠)的结果,说明程序并未报错,却意外地加入了转义字符。查看返回信息,参数id=1在数据库查询时被单引号包围。若输入id=1',单引号会被转义,导致参数ID未能逃出单引号的束缚,通常情况下不存在SQL注入漏洞。但当数据库编码为GBK时,可以利用宽字节注入。具体操作是在地址后加%df,再插入单引号,因为反斜杠的编码为%5c,在GBK编码中,%df%5c为繁体字“连”,此时单引号成功“逃逸”,引发MySQL数据库错误。

通过输入id=1%df'%23,页面返回结果表明SQL语句符合语法规范。进一步判断注入情况,使用and 1=1和and 1=2。访问id=1%df' and 1=1%23和id=1%df' and 1=2%23后,分别得到图4-54和图4-55所示结果。当and 1=1时,程序正常返回;and 1=2时,程序报错,判断参数ID存在SQL注入漏洞。接着使用order by查询数据库表字段数量,得知字段数为5。页面直接显示数据库内容,因此可使用Union查询,调整查询ID值为负数。尝试查询当前数据库的库名(user())时,语句为id=-1%df' union select 1,user(),3,4,5%23,结果如图4-58所示。查询数据库表名通常采用特定语句,但因单引号被转义,自动多出反斜杠导致错误,故利用嵌套查询方法,更改后的查询语句为select table_name from information_schema.tables where table_schema=(select database()) limit 0,1,如图4-59所示。从返回结果可知,数据库第一个表名是users,查询users表字段可使用特定语句。

宽字节注入代码分析

在宽字节注入页面中,程序首先获取GET参数ID,对该参数使用addslashes()进行转义,然后将转义后的ID拼接到SQL语句中进行查询。当访问id=1'时,执行的SQL语句为SELECT * FROM users WHERE id='1\'。单引号被转义符“\”转义,通常情况下无法注入。由于数据库查询前执行了SET NAMES 'GBK',将数据库编码设为宽字节GBK,故此处存在宽字节注入漏洞。PHP中通过iconv()进行编码转换时也可能存在宽字符注入漏洞。

Ms08067安全实验室致力于网络安全知识的普及和培训,是专业“图书出版+培训”的网络安全在线教育平台,专注于网络安全领域中高端人才培养。平台开设Web安全零基础就业、Web高级安全攻防进阶、红队实战攻防特训等课程,出版安全图书,提供系统培训。2024-11-19
mengvlog 阅读 14 次 更新于 2025-07-21 08:46:30 我来答关注问题0
  • 从返回结果可知,数据库第一个表名是users,查询users表字段可使用特定语句。宽字节注入代码分析 在宽字节注入页面中,程序首先获取GET参数ID,对该参数使用addslashes()进行转义,然后将转义后的ID拼接到SQL语句中进行查询。当访问id=1'时,执行的SQL语句为SELECT * FROM users WHERE id='1\'。单引号...

  •  翡希信息咨询 Sql 注入:宽字节注入+二次注入

    Sql注入中的宽字节注入与二次注入解释如下:宽字节注入: 原理:当PHP连接MySQL时,如果设置了character_set_client=gbk等宽字节字符集,可能会导致特定的编码问题。例如,%df%27可以将程序中过滤的反斜杠覆盖掉,从而形成注入漏洞。 示例:在存在宽字节注入的情况下,如果提交id=1%df’and 1=1%23,%df...

  •  文暄生活科普 Sql 注入:宽字节注入+二次注入

    防御宽字节注入的方法包括在执行查询之前设置character_set_client为binary,使用mysql_set_charset设置编码,然后使用mysql_real_escape_string过滤参数,或者使用PDO方式并禁用preparcd statements的仿真效果。二次urldecode注入是当Web应用程序进行参数过滤以防止注入时,如果使用了urldecode或rawurldecode函数,则可...

  •  翡希信息咨询 渗透专题丨web Top10 漏洞简述(1)

    手工注入思路:判断是否存在注入,以及注入是字符型还是数字型。猜解SQL查询语句中的字段数。确定显示的字段顺序。获取当前数据库。获取数据库中的表。获取表中的字段名。查询到账户的数据。花式注入手段:延迟注入。堆叠注入。二次注入攻击。宽字节注入。base64编码注入。绕过技术:空格字符绕过。大小写绕过。

  •  老男孩教育 网络安全工程师需要学什么?

    1、了解各种SQL注入类型:报错注入、布尔盲注、时间盲注、DNSLog盲注、二次注入、宽字节注入、还有伪静态SQL注入 2、SQL XSS、XXE、SSRF命令执行等无回显,如何测试证明漏洞存在?3、PHP代码审计常见危险函数测试思路防御方法你了解多少?成为一个Web安全工程师需要扎实的基础,需要系统化的学习,更需要攻防...

檬味博客在线解答立即免费咨询

报错相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部