xss-labs通关(未完成)

本篇为本人xss—labs通关,未完成之前会一直编辑

level1

xss-labs通关(未完成)_第1张图片

上来一头雾水,不知道该怎么办,之后我们可以赋值test试一试,查看源代码

xss-labs通关(未完成)_第2张图片

从这里我们可以看到它将name的参数值,插入到了

标签之间

那么 就很明显,这一关主要就是考察反射型xss

但是由于不知道服务器端对于提交的敏感字符有没有过滤,所以这里直接在name参数

中赋值一个简单的弹窗来进行测试。

操作如下:

将name参数重新赋值:

xss-labs通关(未完成)_第3张图片
 

 level 2

xss-labs通关(未完成)_第4张图片

 有搜索了,我们先试一下test,之后查看代码

xss-labs通关(未完成)_第5张图片

 

从源码来看,它的功能就是通过点击“搜索”按钮,将输入框内的内容以get方式提交给服务器上的level2.php,经过服务器的动态处理之后又会将参数keyword的值插入到

标签之中以及添加到标签中的value属性的值内。尝试使用上一关的恶意语句操作进行弹窗

xss-labs通关(未完成)_第6张图片
 

 发现不对,查看网页源代码

 

可以看到在

标签之中的恶意代码被编码了。其中<>都被编码成了html字符实体。

只需要将属性的引号和标签先闭合就可以了。

将keyword的参数值重新赋值

">//

xss-labs通关(未完成)_第7张图片

level3 

xss-labs通关(未完成)_第8张图片

 老规矩,用test尝试,然后查看源代码

xss-labs通关(未完成)_第9张图片

 好像与第二关相似,我们用构造弹窗试试

xss-labs通关(未完成)_第10张图片

 不行,查看源码

 

这两处都将<>这样的敏感字符编码成了html字符实体。

猜测服务器端在这两处都用htmlspecialchars()函数进行了处理。

去服务器端看看level3.php代码

xss-labs通关(未完成)_第11张图片

没错,之后我们使用 

标签的一些特殊事件来执行js代码

构造代码:level3.php?keyword='onfocus=javascript:alert('xss') > //

xss-labs通关(未完成)_第12张图片

居然还不对,不过搜索没了说明 触发了onfocus事件(网页上一个输入框,该输入框时输入框被选中可以输入内容的时候就是该输入框获得焦点的时候,此时输入框就会触发onfocus事件.因此点击当前页面的输入框就可以完成弹框了。

xss-labs通关(未完成)_第13张图片

level4

xss-labs通关(未完成)_第14张图片 

 还是get方式请求,直接上level2代码,发现不行,我们查看下源码

 我们发现,第二行的<>编码转换了,第四行的<>没有了

我们直接使用上一关代码。level4.php?keyword="οnfοcus=javascript:alert('xss')"

点输入框,结束

level 5

xss-labs通关(未完成)_第15张图片

 发现依旧是get方式,所以还是反射型xss,弹窗代码走起

xss-labs通关(未完成)_第16张图片

 寄,直接看源码

 第二行,又是<>被编码处理了

第四行中间出现一个_,我们用level3代码试试

依旧不行,我们看看源码

 寄,居然对onfocus事件防范了

不过我们可以换一个标签执行代码

?keyword="> xss //

xss-labs通关(未完成)_第17张图片

 出现了一个xss的蓝色标签,点一下,便成功了

xss-labs通关(未完成)_第18张图片

 

你可能感兴趣的:(xss,前端)