Information Security
[Dreamhack] basic_rop_x86 본문
https://dreamhack.io/wargame/challenges/30/
basic_rop_x86
Description 이 문제는 서버에서 작동하고 있는 서비스(basicropx86)의 바이너리와 소스 코드가 주어집니다. Return Oriented Programming 공격 기법을 통해 셸을 획득한 후, "flag" 파일을 읽으세요. "flag" 파일의
dreamhack.io
문제 파일을 확인해보자
<basic_rop_x86.c>
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <unistd.h>
void alarm_handler() {
puts("TIME OUT");
exit(-1);
}
void initialize() {
setvbuf(stdin, NULL, _IONBF, 0);
setvbuf(stdout, NULL, _IONBF, 0);
signal(SIGALRM, alarm_handler);
alarm(30);
}
int main(int argc, char *argv[]) {
char buf[0x40] = {};
initialize();
read(0, buf, 0x400);
write(1, buf, sizeof(buf));
return 0;
}
buf에 0x40의 공간을 할당하고 read로 0x400바이트 만큼의 데이터를 읽어들이는 코드이다
실행하여 어떤 기능을 하는지 살펴보자
입력을 먼저 받고 같은 문자열을 다시 출력해준다
출력해준 후 자동으로 종료된다
어셈블리어로 분석해보자
exploit 했을 때 계속 이렇게 나옴 ..
다시 도전
참고 블로그
https://kkomii22.tistory.com/83
ROP(Return Oriented Programming)를 이용한 시스템 해킹
이 게시글은 Protostar stack7 문제를 다룰 것이다. x86 기반의 문제 파일이 필요하다 디버깅을 해서 system()의 주소, /bin/sh의 주소를 확인한다 패턴을 이용해서 스택의 첫 요소까지의 값(패딩 값)을 확
kkomii22.tistory.com
'INTERLUDE > System Hacking' 카테고리의 다른 글
[Pwnable.kr] fd (0) | 2024.01.16 |
---|---|
[Dreamhack] sint (0) | 2022.11.22 |
[Dreamhack] out_of_bound (0) | 2022.11.15 |
[Dreamhack] Return to Shellcode (0) | 2022.11.10 |
[Dreamhack] ssp_001 (0) | 2022.11.03 |