0x00漏洞简介
metinfo是一个cms 6.1.2版本中存在一个sql盲注漏洞
0x01漏洞细节与漏洞利用
在\app\system\message\web\message.class.php的add函数。
get_one这里有个columnid 这个地方是传入int类型的参数 没有经过单引号的包围 所以对于那些不需要使用单引号的注入语句就起不到过滤作用 比如 and 1=2。
这个add函数是通过domessage函数这里访问的。
想要访问domessage函数可以通过访问url
/admin/index.php?m=web&n=message&c=message&a=domessage&action=add
进行访问 此处的action等于add的时候就会进入add函数。
在add函数中可以看到语句是这样的。
此处想要查询出结果需要传入两个变量一个是lang 这个在默认情况下是cn 另一个是columnid 这个可以到数据表中去看,默认的有0。
然后知道了这些之后就可以构造url
http://localhost/admin/index.php?m=web&n=message&c=message&a=domessage&action=add&lang=cn&id=0
继续看代码
如果没查询到数据那么就返回$_M[word][Feedback5] 反馈已经被关闭。
如果查到了就会在下面执行到返回$_M['word']['membercode'] 验证码错误。
效果如图
查询到数据时
查不到数据时
0x01-1漏洞利用
这个漏洞是个盲注 可通过回显的内容进行判断是否查询出数据
利用payload如下
Id=-1 union select 1,2,3,4,5,6,7 from xxx where xxx