pwnable.kr 문제풀이

벌써 두번째 줄이네요 와~~~ 빨리 문제를 확인해 볼까요?? 문제를 보면 hint가 있네요 operator priority를 검색해보면 연산자 우선순위라고 나옵니다. 그렇다면 이번문제는 연산자 우선순위에 관련된거라고 예측해 볼 수 있겠네요. 코드를 보면 이상한점이 보이시나요?? if문을 보면 괄호가 이상하게 되어있습니다. 원래대로라면 괄호가 있어서 =연산을 먼저하고
자 pwnable.kr 사이트를 보면 코드와 어셈블리 코드를 주네요. 코드를 해석해보면 key1값 key2값 key3값을 다 더하면 key가 되고 flag를 얻을수 있습니다. 그럼 이제 어셈블리 코드를 보며key1,2,3값을 구해봅시다. 어셈블리 main문의 코드를 보면 key 1,2,3,밑에줄에는 모두 mov라는 레지스터를 이용해서 r0의 값을 옮기고 잇습니다. arm레지스터에서는 r0은 주소값을 담고 있는데 그렇다면 r0의 주소값을 구해야 합니다. 그렇다면 key 1,2,3의 주소값을 구해볼까요 우선 key1을 보면 pc의 값을 r3에 옮기고 r3의 값을 r0에 옮기고 있네요 근데 여기서 pc는 파이프라인으로 pc가 있는 값에 8만큼 뒤에 값을 가르킵니다. 그래서 key1의 값은 00008ce4가 되..
3번째 문제는 bof문제입니다. FTZ와 LOB를 풀어보신분들은 다 들어보셨을 내용인데요 우선 코드를 먼저 봅시다. main함수부터 보시면 func함수는 0xdeadbeef네요. 그리고 func함수를 보시면 문자형인 overflowme[32]바이트를 선언하고 print를 통해서 overflow me : 를 출력하네요. gets라는 함수를 통해서 (overflowme)를 입력받는데 이때 취약점이 발생합니다. // gets라는 함수는 문자열을 입력받는데 문자열의 개수를 검사하지 않습니다. key와 0xcafebabe가 같으면 /bin/sh 권한을 얻을수 있네요. 그렇다면 cafebabe의 값을 오버플로우를 이용해서 덮어주면 /bin/sh권한을 얻을 수 있겠죠 그렇다면 overflowme와 key의 거리를 알..
애기건듀
'pwnable.kr 문제풀이' 카테고리의 글 목록 (2 Page)