[深入学习Web安全] 深入利用XSS漏洞
<p><strong>前言</strong></p><p>从这节课开始,小宅再次更改排版,希望能给大家更好的阅读体验。我们上节课就讲了XSS的基本原理其实就是HTML代码注入。这节课,我们将深入一点,学习一下How To Exploit XSS。</p>
<p><strong>浅析XSS利用技术</strong></p>
<p><strong>XSS能干什么?</strong></p>
<p>在我们学习XSS的利用技术之前,我们很有必要先知道XSS可以干什么?或者说有什么样的危害:</p>
<p>· 篡改页面,修改页面内容</p>
<p>· 网络钓鱼</p>
<p>· 盗取用户Cookie</p>
<p>· 劫持用户(浏览器)会话</p>
<p>· 挂广告,刷流量</p>
<p>· DDoS</p>
<p>· 网页挂马</p>
<p>· 获取客户端信息(例如UA,IP,开放端口)</p>
<p>· 传播XSS Worm</p>
<p> ……</p>
<p>这些都是XSS能够做到的(当然,有些也受制与XSS存在的环境)。</p>
<p><strong>Cookie是什么?</strong></p>
<p>我们在进一步学习XSS之前,我们先来了解下浏览器Cookie是什么。我们要说Cookie就得先谈到HTTP协议,我们先来想想C/S架构的程序,通常都是Client端链接Server端,通讯完成后就断开连接。</p>
<p>但是HTTP协议不同,他的客户端是浏览器,每次发送HTTP请求和接收HTTP响应就是一次通讯,每次都是一个请求和一个响应,也就是发送请求到结束请求就是通讯过程,完了就断开了。</p>
<p>那么,我们知道,有很多Web程序都是有登录功能的,也就是有用户身份识别功能。但是,每次一请求一响应,就结束了,网站怎么管理用户会话呢?网站如何认证用户呢?</p>
<p>正是利用这个Cookie来验证的,每次浏览器发起HTTP请求就会带上Cookie头,而Cookie则是有每次响应的set-cookie来设置的。</p>
<p>我们总结一下上面讲的,简练的说就是:HTTP连接是无状态连接,所以得使用Cookie来验证用户身份。</p>
<p>我们在Chrome浏览器上可以使用如下方法查看我们在网站上的Cookie:</p>
<p>1.访问“chrome://settings/”:</p>
<p align="center"><img alt="" src="https://img.jbzj.com/file_images/article/201609/201609121142234536.jpg" /></p>
<p>2.最底下有个"显示高级设置...",点一下:</p>
<p align="center"><img alt="" src="https://img.jbzj.com/file_images/article/201609/201609121142234691.jpg" /></p>
<p> 3.有个“隐私设置”:</p>
<p align="center"><img alt="" src="https://img.jbzj.com/file_images/article/201609/201609121142234830.jpg" /></p>
<p>4.标题下面有个“内容设置”按钮,我们点一下:</p>
<p align="center"><img alt="" src="https://img.jbzj.com/file_images/article/201609/201609121142234982.jpg" /></p>
<p> </p>
<p>5.我们点击“所有Cookie和网站数据...”按钮,我们就能看到,我们在所有网站上的Cookie了:</p>
<p align="center"><img alt="" src="https://img.jbzj.com/file_images/article/201609/201609121142235166.jpg" /></p>
<p> </p>
<p>Cookie呢,是以Key=Value的形式存在的,就和下图一样:</p>
<p align="center"><img alt="" src="https://img.jbzj.com/file_images/article/201609/201609121142235330.jpg" /></p>
<p> </p>
<p>我们每次访问某个域的时候,浏览器就会吧我们在这个域的Cookie写在访问这个域的HTTP请求的Cookie头里。而某个域想要给我们设置Cookie的时候就需要在HTTP响应里的set-cookie头里写。</p>
<p><strong>PHP如何设置Cookie</strong></p>
<p>我们先启动apache2服务,然后到Web根目录,创建一个cookietest.php文件,代码如下:</p>
<p align="center"><img alt="" src="https://img.jbzj.com/file_images/article/201609/201609121142235632.jpg" /></p>
<p> </p>
<p>然后用浏览器访问这个页面:</p>
<p align="center"><img alt="" src="https://img.jbzj.com/file_images/article/201609/201609121142235778.jpg" /></p>
<p> </p>
<p>然后在页面中右键-审查元素:</p>
<p align="center"><img alt="" src="https://img.jbzj.com/file_images/article/201609/201609121142235925.jpg" /></p>
<p> </p>
<p>在横栏上找到Network,然后刷新页面,发现Network下面出现了一个HTTP请求:</p>
<p align="center"><img alt="" src="https://img.jbzj.com/file_images/article/201609/201609121142236102.jpg" /></p>
<p> </p>
<p>点击一下那个请求:</p>
<p align="center"><img alt="" src="https://img.jbzj.com/file_images/article/201609/201609121142236244.jpg" /></p>
<p> </p>
<p>可以看到横栏里有个Cookies,点一下:</p>
<p align="center"><img alt="" src="https://img.jbzj.com/file_images/article/201609/201609121142236398.jpg" /></p>
<p> </p>
<p>我们就能看到HTTP请求时带的Cookie和HTTP响应了设置的Cookie了。
<div class="cupage">上一页<strong>1</strong>2 下一页 阅读全文</div>
頁:
[1]