Beginner

shell_basic

pwnable
  • 문제 정보
  • 풀이 204
  • 난이도 투표 31
  • 질문 66
  • 최근 풀이자 4528
  • 댓글 96

문제 설명

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
$

난이도 투표 31

질문 60

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

shell_basic

pwnable

출제자 정보

avatar
Dreamhack
대표 업적 없음

First Blood!

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

최근 풀이자 4528

seonI-I
대표 업적 없음
kvivnvvv
대표 업적 없음
navytuner
대표 업적 없음
avatar
tnalsqnd
대표 업적 없음
LeJus
대표 업적 없음
donok
대표 업적 없음
kjh2448
대표 업적 없음
hanby
대표 업적 없음
avatar
정콩이
대표 업적 없음

댓글 96

avatar
Secbin08
시니어
shellcraft로 쉽게 풀었는데 ㅜㅜ 나중에 직접 어셈도 짜봐야겠다.
pentestMage
대표 업적 없음
NASM, binutils, xxd, pwntools shellcode : 에 cat으로 flag 파일의 위치와 이름을 읽혀야 되는줄 알고 삽질 엄청했다...ㅋ 내가 봤을 땐 이게 역대급으로 어려웠는데 푼 사람이 되게 많네
pjmzxc123
시스템 해킹 초심자
하하하 맥에서는 pip 버그가 참 많아요
RUMIO
대표 업적 없음
초심자는 꼭 강의 보고 오시는 것을 추천드립니다! 코드 참고하시면 편합니다
hyon3034
대표 업적 없음
shellcraft를 처음 써봤어요 !!
AKO
플래툰
뭐.. 그냥 저냥 ORW shellcode 가 무엇인지 사용해봐라 이런 느낌
dan_hack
대표 업적 없음
문제랑 코드만 보고서는 문제를 전혀 이해할 수가 없습니다... 강의에서 나온 내용은 예시로 나온 코드를 이해하는데 도움은 주지만 이 문제의 핵심을 알아내기에는 단순히 강의만 보고서는 역부족인 것 같습니다ㅠㅠ 조금 더 문제에 대해 설명이 추가되면 좋겠습니다
뚜비123
대표 업적 없음
쉘 코드도 직접 만들어보고 shellcraft 툴도 써봤네요 공부 많이 됐습니다
Choish
대표 업적 없음
뭐가 틀렸는지나 알면 다행인데 뭐가 틀렸는지도 모르고 답이 안나오니 너무 답답하네요
avatar
daeseong
올라운더
매우 어려운!