pwn tips

  • scanf(“%s”),可以读’\x00’字符,不截断
  • 忽略某信号 trap “” signal , 例如 trap “” SIGALRM ,忽略时钟信号, gdb “handle SIGALRM nostop noprint”
  • socat tcp-l:6666,reuseaddr,fork exec:”LD_PRELOAD=./libc.so.6 ./pwn 6666″
  • IDA pro: idapython findbinary(here(), SEARCH_DOWN, “61 62 63″) 从当前位置开始搜索”abc”
  • libc可以用来leak heap地址,fastbins[10]或者normalbins
  • pwntools dynelf 获取两个函数地址相对偏移,获取偏移之后leak一次即可获得system地址
  • pwntools 停止发送信息,p.shutdown(‘send’)
  • 程序运行之后找字符串,system(“sh”)通常也是可行的
  • 插入NULLbytes,http://phrack.org/issues/58/4.html
  • gcc 编译shellcode :gcc -fno-stack-protector -z execstack -o bug bug.c
  • 64 bit call parameters RDI, RSI, RDX, R10, R8, R9,rop 利用见 linux x64 rop利用总结
  • asm(‘sub rsp, 4; jmp rsp’, arch=’amd64′)
  • roputils 关于rop的各种利用方法集合