[AppScan]修复漏洞一:启用不安全的HTTP方法 (中)
漏洞背景:
“启用了不安全的 HTTP 方法”属于“中”危漏洞。漏洞描述是:根据APPSCAN的报告,APPSCAN通过OPTIONS请求,当响应中发现DELETE、SEARCH、COPY等方法为允许方法时,则认为是漏洞。
修改建议:可采用3种方法:
1.禁用WebDAV功能,能根本解决。不引入新的不稳定因素
2.使用URLSCAN禁用OPTIONS,实际没有真正禁用,但缩小了影响范围。URLSCAN可能有副作用。
3.使用URLSCAN禁用OPTIONS和其他HTTP方法,或者只允许GET/POST/HEAD方法(自动禁用其他方法)
[AppScan]修复漏洞二:自动填写未对密码字段禁用的 HTML 属性 (低)
推理: AppScan 发现密码字段没有强制禁用自动填写功能。
修改建议:将“autocomplete”属性正确设置为“off”
[AppScan]修复漏洞三:HTML注释敏感信息泄露(参考信息)
建议:可以点击具体问题然后查看请求/响应点击下一行突出显示看具体问题,然后在网站相应页面前台中查看是否已去掉此注释。
[AppScan]修复漏洞四:会话标识未更新(中危)
漏洞背景:
“会话标识未更新”是中危漏洞,AppScan会扫描“登录行为”前后的Cookie,其中会对其中的JSESSIONOID(JSP)或者 ASP.NET_SessionId(ASP)进行记录。在登录行为发生后,如果cookie中这个值没有发生变化,则判定为“会话标识未更新”漏洞。
修改建议:
JSP的修复方法可参考这位大侠的文章, http://www.2cto.com/Article/201302/190227.html
在登录页面上加上一段代码:
request.getSession().invalidate();//清空session
Cookie cookie = request.getCookies()[0];//获取cookie
cookie.setMaxAge(0);//让cookie过期
然后用户再输入信息登录时,就会产生一个新的session了。
ASP的修复方法可以参考以下代码,在登录按钮点击后,确认登录前,加入3行代码对Cookie进行清空已达到重置SessionId的效果。
protected void btnLogin_Click(object sender, EventArgs e)
{
//重置SessionId
Session.Clear();
Session.Abandon();
Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", "")); //登录判断
if (check(txtName.Text,txtPassword.Text))
{
FormsAuthentication.SetAuthCookie("admin", false);
Response.Redirect("Default.aspx");
}
“会话标识未更新”的危害:
在于攻击者通过某种方式(如XSS)将自己的Id置入了被攻击者的浏览器,将会话标识改为某个攻击者预设的值,被攻击者正常登陆,若服务器接收了这个预设值,那么相当于攻击者获得了被攻击者登录后的权限,因此才要求在登录时更新会话标识