전체 글278 [Dreamhack System Hacking Advanced] STAGE 3 - 혼자 실습 보호되어 있는 글 입니다. 2022. 9. 18. [Dreamhack System Hacking Advanced] STAGE 3 - 함께 실습 Exploit Tech: Master Canary 마스터 카나리는 로더에서 할당한 TLS 영역에 존재하고, 해당 페이지는 읽기 및 쓰기 권한이 있다. 이번에는 함수에서 카나리를 스택 버퍼에 삽입할 때 참조하는 마스터 카나리를 덮어쓰는 실습을 할 예정이다. 다음은 이번 실습에서 사용할 예제 코드이다. // Name: mc_thread.c // Compile: gcc -o mc_thread mc_thread.c -pthread -no-pie #include #include #include #include void giveshell() { execve("/bin/sh", 0, 0); } void init() { setvbuf(stdin, 0, 2, 0); setvbuf(stdout, 0, 2, 0); } vo.. 2022. 9. 18. [Dreamhack System Hacking Advanced] STAGE 3 Background: Master Canary 스택 카나리에 대해서 깊게 파해쳐보자. 이해가 잘 안되면 기초과정의 Stack Canary 다시 보기..!! Thread Local Storage Thread Local Storage Thread Local Storage (TLS)는 스레드의 저장 공간을 의미한다. ELF 바이너리를 살펴보면, 각각의 목적을 가진 섹션에서 데이터를 관리하고 있다. ex) .text, .data 등... 이와 달리 TLS 영역은 스레드의 전역 변수를 저장하기 위한 공간으로, 로더(Loader)에 의해서 할당된다. 다음은 로더에서 TLS 영역을 할당하고 초기화하는 함수인 init_tls의 코드이다. static void * init_tls (void) { /* Construct .. 2022. 9. 18. [Dreamhack System Hacking Advanced] STAGE 2 - 혼자 실습 보호되어 있는 글 입니다. 2022. 9. 18. [Dreamhack System Hacking Advanced] STAGE 2 - 함께 실습 Exploit Tech: Bypass SECCOMP 정의된 SECCOMP 규칙을 우회하는 방법을 알아보고 해당 기술이 적용된 예제를 공격해보자. Bypass SECCOMP SECCOMP는 시스템 콜 뿐만 아니라 전달되는 인자까지 추적하고 비교할 수 있다. 인자를 비교하는 것은 너무 많은 예외 상황이 있을 수 있기 때문에 많은 개발자들은 시스템 콜을 호출하지 못하도록 설정한다. 타 시스템 콜 호출 같은 기능을 하는 서로 다른 시스템 콜이 몇 가지 존재한다. ex) 파일을 열기 위해서 사용하는 시스템 콜 : open, openat 만약 규칙이 open 시스템 콜을 호출하지 못하도록 정의되어 있다면 openat을 사용해 개발자가 의도하지 않은 행위를 할 수 있다. Application Binary Interf.. 2022. 9. 18. [BOJ] 2022 SISS 2학기 스터디 - 2주차 #2161 : 카드1 (자료구조 Silver 5) [문제] [코드 및 결과] #include #include using namespace std; int main() { int n; queue q; cin >> n; for (int i = 1; i num; v.push_back(num); } sort(v.begin(), v.end()); cin >> m; for (int j = 0; j > num; cout t; while (t--) { cin >> n; for (int j = 0; j > note1[j]; } sort(note1, note1 + n); cin >> m; for (int j = 0; j > note.. 2022. 9. 18. [게임 해킹과 보안] FPS 오픈소스 게임핵 개발과 시큐어 코딩 (5) 보호되어 있는 글 입니다. 2022. 9. 12. [BOJ] 2022 SISS 2학기 스터디 - 1주차 #1417 : 국회의원 선거 (자료구조 Silver 5) [문제] [코드 및 결과] #include #include using namespace std; int main() { int n, m, candidate, ans = 0, temp; priority_queue pq; cin >> n >> m; for (int i = 0; i > candidate; pq.push(candidate); } while (!pq.empty() && (pq.top() >= m)) { temp = pq.top(); pq.pop(); ans++; m++; pq.push(temp - 1); } cout n; while (n--) { cin >> name >> inout; if (inout ==.. 2022. 9. 11. [Dreamhack CTF] write-up 보호되어 있는 글 입니다. 2022. 9. 11. 이전 1 2 3 4 5 6 ··· 31 다음