pwn

杂七杂八

Posted by Sagiring on 2023-03-01
Estimated Reading Time 1 Minutes
Words 399 In Total
Viewed Times

杂七杂八

Strcmp()作条件的绕过

利用"\0"作为比较的第一个字符

image-20221108093132384-1667871106786-1
r.sendlineafter(b"Enter your flag:\n",'\0')

my_read读入”\0“到s1跳过判断直接到后门函数。

CTF All In One--firmianay

image-20221108230123280

讲的特别详细 但是许多地方还看不明白 还在研究

格式化字符串

格式字符串漏洞发生的条件就是格式字符串要求的参数和实际提供的参数不匹配。

提供的参数可以手动输入

作用

栈中数据,内存数据

推算函数地址.....(补原理)

ROP的学习(理清了很多概念)

返回导向编程(Return-Oriented Programming,缩写:ROP)

==>ROP Emporium<==平台

很好的平台,提供了难度逐渐上涨的rop题

1.ret2text

image-20221108225923088

通过read读入一定数量的字符填满缓冲区,然后是 ROP 链,通过覆盖栈上保存的返回地址(关了PIE)来实现函数跳转到后门函数中。这种类型的ROP名称叫ret2text.

2.ret2text

同样的溢出覆盖栈上地址,不过后门函数不能打印出flag。但是知道了system的函数地址

image-20221108231326138

又在.data段找到了一串字符

image-20221108231716296

刚好可以搭配system函数拿到flag,利用这两个地址(关了PIE)。所以这种方法称作ret2libc。做到这里拿到了flag但是原理还不是太明晰。

image-20221108232130457

System()的两个地址:

1.直接调用地址 ()

2.System()的.plt地址

学习plt延迟绑定机制(动态链接)