일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 연결리스트
- heap
- ROP
- 분할 정복
- DFS
- 이진트리
- tcache
- 큐
- 투 포인터
- 다이나믹 프로그래밍
- 문자열 처리
- 스위핑 알고리즘
- 이진 탐색
- 브루트 포스
- 이분 탐색
- fsb
- BFS
- BOF
- House of Orange
- 백트래킹
- 동적 계획법
- OOB
- 완전 탐색
- off by one
- 스택
- RTL
- syscall
- 수학
- 에라토스테네스의 체
- 포맷스트링버그
- Today
- Total
목록분류 전체보기 (218)
SDJ( 수돈재 아님 ㅎ )
이번에 동아리의 신입들의 C언어 테스트를 위해 hustoj를 설치할 계획을 세웠다. 이전에 노트북으로 oj 서버를 돌려본 이력이 있긴 하지만 24시간동안 노트북을 켜놓진 않을거라.. 이 서버를 GCP에 옮겨서 꿀잠 자면서도 서버를 돌아가게 만들고 싶어서 GCP에 빠르게 VM을 생성했다. 이전에 노트북에서 구축을 할 때는 쉽게쉽게 해서 GCP도 금방 할 줄 알았는데.. 서버의 작동 원리(?)라 해야하나.. 약간 이런부분이 처음이라 502 bad gateway 떴을 때 엄청 당황했다. 그래서 나중에 나같이 당황하는 사람이 있으면 도움이 되기를 바라면서.. 글을 끄적인다. 일단 hustoj 구축 방법에 대해 설명을 해둔 글들을 구글에 쳐보면 나온다. hustoj github인 https://github.com..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호기법은 Partial RELRO, NX가 활성화 되어있다. 바이너리를 분석해보자. 먼저 sub_40074C()함수를 보면 다음과 같다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 int sub_40074C() { int result; // eax char buf; // [rsp+0h] [rbp-590h] char v2; // [rsp+190h] [rbp-400h] puts("What say you now?"); read(0, &buf, 0x12CuLL); if ( !strncmp(&buf, "Everything intelligent is so boring.", 0x24uLL) ) result = sub_400705(&v2); else result = puts("What a ho-hum..
보호기법은 다음과 Partial RELRO와 NX가 걸려있다. 바이너리를 분석해보자 speedrun 문제는 다 간단한 문제들이라 취약점은 쉽게 보인다. sub_400B60()함수를 보면 1 2 3 4 5 6 7 8 __int64 sub_400B60() { char buf; // [rsp+0h] [rbp-400h] sub_410390("Any last words?"); sub_4498A0(0, &buf, 0x7D0uLL); return sub_40F710((unsigned __int64)"This will be the last thing that you say: %s\n"); } BOF가 터지는게 보인다. 이 바이너리는 Dynamic linkingdynamically linked이 아니라 staticall..
시스템 Exploitation 기법중 RTL에 관한 글이다. RTL ( Return-to-libc ) 기법 32 bit RTL 64 bit RTL 로 구성되어있다. 이 글을 읽고 나면... RTL을 연속적으로 트리거하는 RTL chaining에 대해 알아보자. 2020/05/28 - [study/pwnable] - [Exploitation Technique] RTL chaining RTL ( Return-to-libc ) ? 먼저 linux 바이너리에는 Dynamic Linking을 했ㅇ르 시 라이브러리 공유를 위해 코드영역이나 데이터영역에 libc가 로드되어 있다. RTL이란 이렇게 남아있는 libc를 가지고 NX를 우회하는 기법을 의미하는데, NX는 stack과 같은 부분에 execute 권한을 지워..