这个课这里有,还有同类更多课
加发暗号【拼课】低价学
号:
RECOMMEND
好课推荐
快速上手Linux 玩转典型应用
推荐课程可以扫码添加: 获取,海量课程,每周更新几十种,我们一起探讨,共同进步
含大数据、前沿技术、前端开发、后端开发、移动开发、数据分析、架构、人工智能、Python、Java、Android、前端、IOS、C++、大数据、、GO、音视频软件测试、产品经理、运维、股票基金、人工智能AI
以下内容为填充,无视即可
绕过HttpOnly 对我们而言,Web应用的认证是不假思索的事。可是我们也知道,HTTP是一个无状态协议,因此默认没有什么原生方法去处理状态或会话等信息。为了让HTTP像是有状态,并支持用户会话的概念,这才出现了cookie25。遗憾的是,通过cookie来区分认证和非认证Web应用用户并不十分可靠。(1) XSS攻击盗取cookie 你可能见过下面这个常用于窃取会话cookie的XSS向量:为了利用这个会话,攻击者可以用新获取的值再设置自己的cookie。这是一个使用JavaScript抢夺包含会话token的cookie小把戏。为了防止这种问题导致cookie失窃,Web应用开发者开始增加更多的安全检查,比如启用HttpOnly标签。这个标签可以阻止JavaScript读取cookie,从而阻止攻击者获取会话访问权限。假如觉得这样还不够安全,Web开发者还可以继续验证即Referer、User-Agent首部,甚至验证源IP。然而,只要Web应用存在XSS漏洞,那所有这些安全措施都可以被绕过。下面我们就看一看攻击者怎么绕过这些防御措施。(2) 使用代理绕过HttpOnly HttpOnly标签可以阻止运行在浏览器中的脚本语言访问相应的cookie。设置这个标签以后,cookie本身的功能不受影响。比如,每次向源发送的请求仍然会附上这个源最初设置的cookie。虽然不能直接访问cookie中的会话token,但可以创建在首部带上cookie一起发送的请求。换句话说,通过向浏览器发送指令,可以让它向源发送请求。结果,cookie就会被包含在请求里,之后你就可以发送经过认证的请求,从而获得对响应内容的访问权。在整个过程中,你都不需要访问cookie,因为可以通过浏览器代理。根本不需要读取包含会话cookie的会话令牌。下面我们使用一个不错的教学工具Damn Vulnerable Web App26,也叫DVWA,来作进一步说明。DVWA是一个教学用的可攻击Web应用,目的是让人们了解安全问题。DVWA在Set-Cookie首部中没有使用HttpOnly标签,不过为了演示,我们可以给它加上。为此,要修改dvwa/includes/ 372 第 9 章 攻击 Web 应用dvwaPage.inc.php,在第11行后面添加如下代码:$current_cookie = session_get_cookie_params(); $sessid = session_id(); setcookie( PHPSESSID,//name $sessid,//value 0,//expires $current_cookie[path],//path $current_cookie[domain],//domain false, //secure true //httponly ); 简单修改之后,每次创建PHPSESSID cookie,就都会带上HttpOnly标签了。于是我们就有一个安全了一点点的DVWA,下面看看怎么绕过这个防御措施。为了演示不需要读取cookie就能利用目标的会话,可以勾连DVWA源,并通过该浏览器代理请求。勾连浏览器后,可以使用BeEF的Tunneling Proxy通过勾连浏览器发送隧道请求。这样就有效地使其相信你的请求属于经过认证的会话。下面的URL会通过后认证的反射型XSS漏洞勾连DVWA源:?name=\ %3Cscript%20src=%22%\ 3C%2Fscript%3E# 如图9-21所示,可以看到Tunneling Proxy日志中的原始请求和响应,这里是使用Opera浏览被勾连的域。图9-21 代理认证的资