Hasty Briefsbeta

双语

Calling a function in C without naming it

9 hours ago
  • 学校评分系统限制函数只能使用批准的符号,阻止直接调用execve。
  • ASLR随机化地址,但函数之间的相对偏移保持不变。
  • 系统使用AddressSanitizer (ASan)编译,替换了一些libc函数如printf,但不替换execve或mmap。
  • 通过一个允许的单独练习泄露printf和mmap之间的偏移,以计算mmap地址。
  • 使用联合类型双关来绕过编译器对函数指针转换的限制。
  • 调用mmap分配可写可执行内存,然后写入系统调用shellcode。
  • 通过自定义shellcode执行任意系统调用(如execve)以获取shell访问权限。
  • 该漏洞难以修补,因为ASLR和名称检查无效,且ASan有助于攻击。