rop(2)
-
Protostar Stack7 [ROP]
Protostar Stack7번 문제입니다 [ 그림1 ] 리턴주소에 6번문제보다 더 강한 규약이 걸려있습니다단순한 RTL( Return to Libc )기법으로 사용할 수 없고 ROP( Return Oriented Programming )기법과 함께 사용합니다 objdump명령어를 이용해서 " ret "명령어의 주소를 알아옵니다 [ 그림2 ] 얻어온 " ret "주소를 RET에 덮어씌워주고 RTL기법을 사용하면 된다 다른 설명은 5번과 6번문제에서 해놓았으므로 생략하겠습니다
2017.06.12 -
Protostar Stack6 [Channing RTL]
Protostar Stack6번 문제입니다RTL ( Return to Libc ) 기법을 사용하는 문제입니다RTL을 응용해서 Channing RTL 기법까지 사용해보겠습니다 [ 그림1 ] 소스코드를 보시면 변수 " ret "에 __builtin_return_address(0) 함수를이용해서 getpath()함수의 리턴주소를 저장합니다" ret "의 값과 " 0xbf000000 " 을 and연산합니다. 즉," ret "에 저장된 주소의 시작부분이 " bf "일 때 함수는 종료됩니다 이러한 방어기법은 쉘 코드를 버퍼에 올린 후 쉘 코드 주소를 RET에 덮어씌우는 공격을 방어하려고 고안되었습니다해당 방어기법을 무력화시킨 공격기법이 바로 " RTL "입니다 ( http://itsaessak.tistory.com..
2017.06.12