当前位置: 首页 > ops >正文

xss-labs第15关

前言:

xss-labs第15关

目录

测试思路:

两天后的思路:

新发现:

整理思路:

测试行动:

思考:


内容:

测试思路:

        没有思路,打开一篇空白,想了一下,打开15关源代码,发现需要构造参数src,然后我就去问chatgpt了,试了好久,chatgpt也没想出来,我也没想出来

看答案,,,

两天后的思路:

        过了两天,在来看这道题还是没有思路,但是通过重新看标签,好像有一点点思路了,ng-include,就是思路说,先去看ng-include这是什么,怎么用

通过上面的观看,我好像知道了ng-include是关于文件包含的,但是他又没有给出实际的参数,是为啥呢?

思考1:我怎么知道他是由什么传参给后台的,他为啥能传参给后台,?我是怎么知道他的参数命名规则是什么?

<body><span class="ng-include:https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=https%3A%2F%2Fimg-home.csdnimg.cn%2Fimages%2F20230724024159.png%3Forigin_url%3D111%26pos_id%3Dbit8Zjsb&pos_id=bit8Zjsb1"></span></body>

就是说为啥这里为啥会有个参数值到后端呢?

        经过一段时间的理解,在加上chatgpt的疏导,也就是说看到ng-include,就应该想到会有变量来控制ng-include,来解析此域名下的html文件。

新发现:

最后一天,就是又有新的发现,以下是新的发现

至于为啥是src作为参数值的话,需要如何判断呢?

既然猜测有参数值,那就爆破这个参数值,一般的话,不存的参数值会返回错误页面,存在的参数值返回正常页面,且正常页面的长度一般是大于报错页面的长度,

根据返回长度的判断,就可以判断那个参数值是否存在了,action

一般参数值应该也不会长,且都是英文格式

根据这个原理,这个爆破这个参数值,假设长度最长为3,

开爆

好像又发现一件事情,就是说如果参数正常,他的值将会带入html页面来,所以返回的长度自然要比其他参数高

成功发现,是src参数值。

整理思路:

        首先这关的思路就是利用ng-include能够解析文件,并返回当前页面,所以包含第一关的文件,并且执行第一关的弹窗,这关就算过了

测试行动:

         先简单测试一下,是否包含第一关,就会返回第一个的内容

        测试payload:?src='level1.php'

        包含第一关?src='level1.php?name=<img src=1 οnclick=alert(1)>',闯关成功,这就结束了,

?src="level1.php?name=<img src=1 οnclick=alert(1)>",双引号和单引号都是一样的,可以

细究xss,当我查看后端源码时,发现<>都被转义了,为何还能执行xss漏洞?

问了ai,他说angulars会将这些内容反转义,然后继续执行

但是不能直接输入实体化编码后的<>,不知道为啥会这样,,,,,???

思考:

1、关于为啥要加引号,已经有大佬给出答案了xss-labs靶场-第十五关 ng-include XSS - FreeBuf网络安全行业门户

整理理解:在 AngularJS 中,ng-include: 后面是 JS 表达式;你需要使用引号包裹字符串路径,JS 中单双引号等价,但为了 HTML 属性嵌套,通常使用单引号包外、双引号包内是最稳妥的方式。

2、为啥就是ng-include里的<>被实体化了还是能被执行?

ng-include 加载的模板文件中,若有内容经过了 HTML 实体转义,但 AngularJS 会对这些内容执行“反转义”并把它当成 HTML 片段编译和插入

http://www.xdnf.cn/news/8717.html

相关文章:

  • 历年华中科技大学保研上机真题
  • 【数据结构】图论探秘:广度优先遍历(BFS)与生成树的构建艺术
  • DAY35
  • JVM 的内存模型
  • 【MySQL系列】SQL 分组统计与排序
  • Vue-数组操作方法技术解析大纲
  • 【爬虫学习】Python数据采集进阶:从请求优化到解析技术实战
  • 解决论文中字体未嵌入的问题
  • Q2:如果 Channel 没有关闭,读取会一直阻塞吗?
  • leetcode654.最大二叉树:递归分治下的最大值索引定位与树构建
  • 显示docker桌面,vnc远程连接docker
  • Android应用中设置非系统默认语言(使用Kotlin)
  • 机械师安装ubantu双系统:三、GPT分区安装Ubantu
  • 【医学影像 AI】医学影像 AI 入门:PyTorch 基础与数据加载
  • 并发编程艺术--AQS底层源码解析(一)
  • 计算机视觉---YOLOv2
  • [特殊字符] Function Calling 技术详解与 Qwen 模型实践指南
  • mqtt数据包举例
  • 博客摘录「 游戏开发笔记(九)——技能系统」2025年5月25日
  • SAP重塑云ERP应用套件
  • AI数据治理破局的战略重构
  • 【MPC控制】番外篇:MPC 与 机器学习/深度学习 —— 双雄会的相似与不同
  • 计算机网络学习(六)——UDP
  • 远程办公时代macOS访问解决方案:兼顾效率提升与安全防护的实用架构指南
  • 如何利用AI工具提升工作效率?
  • 2021年认证杯SPSSPRO杯数学建模B题(第二阶段)依巴谷星表中的毕星团求解全过程文档及程序
  • Mysql高版本(8.0及以后)Linux安装
  • 删除链表的倒数第N个结点--LeetCode
  • MySQL的存储引擎
  • 什么是 Spring MVC 的异步请求处理?