y0u_bat
[FC4] 2. cruel -> enigma 풀이 본문
[FC4] 2. cruel -> enigma 풀이
짤려서 안보이는데 리모트입니다.
canary가 있네여.
gdb로 보니 버퍼가 더미포함 260바이트네여..
일단 대충 ret뒤에는 무조건 카나리가 들어와야 됩니다.
오타는 무시해주세요..
strcpy가 00을 만나면 복사가 거기까지 해서 끝기는데요.
그래서 fake_ebp로 풀어야되는 문제입니다.
입력하는곳이 fgets이고 임시버퍼는 stdin입니다.
임시버퍼를 찾았습니다.
0x8cb740 이네요.
대충 a *260 해주시고,
실행
아까 구한 주소 stdin주소 넣으면 저렇게 나오는데,
앞에 하나 하나 뒤지다가 입력한 값이 있는곳을 발견했데요.
stdin 에서 4번째 부분을 보면 입력한 값들이 들어있는걸 볼수있는데요.
다시 실행해보면 알겠지만 저 값은 b7f[XX]000으로 XX가 랜덤으로 계속 바끼는걸 볼 수 있습니다.
브루트포싱을 해서 풀어야되는 문제입니다.
일단 fake ebp로 풀는방식으로 페이로드를 작성해보았습니다.
임시버퍼에서 카나리 뒤부분으로 이동하게 끔 fake_ebp를 하고 leave ret 합니다.
leave명령어중 pop ebp가 있는데 이걸 하면서 esp+4됩니다.
그러므로 카나리 뒤에 더미 4바이트를 넣어줍니다.
그다음부터는 rtl로 하면 됩니다.
저는 2번째 3번째 매개변수는 전부 null로 되게 만들었습니다.
/bin/sh주소를 구해줍니다.
leave_ret주소를 구해줍니다.
execve주소를 구해줍니다.
이런식으로 코드를 짜줍니다.
실행하면 이런식으로 보통 300번만에 나옵니다.
클리어
'휴지통' 카테고리의 다른 글
[FC4] 4. dark_stone -> cruel 풀이 (0) | 2015.07.26 |
---|---|
[FC3] All Clear (0) | 2015.07.24 |
[FC3] 5. evil_wizard -> dark_stone (0) | 2015.07.24 |
[FC3] 4. hell_fire -> evil_wizard (0) | 2015.07.24 |
[FC3] 3. dark_eyes -> hell_fire (5) | 2015.07.24 |
Comments