返回列表 发新帖

某雪CTF之AliCrackme_1

  [复制链接]

139

主题

859

回帖

4477

积分

大学生

Rank: 5Rank: 5

金币
968
好评
37
信誉
100

MT论坛帅哥考神MT论坛新人MT论坛最佳新人MT论坛活跃会员

QQ
发表于 2025-12-21 11:02:17 来自手机  | 显示全部楼层 | 阅读模式  来自 福建
本帖最后由 岩浆怕 于 2025-12-21 12:40 编辑

今天来整10年前的CTF挑战
AliCrackme_1
开始挑战
题目要求

没有要求
安装看看

可以看到是一个密码输入界面
随便输入几个

得到提示之后去arsc过滤


复制第一个ID

整数搜索

看一下验证逻辑

通过这个方法可以知道,密码应该是从图片里得到的,我们继续看一下


看了这几段代码可以知道
验证流程是
  1. 用户输入密码 → UTF-8编码 → bytesToAliSmsCode加密 → 与隐藏密码比较 → 验证结果
复制代码

asstes/logo.png文件中隐藏着加密表和密码
  1. 加密表
  2. 偏移: 0x15d81  (十进制89473)
  3. 大小: 0x300  (768字节)
  4. 密码
  5. 偏移: 0x16481  (十进制91265)
  6. 大小: 0x12  (18字节)
复制代码

分析方法可知代码逻辑如下
  1. private static String bytesToAliSmsCode(String table, byte[] data) {
  2.     StringBuilder sb = new StringBuilder();
  3.     for (int i = 0; i < data.length; i++) {
  4.         int index = data[i] & 0xff;        // 字节转无符号整数(0-255)
  5.         char c = table.charAt(index);      // 从表中取对应字符
  6.         sb.append(c);
  7.     }
  8.     return sb.toString();
  9. }
  10. 每个字节值作为索引,在table中查找对应的中文字符
  11. private static byte[] aliCodeToBytes(String codeTable, String strCmd) {
  12.     byte[] cmdBuffer = new byte[strCmd.length()];
  13.     for (int i = 0; i < strCmd.length(); i++) {
  14.         char c = strCmd.charAt(i);
  15.         int v = codeTable.indexOf(c);      // 在表中查找字符位置
  16.         cmdBuffer[i] = (byte) v;           // 位置值转为字节
  17.     }
  18.     return cmdBuffer;
  19. }
  20. 每个中文字符在table中的位置,就是原始字节值
复制代码

接下来我们看一下图片

用文本打开

典型的隐写

前面的一段是加密表,后面的一段是密码
接下来我们就可以推导出解密过程
我们已知
加密表:768字节,256个字符
加密密码: "义弓么丸广之"  (6个字符)
加密算法:字节值 → table索引 → 中文字符

过程
  1. 加密密码: "义弓么丸广之"
  2.          ↓
  3. 在table中查找每个字符的位置:
  4.   '义' → 位置X₁
  5.   '弓' → 位置X₂
  6.   '么' → 位置X₃
  7.   '丸' → 位置X₄
  8.   '广' → 位置X₅
  9.   '之' → 位置X₆
  10.          ↓
  11. 位置值就是原始字节值:
  12.   [X₁, X₂, X₃, X₄, X₅, X₆]
  13.          ↓
  14. UTF-8解码得到明文
复制代码

这样的话,就很明显了,我们直接写一个Python代码一行解决
Python代码
  1. python3 -c "
  2. encrypted = '义弓么丸广之'
  3. with open('logo.png', 'rb') as f:
  4.     f.seek(0x15d81)
  5.     table = f.read(768).decode('utf-8')
  6.    
  7. # 解密
  8. result = bytes([table.index(c) for c in encrypted]).decode('utf-8')
  9. print('解密结果:', repr(result))
  10. print('十六进制:', result.encode('utf-8').hex())

  11. # 字符信息
  12. print('\n字符映射详情:')
  13. for c in encrypted:
  14.     idx = table.index(c)
  15.     ascii_char = chr(idx) if 32 <= idx < 127 else '.'
  16.     print(f"'{c}' -> 位置:{idx:3d} (0x{idx:02x}) -> ASCII: '{ascii_char}'")
  17. "
复制代码


运行结果

可以看到密码出来了


试一下

成功了

https://wwbez.lanzouw.com/i3inq3e5eqib
密码:gfqb

flag

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

4

主题

1921

回帖

6407

积分

硕士生

Rank: 6Rank: 6

金币
4434
好评
1
信誉
102

考神MT论坛最佳新人

QQ
发表于 2025-12-21 11:02:58 来自手机  | 显示全部楼层  来自 山西
看看
回复

使用道具 举报

20

主题

2498

回帖

8217

积分

硕士生

Rank: 6Rank: 6

金币
1286
好评
2
信誉
100

MT论坛最佳新人MT论坛新人

发表于 2025-12-21 11:13:33 来自手机  | 显示全部楼层  来自 山东
感谢分享
回复

使用道具 举报

12

主题

5246

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
1590
好评
16
信誉
578

考神MT论坛帅哥MT论坛新人MT论坛最佳新人MT论坛活跃会员

发表于 2025-12-21 11:14:03 来自手机  | 显示全部楼层  来自 广东
看看隐藏
回复

使用道具 举报

1

主题

2631

回帖

6298

积分

硕士生

Rank: 6Rank: 6

金币
4549
好评
0
信誉
100
发表于 2025-12-21 11:14:19 | 显示全部楼层  来自 广西
看一看
回复

使用道具 举报

1

主题

1361

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
4101
好评
7
信誉
100
发表于 2025-12-21 11:23:05 来自手机  | 显示全部楼层  来自 广东
学习一下
回复

使用道具 举报

10

主题

3705

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
5022
好评
2
信誉
112

MT论坛最佳新人考神MT论坛帅哥

发表于 2025-12-21 11:25:31 来自手机  | 显示全部楼层  来自 福建
感谢分享
回复

使用道具 举报

13

主题

787

回帖

4493

积分

大学生

Rank: 5Rank: 5

金币
2115
好评
53
信誉
100
发表于 2025-12-21 11:26:33 来自手机  | 显示全部楼层  来自 北京
看看隐藏
回复

使用道具 举报

1

主题

1429

回帖

4372

积分

大学生

Rank: 5Rank: 5

金币
3482
好评
0
信誉
100

MT论坛新人

QQ
发表于 2025-12-21 11:27:15 来自手机  | 显示全部楼层  来自 重庆
看看隐藏内容
回复

使用道具 举报

39

主题

1192

回帖

6448

积分

硕士生

孤儿

Rank: 6Rank: 6

金币
1109
好评
82
信誉
98
发表于 2025-12-21 11:28:24 来自手机  | 显示全部楼层  来自 四川
看看
回复

使用道具 举报

8

主题

1万

回帖

2万

积分

博士后

Rank: 8Rank: 8

金币
5141
好评
1
信誉
100
发表于 2025-12-21 11:29:54 来自手机  | 显示全部楼层  来自 山东
看看隐藏
回复

使用道具 举报

3

主题

4430

回帖

1万

积分

博士生

https://0818.neocities.org/

Rank: 7Rank: 7Rank: 7

金币
1872
好评
6
信誉
102
发表于 2025-12-21 11:31:36 来自手机  | 显示全部楼层  来自 新疆
看看
回复

使用道具 举报

0

主题

160

回帖

521

积分

初中生

Rank: 3Rank: 3

金币
393
好评
0
信誉
100
发表于 2025-12-21 11:33:42 来自手机  | 显示全部楼层  来自 北京
看看
回复

使用道具 举报

77

主题

1938

回帖

6370

积分

硕士生

Rank: 6Rank: 6

金币
1109
好评
8
信誉
100

MT论坛帅哥MT论坛最佳新人考神MT论坛活跃会员MT论坛新人

QQ
发表于 2025-12-21 11:39:06 来自手机  | 显示全部楼层  来自 山东
感谢分享,看隐藏
回复

使用道具 举报

124

主题

2509

回帖

9026

积分

硕士生

秋枫Mod

Rank: 6Rank: 6

金币
2900
好评
63
信誉
98

MT论坛最佳新人MT论坛帅哥MT论坛新人考神MT论坛活跃会员MT论坛灌水老大

QQ
发表于 2025-12-21 11:40:04 来自手机  | 显示全部楼层  来自 河南
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表