网站地图    收藏   

主页 > 入门引导 > 黑客攻防 >

PageAdmin多处设计缺陷可getshell - 网站安全 - 自学php网

来源:未知    时间:2015-04-15 13:42 作者:xxadmin 阅读:

[导读] text3 = now.AddSeconds((double)random.Next(3600, 86164)).ToString(yyyyMMddHHmmss);master_login.imMAPgbr7QUplCu6n3e(httpCookie).Add(Valicate, master_login.sxW4jRbFsutFEAxed8S(md, text3)); 管理员登陆成功,SetCookie 登陆时间+(360...

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多次

valicate.jpg

 

valicate2.JPG

 

解决方案:

Get_Md5中的pageadmin cms用户可设置

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论