FPO
-
FPO (Frame Pointer Overflow)System hacking training/Knowledge 2018. 4. 26. 00:57
안녕하세요. FPO (Frame Pointer Overflow) 에 대해 포스팅을 시작하겠습니다. 먼저 FPO 란? SFP의 1byte를 overflow (overwrite) 하여 실행코드가 있는 원하는 주소로 eip 를 변조하는 기법입니다. 이를 학습하기 위해서는 함수 에필로그 과정을 이해하고 있어야하는데요. LOB golem의 문제를 예로들겠습니다. 이 바이너리에는 main()와 problem_child 라는 서브 함수가 있습니다. problem_child 함수에는 buffer[40]으로 버퍼가 40byte 할당됩니다.또 이 바이너리는 buffer가 40byte 할당되었지만 SFP가 1byte 오버플로우가 일어납니다. 본격적으로 에필로그에 대해서 알아봅시다. 함수 에필로그에는 leave 와 ret i..
-
LEVEL 12 darkknight write-upSystem hacking training/Hackerschool LOB 2018. 4. 22. 03:42
golem -> darkknight 오늘은 golem을 풀이를 작성해보겠다. [문제 + 힌트] 문제를 보니 main()에서 하는 일은 인자가 2개 이상인지 검사하는 일뿐나머지의 처리는 problem_child()에서 처리한다. 그리하여 problem_child() 를 보니 기존의 bof 와는 다르게 strncpy()를 이용하여 입력의 길이를 제한했는데 buffer 는 40byte임에 불구하고 41byte 입력을 받을 수 있게 설계가 되어있다. 따라서 SFP의 하위 바이트 1byte를 Overflow(Overwrite) 할 수 있다. 그래서 뭘 할 수 있을까 생각하던 중 힌트 부분의 FPO가 보인다. FPO에 대해 알아봤는데 결정적인 힌트였다. FPO 란? ==> [Link] Frame Pointer Ov..