目录
一、听pikachu介绍xss
本节引用内容来自pikachu漏洞靶场
XSS(跨站脚本)概述
Cross-Site Scripting 简称为“CSS”,为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS。一般XSS可以分为如下几种常见类型:
1.反射性XSS;
2.存储型XSS;
3.DOM型XSS;
XSS漏洞一直被评估为web漏洞中危害较大的漏洞,在OWASP TOP10的排名中一直属于前三的江湖地位。
XSS是一种发生在前端浏览器端的漏洞,所以其危害的对象也是前端用户。
形成XSS漏洞的主要原因是程序对输入和输出没有做合适的处理,导致“精心构造”的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害。
因此在XSS漏洞的防范上,一般会采用“对输入进行过滤”和“输出进行转义”的方式进行处理:
输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入;
输出转义:根据输出点的位置对输出到前端的内容进行适当转义;
二、羞耻又走心的推荐
推荐一下我之前写的另外两个漏洞靶场的XSS通关(╹ڡ╹ )
1、DVWA通关--反射型XSS(XSS (Reflected)) 这篇里面有如何在攻击者计算机上获得受害者cookie的操作
2、WebGoat (A7) Cross Site Scripting (XSS) WebGoat也挺有意思,self XSS就是在这里学到的概念
三、比较EASY的闯关
第1关 反射型xss(get)
输入个<script>alert("xian nv")</script>试试。
出师未捷身先死,一看就有长度限制。
刚把payload放进输入框,还没submit就发现payload被截短了,应该是html代码中的限制
此时有一条阳关道,有一根独木桥
1、阳关道
阳关道是直接在地址栏插payload,想插什么就插什么。比如:
<script>alert("xian nv")<%2fscript>(记住/一定要亲自手动进行URL编码,其他的浏览器可以自动编码)
2、独木桥
独木桥是请出开发者工具,修改html代码中的输入框长度限制,然后在输入框中输入payload并提交。之所以叫独木桥就是因为每输入一个payload之前都要改一次输入框长度限制。。。
首先在输入框 鼠标右键--检查 弹出开发者工具,这时浏览器非常友好地用蓝色底色提示出了输入框对应的代码所在的位置
改大上图中的maxlength,比如改成100:
然后在输入框中输入payload:<script>alert(1)</script>
当然,payload也可以是下面这样:
<script>alert(/xian nv/)</script>
<script>alert(`xian nv`)</script>
<script>alert('xian nv')</script>
3、第三种方法
这种方法不太直观。。
burpsuite抓到包之后,在repeater里改请求行的url,send之后在右边搜索payload中的关键字,比如下图我用的payload是 <script>console.log(2)</script>
于是我搜索了co