Proc File System



在许多类 Unix 计算机系统中, procfs 是 进程 文件系统 (file system) 的缩写,包含一个伪文件系统(启动时动态生成的文件系统),用于通过内核访问进程信息。这个文件系统通常被挂载到 /proc 目录。由于 /proc 不是一个真正的文件系统,它也就不占用存储空间,只是占用有限的内存。用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。 其中对我们一般作用最大的是/proc/PID问价夹的内容。
它广泛用在Solaris,BSD,Linux等操作系统中

Continue reading

Pwnable.tw BookWriter

Continue reading

House of orange🍊



House Of Orange 是AnglyBoy在hitcon-2016中出的一道Pwn题
题目中使用了一种全新的攻击手段House-Of-Orange,利用Unsotred bin attack攻击_IO_List_all,劫持控制流。

Continue reading

ICQ Baidu December Pwn



what_the_fuck

Continue reading

ICQ Baidu November Pwn



pwnme

Continue reading

Environ



在linux应用程序运行时,内存的最高端是环境/参数节(environment/arguments section)
用来存储系统环境变量的一份复制文件,进程在运行时可能需要。
例如,运行中的进程,可以通过环境变量来访问路径、shell 名称、主机名等信息。
该节是可写的,因此在格式串(format string)和缓冲区溢出(buffer overflow)攻击中都可以攻击该节。
*environ指针指向栈地址(环境变量位置),有时它也成为攻击的对象,泄露栈地址,篡改栈空间地址,进而劫持控制流。

Continue reading

Pwnable.tw start-orw-calc



start

题目的binary很小
没有开启NX,考虑注入shellcode,思路大致如下:

  • 1.泄露栈地址leak stack
  • 2.控制shellcode,由于程序溢出最多60个字节,shellcode尽量控制在30个字节以内,否则会被截断
  • 3.计算offset,跳转到stack上执行shellcode

orw

程序写shellcode地址,之后跳转到shellcode执行,shellcode地址在bss段上,所以程序开启的canary没有意义

由于限制了只能够使用open,read,write等syscall,所以也就是需要自己写shllcode,大致流程如下:

由于flag比较长,至少0x30才能够接收到完整的flag

calc



reverse

题目实现了一个简单的计算器解释器,是通过两个栈来实现的,一个栈保存运算的结果,另一个栈保存所有的运算符。

Continue reading