profile
사는게 쉽지가 않네요
post-thumbnail

[dreamhack][writeup] System-stage7 : basic_rop_x64

buf와 rbp 사이의 바이트 수를 구해야 한다.read 함수 호출 직전에 rsi 레지스터로 rbp-0x40 주소가 들어가는 것을 확인할 수 있다.buf 주소 : rbp-0x40flag : DH{357ad9f7c0c54cf85b49dd6b7765fe54}

2023년 5월 21일
·
0개의 댓글
·
post-thumbnail

[dreamhack][writeup] System-stage7 : basic_rop_x86

카나리가 없다. buf 와 ebp 주소 사이 바이트 수만 구하면 될 것 같다.buf와 ebp 주소 사이 바이트 수read 함수에서 buf 가 두번째 인자로 들어가고 있다. read 함수 호출 직전에 esp-4 에 들어있는 값이 무엇인지 확인해보자esp-4 에는 ebp-

2023년 5월 21일
·
0개의 댓글
·
post-thumbnail

[dreamhack][writeup] System-stage7 : rop

이번 문제는 Return to Library 와 달리 system 함수가 실행되지 않는다.RELRO 가 Partial RELRO 이므로 GOT Overwrite 가 가능하다.카나리를 우회하기 위해서 다음과 같은 정보가 필요하다.buf와 canary 주소 차이canary

2023년 5월 21일
·
0개의 댓글
·
post-thumbnail

[dreamhack][writeup] System-stage7 : Return to Library

해당 바이너리에는 PIE 기법이 적용되어 있지 않으므로 데이터 영역과 코드영역의 주소는 변경되지 않는다.위 코드에서는 system 함수가 실행되었으므로, PLT 에 system 함수가 등록되었을 것이다. Return to PLT 기법을 사용하여 exploit 코드를 작

2023년 5월 21일
·
0개의 댓글
·
post-thumbnail

[dreamhack] System-stage7 : NX & ASLR

ASLR(Address Space Layout Randomization) 은 바이너리가 실행 될 때마다 스택, 힙, 공유 라이브러리 등을 임의의 주소에 할당하는 보호 기법이다.ASLR 은 컴파일러에서 설정하는 것이 아닌 커널에서 지원하는 보호 기법 이며, 다음 명령어로

2023년 5월 21일
·
0개의 댓글
·
post-thumbnail

[dreamhack] System-stage7 : Static Link vs Dynamic Link

라이브러리는 컴퓨터 시스템에서, 프로그램들이 함수나, 변수를 공유해서 사용할 수 있게 한다.대부분 프로그램은 prinf, scanf, strlen, memcpy, malloc 과 같이 공통으로 사용하는 함수들이 많은데, 이렇게 자주 사용되는 함수들의 정의를 묶어서 하나

2023년 5월 21일
·
0개의 댓글
·
post-thumbnail

[dreamhack][writeup] System-stage6 : ssp_001

아래 코드 부분을 보면 idx 를 통해 box 배열의 인덱스의 값에 접근할 수 있다. 해당 코드에서는 idx 에 해당 검증이 없어서 메모리 leak 이 가능하다.다음 코드를 코면 name_len 을 입력값으로 받아서 해당 크기만큼 name 배열에 입력을 받고 있다. n

2023년 5월 13일
·
0개의 댓글
·
post-thumbnail

[dreamhack] System-stage6 : Exploit Tech - Return to Shellcode

이번 장에서는 카나리를 우회하고 쉘 코드와 return address overwrite 을 이용하여 쉘을 획득하는 실습을 할 것이다.사용할 예제코드는 다음과 같다.리눅스에는 다양한 바이너리 보호기법이 존재한다.적용된 보호기법에 따라 익스플로잇 설계가 달라지므로, 분석을

2023년 5월 13일
·
0개의 댓글
·
post-thumbnail

[dreamhack] System-stage6: Stack Canary

스택 카나리(canary) : 함수의 프롤로그에서 스택 버퍼와 반환 주소 사이에 임의의 값을 삽입하고, 함수의 에필로그에서 해당 값의 변조를 확인하는 보호 기법만약 에필로그 시에 카나리 변조가 확인되면 프로세스는 강제로 종료됨!!스택 버퍼 오버플로우 공격을 통해 반환

2023년 5월 13일
·
0개의 댓글
·
post-thumbnail

[dreamhack][writeup] System-stage5: basic_exploitation_001

주어진 파일은 32bit ELF 파일이다.main 함수에서는 buf 에 0x80 만큼의 크기를 할당하고 있으며, gets() 함수를 통해서 해당 버퍼에 입력값을 입력받고 있다.main 함수 위쪽에는 flag 내용을 출력하는 read_flag 함수가 있다.NX 보호 기법

2023년 4월 1일
·
0개의 댓글
·
post-thumbnail

[dreamhack][writeup] System-stage5: basic_exploitation_000

해당 파일은 32bit ELF 파일이다.main 함수를 봤을 때 크기 0x80 만큼의 버퍼가 설정되어 있고, 버퍼의 주소 출력 후, scanf() 에서 해당 버퍼에 입력값을 받고 있다.scanf() 함수에서 스택 버퍼 오버플로우 취약점이 발생하는 것을 확인할 수 있다.

2023년 4월 1일
·
0개의 댓글
·
post-thumbnail

[dreamhack][writeup] System-stage5: Return Address Overwrite

main 함수에서는 0x28 크기의 버퍼에 scanf() 함수를 통해 입력값을 받고 있다. 해당 부분에서 스택 버퍼 오버플로우 취약점이 발생하는 것을 확인할 수 있다.main 함수 위에는 /bin/sh 명령을 수행하는 get_shell() 함수가 있다.스택 버퍼 오버플

2023년 4월 1일
·
0개의 댓글
·
post-thumbnail

[dreamhack] System-stage5: Stack Buffer Overflow

스택 버퍼 오버플로우(Stack Buffer Overflow) 는 보안을 공부하지 않은 개발자들도 알만큼 유명하고 역사가 오래된 취약점이다.스택 버퍼 오버플로우는 스택 의 버퍼 에서 발생하는 오버플로우 를 뜻한다.버퍼 는 일상에서 '완충 장치' 라는 뜻으로 사용되며,

2023년 4월 1일
·
0개의 댓글
·
post-thumbnail

[dreamhack] System-stage5: 호출 규약

함수 호출 규약은 함수의 호출 및 반환에 대한 약속이다.한 함수에서 다른 함수를 호출할 때, 프로그램의 실행 흐름은 다른 함수로 이동한다.그 후 호출한 함수가 값을 반환하면, 다시 원래 함수로 돌아와서 기존의 실행 흐름을 이어나간다.그러므로 함수를 호출할 때는 반환된

2023년 4월 1일
·
0개의 댓글
·
post-thumbnail

[dreamhack][writeup] System-stage4: shell_basic

해당 소스 코드를 봤을 때 사용자에게 셸코드의 바이트코드를 받아서 해당 바이트 코드를 실행시키는 프로그램인 것 같다./home/shell_basic/flag_name_is_loooooong 이름의 flag 파일을 읽고 출력하는 ORW(open-read-write) 셸코

2023년 4월 1일
·
0개의 댓글
·
post-thumbnail

[dreamhack] System-stage4 : Shellcode

Exploit상대 시스템을 공격하는 것"부당하게 이용하다" 라는 뜻셸코드는 익스플로잇을 위해 제작된 어셈블리 코드 조각이다.일반적으로 셸을 획득하기 위한 목적으로 셸코드를 사용하기 때문에 특별히 "셸" 이 접두사로 붙은 것!!셸코드는 어셈블리어로 구성되므로 공격을 수행

2023년 4월 1일
·
0개의 댓글
·
post-thumbnail

[dreamhack] Stage3 - Tool Installation

컴퓨터 과학에서는 실수로 발생한 프로그램의 결함을 버그 라고 한다.이러한 버그 들을 찾아서 패치하기 위해 디버거(Debugger) 라는 도구가 개발되었다.디버거는 문자 그대로 버그를 없애기 위해 사용하는 도구이다.디버거를 통해 버그 발견이 쉬워짐으로써, 개발자들은 버그

2023년 3월 25일
·
0개의 댓글
·
post-thumbnail

[dreamhack] System-stage2 : background - Computer Science

Background: Linux Memory layout 1. 서론 코스 소개 컴퓨터는 크게 CPU 와 메모리로 구성되어 있으며, CPU는 실행할 명령어와 명령어 처리에 필요한 데이터를 메모리에서 읽고, Instruction Set Architecture(ISA) 에

2023년 3월 25일
·
0개의 댓글
·
post-thumbnail

[dreamhack] System-stage1

본 강의는 C언어와 파이썬에 대한 기본적인 이해가 필요.본 커리큘럼은 Ubuntu 18.04(x86-64)를 기반으로 작성원활한 실습을 위해서는 리눅스 가상 환경을 구축해야 함.이를 위해서 가상 머신 필요window+R 로 실행창을 연 후, winver 를 입력하여 윈

2023년 3월 23일
·
0개의 댓글
·
post-thumbnail

Java 향상된 for 문에 대한 고찰

자바에는 for-each 문이라고도 불리는 향상된 for문이 있다.배열이나 컬렉션에 있는 요소들을 순회할 때 사용하는 문법으로, 기존의 for 문보다 더 간결하게 코드를 작성할 수 있다.List와 Set 인터페이스에는 Iterator<E> 타입을 반환하는 iter

2023년 2월 23일
·
0개의 댓글
·