PCTF Butterfly writeup
St1tch
헥스레이 결과를 토대로 문제를 살펴보면 위 그림에서 첫번째 mprotect함수가 실행되고 두번째 mprotect함수가 실행되기 전에 사용자가 원하는 주소의 한바이트를 바꿀 수 있는 취약점이 있다. 이를 이용해서 공격을 해야하는데 한바이트만 바꿔서는 딱히 방법이없다.그리고 aslr이 적용되어 있기때문에 고정된 주소를 이용해서 공격을 해야한다. 우선 첫번째로 함수가 바로 끝나지 않게 트리거를 시켜줄 주소를 정해서 바이트를 수정한 뒤, 적당한 주소에 쉘코드를 넣고, 다 넣은후에는 다시 쉘코드가 있는 주소를 call할 수있게끔 바이트를 수정하면 쉘코드를 실행할 수 있다. 0x400860에 add rsp, 0x48 이 있는데 rsp에는 입력한 값이 저장이 된다.따라서 오퍼랜드 값을 작게 바꿔주면 rip를 조정 할..