포맷 스트링 버그(Format String Bug) 이해 - II


포맷 스트링 버그(Format String Bug) 이해 - II

아래 링크를 달아 둔 <포맷 스트링 - I>(포맷 스트링의 기본 개념 등을 담고 있음)에 이어 이번에는 실제 이 포맷 스트링을 이용하여 라이브러리의 메모리 주소를 구해 다른 변수의 절대 메모리 주소도 구해보는 그런 내용을 살펴봅니다. 포맷 스트링 버그(Format String Bug) 이해 - I 이번에는 C언어 등에서 문자열을 출력할때 사용하는 포맷 스트링(format string)을 제대로 사용하지 않아 ... blog.naver.com 문제의 코드는 아래와 같습니다. 입력을 받고 포맷 스트링 취약점(포맷 스트링 없이 사용자 버퍼를 그대로 출력하는 것을 통해 취약점이 발생함을 알 수 있습니다.)을 테스트 할 기회는 여러 번 존재합니다(while문 참고). 결과적으로 전역 integer 타입 변수 "changeme"의 값을 1337로 바꾸는 것이 목표입니다. 그렇게 되면 친절하게도 system("/bin/sh"); 을 실행시켜서 셸을 주는 것을 알 수 있습니다. // Name: f...


#Assembly #pwnable #디버깅 #시스템보안 #시스템해킹 #시큐어코딩 #오프셋 #출력 #취약점 #포맷스트링 #pwn #printf #PIE #BSS #C #Clang #C언어 #dreamhack #format_string #fsb #fsb_overwrite #GDB #포맷스트링버그

원문링크 : 포맷 스트링 버그(Format String Bug) 이해 - II