분류 전체보기

System Hacking Advanced

[dreamhack] cpp_string

checksec└─# checksec cpp_string[*] '/root/dream/cpp_string/cpp_string' Arch: amd64-64-little RELRO: Partial RELRO Stack: Canary found NX: NX enabled PIE: No PIE (0x400000)문제풀이//g++ -o cpp_string cpp_string.cpp#include #include #include #include #include char readbuffer[64] = {0, };char flag[64] = {0, };std::string writebuffer;int read_file(){ std::ifstream ..

대외활동

[KITRI BoB] BoB 11기 수료 후기

안녕하세요. 평소 "~다"체를 사용하는 "keyme"입니다. 이미 BoB 12기 발표가 끝났고 늦은 감이 있긴하지만, 앞으로 BoB 교육생으로써 활동할 예정이신 분들을 위해 BoB 11기 수료 후기를 남기려고 합니다! 참고로 저는 "취약점분석" 트랙 수료생이며, 글의 개연성보다는 개인적으로 느낀점을 나열하는 방식으로 작성했으므로 가볍게 읽고 참고만 하시면 좋을 것 같습니다! ○ 교육에 앞서BoB 교육을 듣기에 앞서 취약점 분석 트랙 교육생이라면? 다음과 같은 조건이 충족되어야 수업을 듣기에 원활하다고 생각합니다.(+ 다른 트랙 교육생분들도 이 조건이 충족된다면 당연히 좋다고 생각합니다.) 물론, 개인적인 생각이므로 참고만 하시면 좋을 것 같습니다. 취약점분석 트랙 교육생이라면 기본적으로 대표적인 워게임 ..

대외활동

[KITRI BoB] BoB 11기 합격 후기

안녕하세요! 평소 "~다"체를 사용하는 "keyme"입니다. 이번에는 다가오는 BoB 12기를 준비하시는 분들에게 도움이 되고자 글을 작성하려고합니다. 서류전형이 5/31까지라서 늦은 감이 있는 것 같지만, 보는 분들 모두에게 조금이라도 도움이 됐으면 좋겠습니다. 합격후기선발과정은서류접수 > 서류전형 > 필기전형 > 면접전형으로 구성되어있습니다. 작년 기준으로 합격 경쟁률은 5.5:1 정도였는데요. 이번에는 어느정도 경쟁률이 나올지 궁금하네요.+ 12기는 7.3:1이네요 ㄷㄷ 1) 서류접수서류접수는 "자기소개서", "동아리활동", "지도자 인재추천서"를 제출하는 형태인데요. 최대한 본인이 제출할 수 있는 것들을 녹여내서 자신을 어필하는 것이 중요한 단계인 것 같습니다. 특히, 개인적으로 대학교를 재학중이..

System Hacking Advanced

[dreamhack] Bypass IO_validate_vtable

개념정리glibc 2.27 버전부터 vtable에 대한 검증로직이 추가됐다. 이전 버전에서는 파일 포인터의 vtable 포인터를 덮을 수 있는 상황이라면 파일 함수가 참조하는 함수 포인터의 주소를 덮어써서 쉽게 공격할 수 있었다. 그러나 IO_validate_vtable 함수가 생겨나면서 이전 버전에서는 더 이상 같은 기법으로 공격할 수 없다. 어떻게 검증로직이 추가됐는지 알아보자. ○ IO_validate_vtableif (__glibc_unlikely (offset >= section_length)) _IO_vtable_check ();검증 로직은 vtable 주소가 _libc_IO_vtables 영역에 존재하지 않는다면 IO_vtable_check 함수를 호출하여 포인..

System Hacking Advanced

[dreamhack] _IO_FILE Arbitrary Address Write

개념정리파일을 읽고 쓰는 과정은 라이브러리 함수 내부에서 파일 구조체의 포인터와 값을 이용한다. 파일 구조체를 조작해서 임의의 주소에 쓰기를 수행하는 취약점에 대해 알아볼 것이다. 파일 내용을 읽는 대표적인 함수는 fread, fgets가 있다. 해당 함수는 라이브러리 내부에서 _IO_file_xsgetn 함수를 호출한다. ○ _IO_file_xsgetn_IO_size_t_IO_file_xsgetn (_IO_FILE *fp, void *data, _IO_size_t n){ _IO_size_t want, have; _IO_ssize_t count; _char *s = data; want = n; ... /* If we now want less than a buffer, underflo..

System Hacking Advanced

[dreamhack] _IO_FILE Arbitrary Address Read

개념정리파일을 읽고 쓰는 과정은 라이브러리 함수 내부에서 파일 구조체의 포인터와 값을 이용한다. 파일 구조체를 조작해 임의의 메모리를 읽는 취약점에 대해 알아볼 것이다. 취약점에 대해 소개하기 전에 파일 쓰기 과정이 어떤 함수와 로직을 통해 진행되는지 분석해보자. 파일에 데이터를 쓰기 위한 함수는 대표적으로 fwrite, fputs가 있다. 해당 함수는 라이브러리 내부에서 _IO_sputn 함수를 호출한다. ○ _IO_XSPUTN#define _IO_sputn(__fp, __s, __n) _IO_XSPUTN (__fp, __s, __n)_IO_size_t_IO_new_file_xsputn (_IO_FILE *f, const void *data, _IO_size_t n){ ... if (to_do + ..

keyme
'분류 전체보기' 카테고리의 글 목록 (6 Page)