pwn无法入门7-UAF
hhh
很明显我还没学会
只是在网上看到一个大佬写的
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main() {
char * p1;
p1 = (char *)malloc(sizeof(char) * 10);
memcpy(p1, "hello", 10);
printf("p1 addr: %p, %s\n", p1, p1);
free(p1);
char * p2;
p2 = (char *)malloc(sizeof(char) * 10);
memcpy(p2, "world", 10);
printf("p2 addr: %p, %s\n", p2, p1);
return 0;
}
就是p1释放之后,p2申请同样大小的堆块的时候会把原来p1的那块给他
应该就是fastbin上分过来的吧
又找到几篇文章
http://www.cnblogs.com/Ox9A82/p/5865420.html
http://www.vuln.cn/6653 (只想说这个,我没看懂)
http://www.vuln.cn/6654 (http://whereisk0shl.top/myarticle 里提到的原来在wooyun的文章)
虽然没看懂,但几下关键词fake chunk
他这个pwn me
是fastbin
对于free掉的fastbin块
,原来data区域的开头的几个字节现在是放了fd
指针
这道题目中这个fd
的位置在还没有释放的时候存的是结构体的rank
,所以要通过rank
来泄露堆地址
后面的我是真的看不懂的了,我好菜啊==
参考(还没看)
http://www.freebuf.com/articles/web/69260.html
http://bobao.360.cn/ctf/learning/149.html
http://www.cnblogs.com/0xJDchen/p/6175651.html