분류 전체보기

System Hacking Advanced

[dreamhack] cpp_type_confusion

개념정리type confusion은 프로그램에서 사용하는 변수나 객체를 선언/초기화했을 때와 다른 타입으로 사용할 때 발생하는 취약점이다. C와 C++로 만들어진 프로그램에 Type Confusion 취약점이 존재한다면 메모리 커럽션이 유발되어 공격자가 시스템을 장악하는 것이 가능하다. 이러한 취약점은 형 변환(Type Casting)과정에서 발생한다. cast는 변수, 객체의 형태를 기존과 다른 타입의 형태로 바꾸는 것을 말한다. C++에서 객체의 형태를 변환할 때 사용되는 연산자는 다음과 같다. ○ 연산자 종류dynamic_cast런타임에 타입을 체크하여 다운캐스팅을 수행하는 연산자다. 다운캐스팅 시 안전한 형변환이 가능한 경우에만 캐스팅을 수행하며, 안전하지 않은 경우에는 NULL 포인터를 반환한다..

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_vtable()if (__glibc_unlikely (offset >= section_length)) _IO_vtable_check ();vtable 주소가 _libc_IO_vtables 영역에 포함되지 않으면 IO_vtable_check 함수를 호출하여 검증하는 방식이다. ○ _IO_vtable_chec..

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..

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