一、XSS简介
XSS全称:跨站脚本(Cross Site Scripting) ,为了不和层叠样式表(Cascading Style Sheets)的缩写CSS混合,所以改名为XSS;攻击者会向web页面(input表单、URL、留言版等位置)插入恶意JavaScript代码,导致管理员/用户访问时触发,从而达到攻击者的目的。
二、XSS原理
服务器对用户提交的数据过滤不严,导致浏览器把用户的输入当成了JS代码并直接返回给客户端执行,从而实现对客户端的攻击目的。
三、xss靶场练习
反射型xss-get
通过F12读取网页代码,修改输入框的大小
填入<script>alert('1');</script>弹窗
反射型xss-post
登录账号密码后填入<script>alert('1');</script>
存储型xss
在留言框中输入构造语句,同上
DOM型
利用了DOM将字符串进行了拼接并把值给a标签的href,然后输出一个what do you see?
所以我们可以利用已知条件构建payload效果为弹窗,弹窗内容为1
<a href='#' onclick="alert(1)">'>what do you see?</a>
XSS盲打
输入构造语句后发现完全不显示在页面上
查看源代码发现是post请求,再根据提示登录后台
发现弹窗
XSS过滤
通过多次尝试发现过滤的语句可能为<.*script
于是使用script外的构造语句
<a herf="#" onclick="alert(document.cookie)">
xss之htmlspecialchars
使用常用的的payload没弹窗
鼠标右键–查看网页源代码,发现不管是<a>
标签内还是href属性内,左右尖括号被编码了,因此这关想闭合标签是不行了。仔细一看,又发现单引号居然没有被html编码,可以可以,利用一下<a>
根据信息构造新的payload
#' onclick='alert(1)'
xss之href输出
href 属性的值可以是任何有效文档的相对或绝对 URL,包括片段标识符和 JavaScript 代码段。如果用户选择了<a>标签中的内容,那么浏览器会尝试检索并显示 href 属性指定的 URL 所表示的文档,或者执行 JavaScript 表达式、方法和函数的列表。
从上述描述可见,这边可以利用JavaScript协议。输入
payload:
javascript:alert(document.cookie)
xss之js输出
首先要用’;闭合掉当前的语句,然后插入新语句,然后再用//注释掉老语句遗留下来的’;
输入payload:';alert(1);//
标签:语句,XSS,xss,pikachu,href,靶场,payload,弹窗 From: https://www.cnblogs.com/Menkio/p/17795749.html