xss漏洞复现

目录

第一关

第二关

第三关

第四关

第五关


第一关

要求:

Pop an alert(1337) on sandbox.pwnfunction.com.

No user interaction.

代码:

<!-- Challenge -->

<h2 id="spaghet"></h2>

<script>

spaghet.innerHTML = (new URL(location).searchParams.get('somebody') || "Somebody") + " Toucha Ma Spaghet!"

</script>

第一步先判断传参点,发现位于倒数第二行。

<script>alert(1337)<script> 被过滤了

发现有一个标签没有被过滤,执行js代码

第二关

要求:

Pop an alert(1337) on sandbox.pwnfunction.com.

No user interaction.

<h2 id="maname"></h2>

<script>

let jeff = (new URL(location).searchParams.get('jeff') || "JEFFF")

let ma = ""

eval(`ma = "Ma name ${jeff}"`)

setTimeout(_ => {

maname.innerText = ma

}, 1000)

</script>

看源码初步判断漏洞点 eval(`ma = "Ma name ${jeff}"`)

查看html页面

输出到了jefff的位置

alert(1337)被当作字符串输出到页面,运用sql中逃逸引号闭合

最后再加上-

第三关

<div id="uganda"></div>

<script>

let wey = (new URL(location).searchParams.get('wey') || "do you know da wey?");

wey = wey.replace(/[<>]/g, '')

uganda.innerHTML = `<input type="text" placeholder="${wey}" class="form-control">`

</script>

第四关

<form id="ricardo" method="GET">

<input name="milos" type="text" class="form-control" placeholder="True" value="True">

</form>

<script>

ricardo.action = (new URL(location).searchParams.get('ricardo') || '#')

setTimeout(_ => {

ricardo.submit()

}, 2000)

</script>

ricardo.submit() 发现提交没做任何限制就直接上传js。

第五关

<h2 id="will"></h2>

<script>

smith = (new URL(location).searchParams.get('markassbrownlee') || "Ah That's Hawt")

smith = smith.replace(/[\(\`\)\\]/g, '')

will.innerHTML = smith

</script>

没有过滤<>那就可以用img标签

括号被过滤,给括号编码(运用location)

相关推荐
北海-cherish4 小时前
vue中的 watchEffect、watchAsyncEffect、watchPostEffect的区别
前端·javascript·vue.js
AALoveTouch5 小时前
网球馆自动预约系统的反调试
javascript·网络
2501_915909066 小时前
HTML5 与 HTTPS,页面能力、必要性、常见问题与实战排查
前端·ios·小程序·https·uni-app·iphone·html5
white-persist6 小时前
Python实例方法与Python类的构造方法全解析
开发语言·前端·python·原型模式
新中地GIS开发老师7 小时前
Cesium 军事标绘入门:用 Cesium-Plot-JS 快速实现标绘功能
前端·javascript·arcgis·cesium·gis开发·地理信息科学
Superxpang7 小时前
前端性能优化
前端·javascript·vue.js·性能优化
左手吻左脸。7 小时前
解决el-select因为弹出层层级问题,不展示下拉选
javascript·vue.js·elementui
李白的故乡7 小时前
el-tree-select名字
javascript·vue.js·ecmascript
Rysxt_7 小时前
Element Plus 入门教程:从零开始构建 Vue 3 界面
前端·javascript·vue.js
隐含7 小时前
对于el-table中自定义表头中添加el-popover会弹出两个的解决方案,分别针对固定列和非固定列来隐藏最后一个浮框。
前端·javascript·vue.js