pikachu之Cross-Site-Scripting

本文详细探讨了不同类型的XSS攻击,包括反射型、存储型、DOM型和DOM型XSS-X,以及如何利用和防止这些攻击。通过实例展示了如何构造payload进行弹窗演示,并提到了XSS过滤、htmlspecialchars处理和JS输出等情况下的应对方法。同时,还揭示了盲打XSS和过滤策略在实际场景中的应用。

pikachu之Cross-Site-Scripting

反射型xss(get)
在这里插入图片描述
抓包情况
在这里插入图片描述
使用123</p><script>alert(666)</script>可以完成闭合
在这里插入图片描述
由于输入框的输入长度有限制,所以修改为100,或者直接在get参数里输入也可以
在这里插入图片描述
弹窗
在这里插入图片描述
反射性xss(post)
先用admin/123456登陆一下系统,为了获得cookie,如果想要尝试,可以在xss完成后插入beef的恶意代码来获取cookie
在这里插入图片描述
抓包查看
在这里插入图片描述
使用123</p><script>alert(666)</script>可以完成闭合
在这里插入图片描述
弹窗
在这里插入图片描述
存储型xss
在留言板进行留言123,看看html情况
在这里插入图片描述
使用 </p><script>alert(666)</script> 进行闭合,之后每次访问留言板都会弹窗
在这里插入图片描述
DOM型xss
看一下题目,发现并不会把输入的内容回显
在这里插入图片描述
既然是DOM型,那就看一下html代码,看到在click me!按钮被点击时,会调用onclick()函数
在这里插入图片描述
找到onclick()函数看一看,发现函数的作用是把输入的内容作为<a>标签的href参数拼接进去,然后将a标签通过innerhtml的方式拼接到占位符dom里面去
在这里插入图片描述
在这里插入图片描述
所以根据
function domxss(){ var str = document.getElementById("text").value; document.getElementById("dom").innerHTML = "<a href='"+str+"'>what do you see?</a>"; }
进行闭合就可以

使用123'>123</a><img src=1 onerror=alert(666)>进行闭合,点击click me按钮就弹窗,因为点击click me按钮,就会执行domxss(),从而把恶意闭合代码插入到占位符dom中
在这里插入图片描述

需要注意:使用innerHTML插入script脚本时候,script是不会得到执行的,所以在实验时,使用123'>123</a><script>alert(666)</script><a href='并不能弹窗
在这里插入图片描述
DOM型xss-x
点击请说出你的伤心往事,看js代码,只是普通的表单传值
在这里插入图片描述
点击 有些费尽心机想要忘记的事情,后来真的就忘掉了,会调用domxss()
在这里插入图片描述
domxss()函数,就是把输入的内容进行解码过滤后作为a标签的href参数,然后把a标签插入到占位符dom里面
在这里插入图片描述
使用控制台看看这段函数的功能,decodeURIComponent是把比如url中的%23,转换为#
在这里插入图片描述
构造payload www.baidu.com'><img src=1 onerror=alert(111)>点击请说出你的伤心往事,然后点击有些费尽心机…就可以完成弹窗
在这里插入图片描述
xss之盲打
点击提交后,并不会对输入的内容进行回显
在这里插入图片描述

看一下提示,登录到后台看看
在这里插入图片描述
后台会将用户的反馈显示给管理员,看到提交的内容的闭合方式
在这里插入图片描述
构造payload </td></tr><script>alert(123)</script>进行提交
在这里插入图片描述

管理员查看时便完成弹窗
在这里插入图片描述

xss之过滤
在这里插入图片描述
既然xss过滤,就输入一堆可以xss的常用标签,试图找到没被过滤的标签
在这里插入图片描述

发现img 和 confirm没被过滤 使用payload </p><img src=1 onerror=confirm(999)>可完成弹窗
在这里插入图片描述
xss之htmlspecialchars
输入的内容被a标签包裹,发现“<>都会被转义&lt;&gt;&quot,但是单引号没被转义
在这里插入图片描述
方法一:利用单引号不会被转义
payload

666' οnmοuseοver='alert(1)

在这里插入图片描述
方法二:输入的内容会作为a标签href的值
payload

javascript:alert(1)

点击a标签时就会弹窗,javascript:是表示在触发默认动作时,执行一段JavaScript代码
在这里插入图片描述
xss之href输出
a标签的href参数可控,直接输入javascript:alert(1),点击a标签就可以弹窗
在这里插入图片描述
xss之js输出
发现输入拼接到js里了
在这里插入图片描述
使用123'</script><img src=1 onerror=alert(66)>闭合
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值