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绕过新思路

   在Update的注入中如果关闭了显错该怎么办

感谢作者提供的思路

转载需注明原文地址 http://www.cnblogs.com/Mrsm1th/p/6842300.html

mysql注入新姿势(数字与字符编码注入) hex,conv的更多相关文章

  1. mysql的严格模式与无效字符编码问题

    问题一般格式为: 1366 Incorrect string value: '' for column 1300 Invalid utf8 character string: '' 向mysql插入中 ...

  2. DLL注入新姿势:反射式DLL注入研究

    在分析koadic渗透利器时,发现它有一个注入模块,其DLL注入实现方式和一般的注入方式不一样.搜索了一下发现是由HarmanySecurity的Stephen Fewer提出的ReflectiveD ...

  3. 【Mysql sql inject】POST方法BASE64编码注入write-up

      翻到群里的小伙伴发出一道POST型SQL注入题,简单抓包判断出题目需要base64编码后才执行sql语句,为学习下SQL注入出题与闯关的思路+工作不是很忙,所以花点时间玩了一下,哈哈哈哈哈哈哈哈哈 ...

  4. mysql5.6修改字符编码,ERR:Illegal mix of collations for operation 'concat'

    mysql5.6修改字符编码,ERR:Illegal mix of collations for operation 'concat' 1.问题起因:搭建环境初始化mysql的时候看到mysql配置文 ...

  5. JAVA之旅(三十)——打印流PrintWriter,合并流,切割文件并且合并,对象的序列化Serializable,管道流,RandomAccessFile,IO其他类,字符编码

    JAVA之旅(三十)--打印流PrintWriter,合并流,切割文件并且合并,对象的序列化Serializable,管道流,RandomAccessFile,IO其他类,字符编码 三十篇了,又是一个 ...

  6. Python中的数据类型、变量、字符编码、输入输出、注释

    数据类型 number(数字) 用于存储类型,通常分为int.long.float.complex: int:32位机器上占32位,取值范围为-231 ~ 231 - 1:64位机器上占64位,取值范 ...

  7. python字符编码与文件操作

    目录 字符编码 字符编码是什么 字符编码的发展史 字符编码实际应用 编码与解码 乱码问题 python解释器层面 文件操作 文件操作简介 文件的内置方法 文件的读写模式 文件的操作模式 作业 答案 第 ...

  8. 浅析白盒审计中的字符编码及SQL注入

    尽管现在呼吁所有的程序都使用unicode编码,所有的网站都使用utf-8编码,来一个统一的国际规范.但仍然有很多,包括国内及国外(特别是非英语国家)的一些cms,仍然使用着自己国家的一套编码,比如g ...

  9. Sql注入的分类:数字型+字符型

    Sql注入: 就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.通过构造恶意的输入,使数据库执行恶意命令,造成数据泄露或者修改内容等,以 ...

随机推荐

  1. 闲鱼hu超赞,有赞必回,24小时在线!咸鱼互赞超赞留言评

    有没有在闲鱼上卖东西没有浏览量的人! 我们来一起互赞互相提高彼此宝贝的浏览量,从而更快的促进交易! 我打算建个群,我们可以一起交流下哈! 需要的进入QQ群   : 530980712

  2. Nginx核心流程及模块介绍

    Nginx核心流程及模块介绍 1. Nginx简介以及特点 Nginx简介: Nginx (engine x) 是一个高性能的web服务器和反向代理服务器,也是一个IMAP/POP3/SMTP服务器 ...

  3. java之动态代理设计模式

    代理:专门完成代理请求的操作类,是所有动态代理类的父类,通过此类为一个或多个接口动态地生成实现类. 弄清动态代理的关键是清楚java的反射机制,在https://www.cnblogs.com/xix ...

  4. Graylog 笔记

    安装 基本上有3种方式,1 yum安装2 rpm安装3 docker安装 yum安装 yum安装,参照官方文档是最好的:http://docs.graylog.org/en/3.0/pages/ins ...

  5. What happened when new an object in JVM ?

    原文链接:https://www.javaspring.net/java/what-happened-when-new-an-object-in-jvm I. Introduction As you ...

  6. Using the Security System 使用安全系统

    In this lesson, you will learn how to use a Security System in the application. When you use this sy ...

  7. leaflet实现风场图(附源码下载)

    前言 leaflet 入门开发系列环境知识点了解: leaflet api文档介绍,详细介绍 leaflet 每个类的函数以及属性等等 leaflet 在线例子 leaflet 插件,leaflet ...

  8. jsp + js + 前端弹出框

    在项目中,前端页面我们时常需要各种各样的弹出框: 1.alert对话框:显示含有给定消息的"JavaScript Alert"对话框 代码: var a = "Hello ...

  9. QT在linux下获取网络类型

    开发中遇到这样一个需求,需要判断当前网络的类型(wifi或者4G或者网线),在这里给大家一块分享下: 1.这里有一个linux指令:nmcli(大家自行百度即可) 2.nmcli device sta ...

  10. Spring Boot与ActiveMQ整合

    Spring Boot与ActiveMQ整合 1使用内嵌服务 (1)在pom.xml中引入ActiveMQ起步依赖 <dependency> <groupId>org.spri ...