欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

[深入学习Web安全] 深入利用XSS漏洞

程序员文章站 2024-01-10 23:14:00
[深入学习Web安全] 深入利用XSS漏洞从这节课开始,小宅再次更改排版,希望能给大家更好的阅读体验。我们上节课就讲了XSS的基本原理其实就是HTML代码注入。这节课,我们将深入一点,学习一下How To Exploit XSS... 16-09-12...

前言

从这节课开始,小宅再次更改排版,希望能给大家更好的阅读体验。我们上节课就讲了xss的基本原理其实就是html代码注入。这节课,我们将深入一点,学习一下how to exploit xss。

浅析xss利用技术

xss能干什么?

在我们学习xss的利用技术之前,我们很有必要先知道xss可以干什么?或者说有什么样的危害:

· 篡改页面,修改页面内容

· 网络钓鱼

· 盗取用户cookie

· 劫持用户(浏览器)会话

· 挂广告,刷流量

· ddos

· 网页挂马

· 获取客户端信息(例如ua,ip,开放端口)

· 传播xss worm

   ……

这些都是xss能够做到的(当然,有些也受制与xss存在的环境)。

cookie是什么?

我们在进一步学习xss之前,我们先来了解下浏览器cookie是什么。我们要说cookie就得先谈到http协议,我们先来想想c/s架构的程序,通常都是client端链接server端,通讯完成后就断开连接。

但是http协议不同,他的客户端是浏览器,每次发送http请求和接收http响应就是一次通讯,每次都是一个请求和一个响应,也就是发送请求到结束请求就是通讯过程,完了就断开了。

那么,我们知道,有很多web程序都是有登录功能的,也就是有用户身份识别功能。但是,每次一请求一响应,就结束了,网站怎么管理用户会话呢?网站如何认证用户呢?

正是利用这个cookie来验证的,每次浏览器发起http请求就会带上cookie头,而cookie则是有每次响应的set-cookie来设置的。

我们总结一下上面讲的,简练的说就是:http连接是无状态连接,所以得使用cookie来验证用户身份。

我们在chrome浏览器上可以使用如下方法查看我们在网站上的cookie:

1.访问“chrome://settings/”:

[深入学习Web安全] 深入利用XSS漏洞

2.最底下有个"显示高级设置...",点一下:

[深入学习Web安全] 深入利用XSS漏洞

 3.有个“隐私设置”:

[深入学习Web安全] 深入利用XSS漏洞

4.标题下面有个“内容设置”按钮,我们点一下:

[深入学习Web安全] 深入利用XSS漏洞

 

5.我们点击“所有cookie和网站数据...”按钮,我们就能看到,我们在所有网站上的cookie了:

[深入学习Web安全] 深入利用XSS漏洞

 

cookie呢,是以key=value的形式存在的,就和下图一样:

[深入学习Web安全] 深入利用XSS漏洞

 

我们每次访问某个域的时候,浏览器就会吧我们在这个域的cookie写在访问这个域的http请求的cookie头里。而某个域想要给我们设置cookie的时候就需要在http响应里的set-cookie头里写。

php如何设置cookie

我们先启动apache2服务,然后到web根目录,创建一个cookietest.php文件,代码如下:

[深入学习Web安全] 深入利用XSS漏洞

 

然后用浏览器访问这个页面:

[深入学习Web安全] 深入利用XSS漏洞

 

然后在页面中右键-审查元素:

[深入学习Web安全] 深入利用XSS漏洞

 

在横栏上找到network,然后刷新页面,发现network下面出现了一个http请求:

[深入学习Web安全] 深入利用XSS漏洞

 

点击一下那个请求:

[深入学习Web安全] 深入利用XSS漏洞

 

可以看到横栏里有个cookies,点一下:

[深入学习Web安全] 深入利用XSS漏洞

 

我们就能看到http请求时带的cookie和http响应了设置的cookie了。