之前在网上看的PWN入门的教学视频

PWN:攻破设备及系统
题目:nc binary libc
方法:逆向分析,定位漏洞
构造数据与程序交互(2.3步相互交错)
调试程序
get shell
漏洞:缓冲区溢出:栈 堆
栈:数据结构 后进先出 push pop
保留了函数调用的信息
寄存器:esp指向栈顶
ebp指向栈帧底部
eip指向下一个要跳转的地址
返回地址是攻击目标
函数内的局部变量全部放在栈中(全局变量不在栈中,不关注)
栈溢出意味着什么:
六十四位寄存器以r打头
没有长度校验
破坏变量,返回地址等
找到栈溢出:
IDA
找到输入点长度限制:
gets(buf)
strcpy(dest,scr)
scanf(…)
strcat(…)
没有长度限制
read(0,buf,size) 需要注意长度限制是否可以造成溢出
判断偏移:
溢出到指定位置=》到底要输入多少数据
gdb调试器peda插件的两条命令
pattern create 100创建垃圾数据
offset
gdb linux 内置调试器附加到程序中查看流程
run continue si(step into)步入 ni( next instruction)步过
time to getshell
使用pwntools编写脚本(python)
漏洞利用时的数据直接放在栈中 需要进行交换

你可能感兴趣的:(CTF)