system
[LOB] darkelf
MOVE🔥
2016. 9. 27. 11:30
728x90
반응형
코드
코드는 이전 문제와 거의 유사하다. 하지만 check the length of argument 의 이름으로 첫번째 인자값인 argv[1] 의 길이가 48보다 큰지를 검사한다. 이를 우회하여 argv[2] 를 이용하여 buffer over flow 공격을 수행한다.
공격
취약한점을 찾고 buffer over flow임을 알았고, 우회해야 되는 조건들을 알았으니 공격을 시작한다.
argv[1]은 buffer를 채우는데에 사용하고 argv[2]에 공격 코드를 적재하는 방식으로 공격을 수행한다.
1. 떨어져 있는 거리 구하기
(이전과 동일)
2. 인자 값 주소 확인하기
(이전과 동일)
argv[1] = 0xbffffbff
1. Payload 작성
[40Byte Buffer] + [4Byte SFP] + [RET] 이기 때문에
[40Byte Buffer] + [4Byte SFP] + [RET(0xbf....)] + [nop] + [shellcode] 와 같이 작성 하면 된다.
---------------------------------------------- -------------------
argv[0] (48Bytes) argv[1]
결과
쉘 획득
728x90
반응형