PWN1
GNU Debugger
开靶机,运行:
要查看r12寄存器,于是在register窗口查看:
复制过去
第二关:
使用telescope查看该地址:
telescope 0x555555557c27
复制后进入下一关
在这个位置使用b下断点:
b *(0x555555555779)
使用set指令设置该地址为0xdeadbeef
set *(0x7fffffffdce4)=0xdeadbeef
INTbug
checksec:
全保护64位,IDA查看
进行了一次scanf并且只能输入正数,对比需要为负数才能cat flag 想到整数溢出
同时scanf的格式化字符是%1d 也就是说每次只能输入一个数字
那就用一个循环来输入,直到超过32766次就能溢出变成负数
exp:
1 | from pwn import * |
pwn’s door
checksec:
没开PIE IDA64:
直接输入7038329就能得到shell
overflow
checksec:
保护都关了 IDA64打开:
有后门,有gets无限输入,直接栈溢出
1 | from pwn import * |
input_function
checksec:
没开canary IDA64:
用mmap开辟了一段rwx页 再读取 输入shellcode进去就行
1 | from pwn import * |