[dreamhack.io] 「Bypass IO_validate_vtable」 풀이


[dreamhack.io] 「Bypass IO_validate_vtable」 풀이

Dreamhack 난이도 이름 Bypass IO_validate_vtable 개인적으로는 이해하는데 많이 힘들고 어려웠습니다. 지금도 힘들지만요. 미리 알아둘 것 _IO_FILE 구조 이해 (한 3일만에 들어오는 것 같네요. 포럼 참석하고 극악 난이도를 자랑하는 트러블슈팅을 하다가 지쳐 나가떨어져서 블로그에 물주는것도 공부하는것도 새까맣게 까먹고 있었습니다.) 이번에는 리눅스 파일 시스템의 _IO_FILE 에서 파일 관련 함수가 호출될 때 vtable을 호출합니다. 이 vtable에는 데이터를 어디서부터 어디까지 읽어서 처리할지에 대한 정보가 담겨 있기 때문에, 이 vtable에 직접 접근하여 임의로 쓰기를 한다면 이상한 다른 접근 불가능해야 할 파일의 내용을 읽거나, 거기에 뭔가를 쓰는 작업을 할 수 있습니다. (Arbitrary Address Read/Write) 따라서 대략 glibc 2.27. 버전 이후부터는 IO_validate_vtable() 함수를 통해 이 vtable에...


#_IO_FILE #풀이 #파일구조체 #워게임 #쉽지는않음 #writeup #wargame #GDB #FSOP #fopen #fclose #C #Bypass_IO_validate_vtable #해설

원문링크 : [dreamhack.io] 「Bypass IO_validate_vtable」 풀이