首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

ctfshow-web-新年好?

  • 23-10-06 09:02
  • 2505
  • 13112
blog.csdn.net

0x00 前言

  • CTF 加解密合集
  • CTF Web合集
  • 网络安全知识库

文中工具皆可关注 皓月当空w 公众号 发送关键字 工具 获取

0x01 题目

在这里插入图片描述

0x02 Write Up

尝试访问之后返回了源码。可以看到重点是在setTimeout

在这里插入图片描述
首先来看setTimeout,setTimeout的意思就是说在一段时间后执行指定的方法,如果超过两个参数的话,会将多的参数当做值传入指定的方法。

也就是说setTimeout(getflag, delay,flag);在delay秒之后,会执行getflag方法,并且会将flag当做参数进行传入

下面的方法,就是说在1000秒之后,就会执行这个匿名方法。

setTimeout(() => {
      clearTimeout(t);
      try {
        res.send('Timeout!');
      } catch (e) {
      }
    }, 1000);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

这里需要知道一个知识:浏览器内部使用32位带符号的整数,来储存推迟执行的时间。这意味着setTimeout最多只能推迟执行2147483647毫秒(24.8天)超过这个时间会发生溢出。

如果溢出了之后,相当于从0开始,整数上溢,那么相当于我们可以控制只要在1000之内就可以

poc:http://63395c76-0edf-4118-80cd-354a83ff94cd.challenge.ctf.show/flag?delay=2147483648

在这里插入图片描述

0x03 other

欢迎大家关注我朋友的公众号 皓月当空w 分享漏洞情报以及各种学习资源,技能树,面试题等。

以上

注:本文转载自blog.csdn.net的Wcbddd的文章"https://blog.csdn.net/HAI_WD/article/details/132741369"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top