目录
一、听pikachu介绍xss
二、羞耻又走心的推荐
三、比较EASY的闯关
第1关 反射型xss(get)
1、阳关道
2、独木桥
3、第三种方法
第2关 反射型xss(post)
第3关 存储型xss
第4关 DOM型xss
第5关 DOM型xss-x
第6关 xss盲打
第7关 xss之过滤
第8关 xss之htmlspecialchars
第9关 xss之href输出
第10关 xss之js输出
一、听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)输入个alert("xian nv")试试。
出师未捷身先死,一看就有长度限制。
刚把payload放进输入框,还没submit就发现payload被截短了,应该是html代码中的限制
此时有一条阳关道,有一根独木桥
1、阳关道阳关道是直接在地址栏插payload,想插什么就插什么。比如:
alert("xian nv")(记住/一定要亲自手动进行URL编码,其他的浏览器可以自动编码)
独木桥是请出开发者工具,修改html代码中的输入框长度限制,然后在输入框中输入payload并提交。之所以叫独木桥就是因为每输入一个payload之前都要改一次输入框长度限制。。。
首先在输入框 鼠标右键--检查 弹出开发者工具,这时浏览器非常友好地用蓝色底色提示出了输入框对应的代码所在的位置
改大上图中的maxlength,比如改成100:
然后在输入框中输入payload:alert(1)
当然,payload也可以是下面这样:
alert(/xian nv/)
alert(`xian nv`)
alert('xian nv')
这种方法不太直观。。
burpsuite抓到包之后,在repeater里改请求行的url,send之后在右边搜索payload中的关键字,比如下图我用的payload是 console.log(2)
于是我搜索了console,发现payload在html代码中是原封不动的,可以判断有XSS漏洞
一进去是这么个登录页面,我还以为漏洞在这两个框的其中一个呢,于是用用户名xiannv,密码123456试了一下,心想输入回显到页面上的应该是注入点,结果发现两个都没回显。。。>︿<
点开提示一看要先用admin账号密码登录( ╯□╰ )于是就登录了。。登进去之后感觉和上一关差不多。。而且这关的输入框还没有长度限制
输入payload:alert(document.cookie)
得到admin的cookie
它是一个留言板,来玩玩
输入payload:alert("交出你的cookie");alert(document.cookie)
提交之后首先弹出下图,对应payload中的 alert("交出你的cookie")
点 确定 之后又弹出下图,对应payload中的 alert(document.cookie)
点 确定 之后就变成下图这样了,虽然留言内容显示不出来,但是对比一开始进来的时候可以看到多了个“删除”,说明确实多了一条留言
右键--查看网页源代码 的话,可以看到payload在html代码中是原封不动的。。
下面就是见识存储型XSS威力的时候了:
在另外一个浏览器中来到本关页面,也出现了同样的弹框。说明存储型XSS能危害所有访问受影响页面的用户。
然后有个题外话,这关作者大概懒得搞防止表单重复提交的操作,如果直接在提交评论的页面刷新的话,会再次提交评论的!
第4关 DOM型xss
一个输入框,先输入个alert(1)试试。
没有弹框,回显了一个链接名曰“what do you see?”
鼠标右键--查看网页源代码,Ctrl+F弹出搜索框,输入what do you see看看
找到了一段js代码,寻找DOM XSS的本质是做js语言阅读理解题。。
假装看不到注释的提示(/▽\)这段js代码的意思是会把用户提交的内容输出到标签中,这样的话,就需要闭合标签和引号
输入payload:'>
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?