mysql注入新姿势(数字与字符编码注入) hex,conv
0x01 前言
今天看到师傅们发的一篇文章,感觉mysql注入还能这么用,于是自己搭建了一个简单的环境,进行复现.
0x02原理
首先介绍两个mysql函数 hex和conv
conv(N,from_base,to_base) conv函数接收一个数字,进行进制转换

如上图就是将25从16进制转化成10进制,我们复原的结果同样也证实了这样的猜想
hex(str) 将str转化成16进制
unhex 复原


所以我们可以通过语句将字符串转换成数字 先将test转换成16进制,再转换成10进制


由于Mysql的特性 导致输入的字符串的最大长度为8个字节,超过会导致不能成功解码

这时候我们可以用substr来截取

0x03 复现
demo1
<?php
$id= $_GET['x'];
$conn = mysql_connect('127.0.0.1','root','root');
mysql_select_db('flag',$conn);
$sql = "select name from flag where id=$id";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)){
echo $row['name'];
}
mysql_close($conn);
echo "<hr>";
echo $sql
?>
表

一个简单的sql注入


自己在本地编写好payload代码



成功利用
demo2 update注入中关闭显错
首先介绍一篇文章 利用insert,update和delete注入获取数据
<meta charset="utf-8"/>
<?php
$conn = mysql_connect("localhost","root","root")or die("error".mysql_error());
$db = mysql_select_db("test");
mysql_query("set name utf8");
$id = @$_GET['id'];
$username = @$_GET['username'];
$sql1 = "update users set username='$username' where id ='$id'";
$sql2 = "select * from users where id = '$id'";
mysql_query($sql1);
if($result = mysql_query($sql2)){
$row = mysql_fetch_array($result);
echo "ID".$id."的用户变为".$row['username'];
mysql_close();
}
else{
var_dump(mysql_error());
}
?>

在mysql开启报错的时候,可以使用几种报错函数得到结果 payload之一
:?id=1&username=wakakaka' or extractvalue(1,concat(0x7e,database())) or'
就可以得到数据。
如果开启了报错可以用conv hex来得到数据


Mysql注入博大精深,以后还有很多姿势需要学习
参考 mysql绕过新思路
感谢作者提供的思路
转载需注明原文地址 http://www.cnblogs.com/Mrsm1th/p/6842300.html
mysql注入新姿势(数字与字符编码注入) hex,conv的更多相关文章
- mysql的严格模式与无效字符编码问题
问题一般格式为: 1366 Incorrect string value: '' for column 1300 Invalid utf8 character string: '' 向mysql插入中 ...
- DLL注入新姿势:反射式DLL注入研究
在分析koadic渗透利器时,发现它有一个注入模块,其DLL注入实现方式和一般的注入方式不一样.搜索了一下发现是由HarmanySecurity的Stephen Fewer提出的ReflectiveD ...
- 【Mysql sql inject】POST方法BASE64编码注入write-up
翻到群里的小伙伴发出一道POST型SQL注入题,简单抓包判断出题目需要base64编码后才执行sql语句,为学习下SQL注入出题与闯关的思路+工作不是很忙,所以花点时间玩了一下,哈哈哈哈哈哈哈哈哈 ...
- mysql5.6修改字符编码,ERR:Illegal mix of collations for operation 'concat'
mysql5.6修改字符编码,ERR:Illegal mix of collations for operation 'concat' 1.问题起因:搭建环境初始化mysql的时候看到mysql配置文 ...
- JAVA之旅(三十)——打印流PrintWriter,合并流,切割文件并且合并,对象的序列化Serializable,管道流,RandomAccessFile,IO其他类,字符编码
JAVA之旅(三十)--打印流PrintWriter,合并流,切割文件并且合并,对象的序列化Serializable,管道流,RandomAccessFile,IO其他类,字符编码 三十篇了,又是一个 ...
- Python中的数据类型、变量、字符编码、输入输出、注释
数据类型 number(数字) 用于存储类型,通常分为int.long.float.complex: int:32位机器上占32位,取值范围为-231 ~ 231 - 1:64位机器上占64位,取值范 ...
- python字符编码与文件操作
目录 字符编码 字符编码是什么 字符编码的发展史 字符编码实际应用 编码与解码 乱码问题 python解释器层面 文件操作 文件操作简介 文件的内置方法 文件的读写模式 文件的操作模式 作业 答案 第 ...
- 浅析白盒审计中的字符编码及SQL注入
尽管现在呼吁所有的程序都使用unicode编码,所有的网站都使用utf-8编码,来一个统一的国际规范.但仍然有很多,包括国内及国外(特别是非英语国家)的一些cms,仍然使用着自己国家的一套编码,比如g ...
- Sql注入的分类:数字型+字符型
Sql注入: 就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.通过构造恶意的输入,使数据库执行恶意命令,造成数据泄露或者修改内容等,以 ...
随机推荐
- css 重点知识 和 bug 解决方法
1.图片向下撑大3像素问题 在一个盒子里面放一张图片,默认情况下,图片会向下撑大3像素,有以下几种解决方法: 1.1 给图片添加display:block: 1.2 给图片添加 float:left: ...
- 使用mysql-proxy实现mysql的读写分离
前言: MySQL读写分离是指让master处理写操作,让slave处理读操作,非常适用于读操作量比较大的场景,可减轻master的压力.使用mysql-proxy实现mysql的读写分离,mysq ...
- Python活力练习Day1
Day1:输入年月日,判断这一天是这一年的第几天 eg: input : 2019-02-01 output : 32 data = list(input('please input ...
- asp.net core的AOP记录
序曲:学习编程最好的方式就是敲代码,没有比这个更好的方法,哪怕你看了上百G的视频,都不如你自己敲几行代码更为有效.还有要记得敲完代码然后写一篇随笔来记录一下你所学所想. 什么叫AOP? AOP面向切面 ...
- AlertDialog创建对话框的测试
AlertDialog的功能是非常强大的,它可以创建各种对话框,它的结构分为:图标区.标题区.内容区.按钮区共四个区域.以这样的思路区创建AlertDialog是非常简单的. 创建AlertDialo ...
- CMake指南
版权申明: 本文原创首发于以下网站,您可以自由转载,但必须加入完整的版权声明 博客园:https://www.cnblogs.com/MogooStudio/ csdn博客:https://blog. ...
- LeetCode刷题191218
好多天没有更新了,今天有空,刷一道. 算法第5题 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad"输出: ...
- idea中git分支、合并与使用
1.分支的新建与合并使用场景介绍 让我们来看一个简单的分支新建与分支合并的例子,实际工作中你可能会用到类似的工作流. 你将经历如下步骤: 开发某个网站. 为实现某个新的需求.问题(#53问题),创建一 ...
- Appium 1.15.1版本的appium-doctor不是内部或者外部命令的问题
先讲一下整个app自动化环境的部署过程: 1.安装appium 2.安装nodejs 3.查看appium的环境是否完成 问题:安装appium和nodejs都没啥问题,直接到对应的官网下载然后安装即 ...
- MASMPlus连接出错:error LNK2001: unresolved external symbol _WinMainCRTStartup
坑:汇编语言第三版使用的是masm5.0,网上找到了一个masm32,一看名字,不就是masm的32位版本吗.然也..这是另外一个软件 MASM32并非是指Microsoft的MASM宏汇编器.MAS ...