XSS挑战之旅平台通关练习

1、第一关

比较简单,测试语句:

XSS挑战之旅平台通关练习_第1张图片

 

 

 html页面简单的三种对话框如下:

 1、alert(),最简单的提示框:

alert("你好!");

2、confirm(),有确认和取消两个按钮:

if(confirm("还有继续吗?")){

    alert("继续");

}else{

    alert("再见");

}

3、prompt(),可以输入信息:

var name = prompt("你的名字是:");

alert("你好," + name);

 

 

 

 

 

 

 

 

 

 

2、第二关

此处为搜索型的xss,分析代码,使用的是get方法,从url中接受一个keyword搜索参数,此处用到了一个过滤函数htmlspecialchars(),这个函数把预定义的字符转换为HTML实体,“>”和“<”转义了,属于黑名单绕过,那就是不使用被过滤的符号,使用js的事件,如:" onmouseover=alert(2) >click。还需要注意的地方就是前面的符号闭合.

另一个payload">alert(2),仍然是注意前面的闭合,就可以了。

 

 XSS挑战之旅平台通关练习_第2张图片

 

 XSS挑战之旅平台通关练习_第3张图片

 

 

3、第三关

这一关,过滤规则的更严格了,经过测试,“>,<,"”,被过滤了,但是单引号“'”,没有过滤,所以此处尝试js语句,“' onmouseover=alert(3)//”测试,后面无法闭合,所以使用了注释“//”。

XSS挑战之旅平台通关练习_第4张图片

 

 

4、第四关

研究一下源码,如下图,可以看到,传入进去的值经过了两个函数的参与,str_replace(">","",$str),此函数是将变量str中的字符>转换为空,转换时区分大小写;同样也把<转换为空,然后再经过函数的过滤转化,这时要在没有符号“<>”,的情况下构造语句,并且不被htmlspecialchars()函数影响。所以这里可以构造一个输入到文本框后出现相应的事件。

XSS挑战之旅平台通关练习_第5张图片

 

 

Payload:" onfocus=alert(4) autofocus="

                   "onlick=alert(4)//

onfocus事件:定义的事件将在对象获得焦点时触发,这里指input标签获得焦点。

autofocus属性:input标签的属性,当页面加载input标签,自动获得焦点。

焦点:这里指你的光标的位置,也就是说当你的光标出现在input文本框这里,将进行onfocus事件的发生。

XSS挑战之旅平台通关练习_第6张图片

 

 

5、第五关

XSS挑战之旅平台通关练习_第7张图片

 

 看一下源代码,$str2=str_replace("$str3=str_replace("on","o_n",$str2)是把转换为on转换成o_n,这样就过滤了js事件,$str=strtolower($_GET[''keyword"]);大小写绕过也会失效,不过这次没有过滤尖括号><

XSS挑战之旅平台通关练习_第8张图片

 

 

这里用伪协议来构造payload

">

Keyword=16>

XSS挑战之旅平台通关练习_第36张图片

 

 

17、第十七关

XSS挑战之旅平台通关练习_第37张图片

 

 测试语句:

arg01=a&arg02=%20onmouseover=alert`1`

XSS挑战之旅平台通关练习_第38张图片

 

 

 

 18、第十八关

这一关和上一关一样。

XSS挑战之旅平台通关练习_第39张图片

 

 19、第十九关

Flash xss

页面源码,未插入语句时:

XSS挑战之旅平台通关练习_第40张图片

 

 页面源码,插入语句后:

XSS挑战之旅平台通关练习_第41张图片

 

 Payload:

192.168.40.129/xss/level19.php?arg01=version&arg02=<ahref="javascript:alert(document.domain)">xss_by_didi</a>

点击“xss_by_didi就可以触发XSS。弹窗:

XSS挑战之旅平台通关练习_第42张图片

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

网上找了下大神的答案,这里记录一下:

flash xss,需要对flash的反编译对源码进行分析,这里使用jpexs-decompiler来分析,首先定位getURL函数

XSS挑战之旅平台通关练习_第43张图片

 

 然后追踪到sIFR的内容

XSS挑战之旅平台通关练习_第44张图片

 

 得知version参数可以传入loc4变量中,即sIFR的内容中,但是getURL只在内容为link时打开,所以分析contentIsLink函数

XSS挑战之旅平台通关练习_第45张图片

 

 所以我们可以构造 标签来传值

http://localhost/xss_test/level19.php?arg01=version&arg02=href="javascript:alert(1)">111111

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

20、第二十关

……这一关完全没有头绪呀。。。答案是网上搜来的,测试代码“\"))}catch(e){}if(!self.a)self.a=!alert(document.cookie)//%26width%26height

看着就好难。说是将swf下载下来分析得知是zeroclipboard.swf,有漏洞详情,因此构造出的payload就是上面的那句话,我就直接放进去测试一下成功率吧。

XSS挑战之旅平台通关练习_第46张图片

 

 level20.php?arg01=a&arg02=\"))}catch(e){}if(!self.a)self.a=!alert(document.cookie)//%26width%26height

成功弹窗:

XSS挑战之旅平台通关练习_第47张图片

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的