소개
이전 기사에서는 인쇄 기능,형식 문자열 및 형식 문자열 취약점에 대해 논의했습니다. 이 문서에서는 형식 문자열 취약점을 악용할 수 있는 방법에 대한 개요를 제공합니다. 이 기사에서는 메모리에서 비밀을 누설하는 간단한 문제를 해결하는 것으로 시작합니다. 다음 글에서,우리는 또 다른 예를 논의 할 것이다,여기서 우리는 체인 형식 문자열 취약점 및 버퍼 오버플로 취약점은 더 나은 영향을 만들 수 있습니다.
형식 문자열 취약점을 어떻게 악용할 수 있습니까?
이전 문서에서 언급 한 바와 같이,다음은 형식 문자열 취약점을 사용하여 가능한 공격의 일부입니다.
- 누수 비밀
- 서비스 거부
- 누수 메모리 주소
- 메모리 주소 덮어 쓰기
이 기사에서는 처음 두 항목에 대해 설명합니다.
스택에서 비밀 유출
다음은 메모리에서 데이터를 읽을 수 있도록 간단한 형식 문자열 취약점을 악용하는 접근 방식을 이해하는 데 사용할 취약한 프로그램입니다.
#은<을 포함합니다.이 문제를 해결하기 위해 몇 가지 방법이 있습니다.이 문제를 해결하기 위해 몇 가지 방법이 있습니다.);
}
이 프로그램은 사용자 입력을 받아 인쇄하기 때문에 형식 문자열 취약점에 취약합니다. 따라서 프로그램을 취약하게 만듭니다.
이 문제를 해결하기 위해 어셈블러 코드를 덤프하는 데 도움이되는 몇 가지 방법이 있습니다.이 문제를 해결하기 위해 어셈블러 코드를 덤프하는 데 도움이되는 몇 가지 방법이 있습니다.198>
0000000000040113<+5>000000000040113<+8>: sub rsp,0x20
0x0000000000401142 <+12>: mov DWORD PTR ,edi
0x0000000000401145 <+15>: mov QWORD PTR ,rsi
0x0000000000401149 <+19>: lea rax, # 0x402004
0x0000000000401150 <+26>: mov QWORD PTR ,rax
0x0000000000401154 <+30>: mov rax,QWORD (Read more…)