### 简要描述:
rt
### 详细说明:
```
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运算。
```
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多次
[<img src="https://images.seebug.org/upload/201411/211105344f2d50cfdff9a61ccc1f4c5e69134396.jpg" alt="valicate.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201411/211105344f2d50cfdff9a61ccc1f4c5e69134396.jpg)
[<img src="https://images.seebug.org/upload/201411/21110545e2bc7ba16ee30934cb761ee2bac2a381.jpg" alt="valicate2.JPG" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201411/21110545e2bc7ba16ee30934cb761ee2bac2a381.jpg)
暂无评论