Beginner

shell_basic

pwnable
  • 문제 정보
  • 풀이 162
  • 난이도 투표 31
  • 질문 64
  • 최근 풀이자 3886
  • 댓글 90

문제 설명

Description

입력한 셸코드를 실행하는 프로그램이 서비스로 등록되어 작동하고 있습니다.

main 함수가 아닌 다른 함수들은 execve, execveat 시스템 콜을 사용하지 못하도록 하며, 풀이와 관련이 없는 함수입니다.

flag 파일의 위치와 이름은 /home/shell_basic/flag_name_is_loooooong입니다.
감 잡기 어려우신 분들은 아래 코드를 가지고 먼저 연습해보세요!

플래그 형식은 DH{...} 입니다. DH{}도 모두 포함하여 인증해야 합니다.

참고

$ cat write.asm
section .text
global _start
_start:
    ;/* write(fd=1, buf='hello', n=48) */
    ;/* push 'hello\x00' */
    mov rax, 0x0a6f6c6c6568
    push rax
    mov rsi, rsp
    push 1
    pop rdi
    push 0x6
    pop rdx
    ;/* call write() */
    push 1
    pop rax
    syscall
$ nasm -f elf64 write.asm
$ objcopy --dump-section .text=write.bin write.o
$ xxd write.bin
00000000: 48b8 6865 6c6c 6f0a 0000 5048 89e6 6a01  H.hello...PH..j.
00000010: 5f6a 065a 6a01 580f 05                   _j.Zj.X..
$ cat write.bin | ./shell_basic
shellcode: hello
[1]    1592460 done                cat write.bin |
       1592461 segmentation fault  ./shell_basic
$

출제자 정보

avatar
Dreamhack
대표 업적 없음

First Blood!

kileak
대표 업적 없음
출제된 지 10분 만에 풀이 완료!

난이도 투표 31

질문 58

문제 풀이에 어려움이 있으신가요?
커뮤니티에서 문제에 대한 질문하고 답변 얻기

최근 풀이자 3886

billcho
대표 업적 없음
ihco
대표 업적 없음
kyona
대표 업적 없음
hn1106
대표 업적 없음
ngloc2411
대표 업적 없음
MAKESAO
강의 수강: 1
gongyoo-fun-club
대표 업적 없음
mogi
대표 업적 없음
kazuke
대표 업적 없음
Kainic
대표 업적 없음

댓글 90

뚜비123
대표 업적 없음
쉘 코드도 직접 만들어보고 shellcraft 툴도 써봤네요 공부 많이 됐습니다
Choish
대표 업적 없음
뭐가 틀렸는지나 알면 다행인데 뭐가 틀렸는지도 모르고 답이 안나오니 너무 답답하네요
avatar
minmoong0828
세계수
강의 보고 풀면 할만합니다
avatar
daeseong
시스템 해킹 입문
매우 어려운!
Ma_Mu0228
대표 업적 없음
1. 스택에 경로 넣을 때 먼저 null 넣기 2. 리틀에디안 방식으로 스택에 정확한 경로 넣기 2. 필요한 셸코드 정확하게 추출하기 3. pwn 모듈 사용해서 서버에 데이터 전송할 줄 알기 4. 문제 파일에 있는 소스코드 해석하기 p.s. shellcraft 사용 안하는 강의 방식은 초보자에겐 진짜 어려운 것 같아요
avatar
스카이넷
워게임 고인물
ez
avatar
EnUm
시니어
어려우신 분들에게 도움을 드리자면 문제 상에서는 execve가 막혔다고 했으니 orw 셸코드를 사용해서 읽는 방법을 사용해보세요
avatar
hy30nq
고목
겁나 어렵네여
O_F
대표 업적 없음
레벨 2
avatar
이찬형
Dreamhack CTF S3 Ⅵ - Div2 참여
손수 풀었습니다.