이번에도 함수 포인터 문제인데 조금 다르다
다른 함수 뭐 이런 것이 없고 setreuid로 권한을 올린다음에 call()을 호출한다
뭐지? 그리고 call의 포인터로 printit()함수를 실행한다
함수 내용은 볼게 없다
음…. 그래서 생각한 것인데
함수 포인터도 포인터이다
그냥 BOF처럼 공격하면 그것을 실행하지 않을까?
그러기 위해 우선 스택 구조부터 살펴보자
보아 하니 전단계의 스택과 똑같다고 생각한다 그렇다면 스택은 다음과 같다
우리는 기본적인 BOF를 사용할 생각이다
Buf에 쉘코드를 넣으려 했지만 ASLR때문에 그게 여의치 않다
그래서 환경변수에 쉘코드를 넣고 그 주소를 call에 담으려 한다
그럼 자연적으로 call은 쉘코드의 시작주소를 가리키고 그걸 호출하니 실행이 될 것이다
그럼 공격을 해보자
성공했다! 저 파일은 원본파일을 복사한것으로 setuid가없어 권한상승이 안된것이다
Phantom@TeamH4C