攻防世界——flag_in_your_hand1

本文揭示了如何通过审计JS代码找出隐藏的flag,通过对比字符串s与数组a的数字,理解字符校验规则,从而获取'security-xbu'的线索。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

攻防世界——flag_in_your_hand1

原理:js代码审计

1、拿到文件后,发现是js文件和html文件。js文件可通过记事本打开。
在这里插入图片描述

2、先打开html文件,看到如图所示的网站。在这里插入图片描述显然是让你输入特定的字符串。按f12查看网页代码,入图片描述
script代表js代码的开始和结束。从代码中发现输入的正确与否与ci有关。
3、打开js文件,找到关键代码
在这里插入图片描述通过判断,s代表输入的字符串。每个字符与a中的数字对比,只要相差3,就输出true。所以只要将a中的数字剑减3,换成asc||字符,得到字符串。security-xbu
在这里插入图片描述

### CTF杂项挑战 `misc_01` 攻防世界 解题思路 对于CTF中的杂项挑战,特别是提到的`misc_01`题目,在处理涉及日期和特定格式的数据时,通常需要考虑数据结构以及可能存在的模式。根据已知的信息,一串由短横线分割成十二部分的数字很可能代表一年中每个月的相关数值[^1]。 #### 数据分析 假设给出的一串数字按照如下形式排列: ``` 28-31-30-31-31-30-31-31-30-31-30-31 ``` 这组数恰好反映了某年各月份天数分布情况。通过对比标准公历年份每月天数表可以推测该字符串表示的是平年的月度天数组合。如果存在闰年,则二月会显示为29而不是常规的28。 #### 日历关联 考虑到还提供了一个新加坡的日历文件作为辅助材料,这意味着解密过程或许涉及到利用当地节假日或其他特殊日子来进行进一步推理或映射操作。例如,某些月份的第一天可能是星期几,或者是某个重要的节日落在哪一天等特征都值得探索。 #### 编码尝试 为了验证上述猜测并找到最终答案,可以通过编写脚本读取给定的日历文档来提取有用信息并与原始数字序列建立联系。下面是一个简单的Python代码片段用于解析日历PDF(假设有合适的库支持): ```python import calendar from datetime import date, timedelta def get_days_of_month(year): days_per_month = [] for month in range(1, 13): first_day, num_days = calendar.monthrange(year, month) days_per_month.append(num_days) return '-'.join(map(str,days_per_month)) print(get_days_of_month(2023)) # 输出当前年份的每日数量组合供测试使用 ``` 此函数可以根据指定年份生成相应的“MM-DD”格式字符串,并将其转换为目标格式以便于后续比较。 #### 结论 综上所述,解决此类问题的关键在于理解所提供的线索之间的潜在关系——即如何将看似无关紧要的信息转化为有价值的提示。在这个案例里,就是把一组抽象化的整数解释成为实际可应用的时间概念,并借助额外资源完成最后一步推断工作。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值