后台使用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")的值 |
-
上一篇: 搜狐视频一键劫持妹子通行证 - 网站安全 - 自学
下一篇: 某OA系统越权、多处SQL注入及任意用户登陆包括管
还没有人抢沙发呢~