rop
-
[HackCTF] Unexploitable #1, Unexploitable #2 Write-up표튜터와 함께하는 Pwnable/HackCTF Write-up 2019. 7. 18. 13:24
요즘 다른거 하느라 바빠서 진짜 오랜만에 포너블을 풀었다.. ㅠㅠ많이 까먹었을까봐 걱정했는데 그래도 새록새록 떠올라서 다행이다.이번에 풀어볼 문제는 Unexploitable #1과 Unexploitable #2 라는 문제이다.두 문제가 같은 방식으로 풀리므로 한 번에 진행하도록 하겠다.기준은 Unexploitable #1을 기준으로 설명을 진행하도록 하겠다. 음.. 푸는 방법은 쉽게 떠올랐지만 뭔가 gadget을 사용하는 센스가늦게 떠올라서 생각보다 시간이 걸렸다... 우선 바이너리를 보도록 하겠다. 64bit이며 dynamically linked 방식을 이용하고 있다. Mitigation의 경우 NX bit만 걸려있어서 .data, stack, heap 영역에실행권한이 없고 Partial RELRO이기..
-
[HackCTF] Gift Write-up표튜터와 함께하는 Pwnable/HackCTF Write-up 2019. 4. 25. 19:22
이번에 풀 문제는 Gift이다. 해당 문제는 NX만 걸려있는 상태이다. 문제를 실행시켜보았다.프로그램이 실행되면 어떠한 주소 두 개를 출력해주고사용자에게 입력을 받는다. 나는 "aaaa"을 입력하였다.입력 후에는 내가 입력한 문자열이 출력되고한번 더 사용자에게 입력을 받는다. IDA를 이용해서 코드를 보도록 하겠다.굉장히 간단한 코드였다. 그리고 출력해주는 주소는 binsh과 system이었다. binsh은 "/bin/sh"이 아닐까? 하는 생각을 했었는데 눈으로 확인해보니그냥 고정주소인 영역을 준 것 같았다. 이름을 binsh이라고한 것으로보아 이 곳에 "/bin/sh"을 넣어서 쓰라고 준 것 같다. system의 경우 system 함수였다. 역시 ASLR이 걸려있어서계속해서 주소가 바뀌므로 기준으로 ..
-
[HackCTF] ROP Write-up표튜터와 함께하는 Pwnable/HackCTF Write-up 2019. 4. 24. 00:47
이번 문제는 ROP이다. 제목 그대로 아주 기본적인 ROP였다.그래서 처음 접한다면 어려울 수 있으나 한번이라도 ROP를해봤다면 굉장히 쉬운 문제가 될 것이다. 역시 문제 제목이 ROP라 그런지 Partial RELRO였다. 즉, Got Overwrite가 가능했고 NX가 걸려있으므로Stack이나 Heap 영역에 실행권한이 없는 상태이다. 우선 문제를 실행시켜보았다.사용자로부터 입력을 받았고 입력 후에는"Hello, World!"라는 문자열을 출력해주었다. 여기까지 진행했을 때 이 입력하는 부분을공략하게 될 것이라고 예측했다. 아니나 다를까 굉장히 친절하게도 이 문제에서는대놓고 함수명이 취약한 함수였다ㅋㅋㅋ 해당 함수를 보니 예상한대로 입력하는 부분이 존재했고버퍼보다 큰 값을 입력할 수 있었다. 이 부분..