PageAdmin多处设计缺陷可getshell

admin 2015年8月18日18:10:30评论1,419 views字数 234阅读0分46秒阅读模式
摘要

2014-11-21: 细节已通知厂商并且等待厂商处理中
2014-11-22: 厂商已经确认,细节仅向厂商公开
2014-11-25: 细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航、无声信息)
2015-01-16: 细节向核心白帽子及相关领域专家公开
2015-01-26: 细节向普通白帽子公开
2015-02-05: 细节向实习白帽子公开
2015-02-19: 细节向公众公开

漏洞概要 关注数(23) 关注此漏洞

缺陷编号: WooYun-2014-84081

漏洞标题: PageAdmin多处设计缺陷可getshell PageAdmin多处设计缺陷可getshell

相关厂商: pageadmin.net

漏洞作者: Vigoss_Z

提交时间: 2014-11-21 12:36

公开时间: 2015-02-19 12:38

漏洞类型: 设计缺陷/逻辑错误

危害等级: 高

自评Rank: 20

漏洞状态: 厂商已经确认

漏洞来源:www.wooyun.org ,如有疑问或需要帮助请联系

Tags标签: 设计缺陷/边界绕过 逻辑错误

2人收藏


漏洞详情

披露状态:

2014-11-21: 细节已通知厂商并且等待厂商处理中
2014-11-22: 厂商已经确认,细节仅向厂商公开
2014-11-25: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2015-01-16: 细节向核心白帽子及相关领域专家公开
2015-01-26: 细节向普通白帽子公开
2015-02-05: 细节向实习白帽子公开
2015-02-19: 细节向公众公开

简要描述:

rt

详细说明:

code 区域
text3 = now.AddSeconds((double)random.Next(3600, 86164)).ToString("yyyyMMddHHmmss");
master_login.imMAPgbr7QUplCu6n3e(httpCookie).Add("Valicate", master_login.sxW4jRbFsutFEAxed8S(md, text3));

管理员登陆成功,SetCookie

登陆时间+(3600,86164)之间随机的秒数,进行Get_Md5运算。

code 区域
public string Get_Md5(string s)
{
MD5 mD = new MD5CryptoServiceProvider();
Encoding encoding = Encoding.GetEncoding("UTF-8");
string s2 = "pageadmin cms";
byte[] array = mD.ComputeHash(encoding.GetBytes(s));
byte[] array2 = mD.ComputeHash(encoding.GetBytes(s2));
StringBuilder stringBuilder = new StringBuilder(32);
for (int i = 0; i < array.Length; i++)
{
stringBuilder.Append(((int)(array[i] + array2[i])).ToString("x").PadLeft(2, '0'));
}
return stringBuilder.ToString();
}

将字串s MD5之后和pageadmin cms MD5之后的字串每2位进行16进制加法,再拼接在一起。

pageadmin cms是硬编码在这的。

还是老问题,得到lastlogin_time,我们就可以生成valicate进行cookie伪造了。

可能的valicate有86164-3600=83164个,平均40000次可以得到valicate,在可以接受的范围内。

lastlogin_time:

前台会员中心处,e/member/index.aspx?type=mem_idx&s=1

Cookie添加Member=UID=2&valicate=1。

UID=2为管理员UID。只要Valicate不为空就会进入权限验证,验证失败,js跳转。。。得到lastlogin_time,生成Valicate,暴力验证登录后台。

后台直接执行SQL,操作aspx文件。。。

漏洞证明:

图片为本地搭建环境,人品一般,大概需要40000多次

PageAdmin多处设计缺陷可getshell

PageAdmin多处设计缺陷可getshell

修复方案:

Get_Md5中的pageadmin cms用户可设置

版权声明:转载请注明来源 Vigoss_Z@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2014-11-22 17:31

厂商回复:

感谢白帽子,已经修正了此问题。

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):

登陆后才能进行评分


评价

  1. 2014-11-21 18:44 | xsser PageAdmin多处设计缺陷可getshell ( 普通白帽子 | Rank:297 漏洞数:22 | 当我又回首一切,这个世界会好吗?)

    2

    说好的poc呢

  2. 2014-11-22 13:13 | Vigoss_Z ( 普通白帽子 | Rank:467 漏洞数:73 | 楞娃)

    2

    @xsser 原标题是(附python版poc),结果手抖没加上去,现在添加不了poc.是不是又该增加功能了

  3. 2014-11-26 17:44 | Damo ( 普通白帽子 | Rank:209 漏洞数:31 | 我只是喜欢看加菲猫而已ส็็็็็็็็...)

    2

    @Vigoss_Z 没事 你可以在评论中加上POC

  4. 2014-11-27 08:18 | wefgod ( 核心白帽子 | Rank:1829 漏洞数:183 | 力不从心)

    2

    我去,给力啊多处

  5. 2014-12-12 21:09 | wefgod ( 核心白帽子 | Rank:1829 漏洞数:183 | 力不从心)

    2

    原来这是说的多个问题合并可以拿shell?前面那部分他们没改吗,我之前的漏洞也提到了这个问题了。不过如果数据库是access的话,没办法直接操纵aspx文件吧?

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin