XSS_labs

LEVEL1

XSS_labs

 

XSS_labs

 

观察发现,向服务器传入一个参数name,页面会回显出参数name的值和参数长度

查看源代码

XSS_labs

可以看到,值test被插入到<h2></h2>标签之间,猜测为反射型XSS

在<script>里,可以发现,调用alert时,我们就可以运行function()函数

由于不知道服务器端对于提交的敏感字符有没有过滤,所以这里直接在name参数中赋值一个简单的弹窗来进行测试,采用标签注入,注入js代码

name=<script>alert('xss')</script>

 XSS_labs

 

 

 查看源代码,可以看到服务器返回了提交的payload

XSS_labs

<script>alert('')</script>:XSS测试语句,弹出alert里面的字符串内容

LEVEL2

XSS_labs

 

通过搜索框输入,传入值为test的参数keyword,参数的值直接回显在页面

查看源代码

XSS_labs

 

 

分析代码

在搜索框内输入<script>alert('xss')</script>

XSS_labs

 

发现页面直接回显出输入的js语句

查看源代码

XSS_labs

XSS_labs

可以看到在<h2></h2>标签中代码被编码了,但是插入到value参数值中的代码并没有。

js代码在标签属性值中,浏览器无法执行。要执行这里的代码,可以先闭合input标签,然后注入代码。

构造<script>alert('xss')</script>

 

"><script>alert('xss')</script>

 

 XSS_labs

查看源代码

XSS_labs

LEVEL3

XSS_labs

在搜索框内输入test进行测试

XSS_labs

查看源代码

XSS_labs

发现页面两处地方回显了值test

XSS_labs

 

发现这两处的代码都被编码了

考虑采用<input>标签的特殊事件来执行js代码

因为标签带有”<"的,因此采用事件,需要闭合标签的属性

 

' onclick='alert(1)

 XSS_labs

XSS_labs

 

 

 知识点

XSS_labs

LEVEL4

XSS_labs

 

XSS_labs

有两处回显

输入<script>alert('xss')</script>测试

XSS_labs

XSS_labs

 

 

 1处对代码进行了编码,2处删除了<和>这两个符号

采用事件注入代码

" onclick="alert(1)"

XSS_labs

XSS_labs

LEVEL5

XSS_labs

 

XSS_labs

输入<script>alert('xss')</script>

XSS_labs

XSS_labs

第二处代码,在r和i之间插入了_符号

XSS_labs

采用事件注入,同样插入了_

使用其他标签

"><a href="javascript:alert(1)"

 XSS_labs

 

 

 





 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

上一篇:sqli-labs less-22


下一篇:MySQL数据库sql注入步骤详解(以sqli-labs环境演示)