Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 백준
- Sookmyung Information Security Study
- 드림핵
- PHP 웹페이지 만들기
- 머신러닝
- hackctf
- lob
- c
- Javascript
- hackerrank
- Python
- c++
- 숙명여자대학교 정보보안 동아리
- HTML
- BOJ
- 기계학습
- BOJ Python
- WarGame
- C언어
- 숙명여자대학교 정보보안동아리
- 풀이
- 생활코딩
- 파이썬
- 웹페이지 만들기
- CSS
- SWEA
- XSS Game
- siss
- 자료구조 복습
- The Loard of BOF
Archives
- Today
- Total
혜랑's STORY
[LOB Redhat] Lv.8 orge -> troll 본문
문제를 풀기 위해 xshell로 로그인 해 주었다.
ID : orge / PW : timewalker |
가장 먼저 존재하는 파일들을 알아보기 위해 ls -l 명령어를 실행하였다.
troll.c 파일의 내용을 확인해 보았다.
Lv.7에서는 argc가 2 이상이 되어도 괜찮았지만, 이번 문제에서는 argc가 꼭 2개이어야 한다. 즉, argv[1]의 RET이 agrv[2]를 가리키도록 하는 방법을 사용하지 못한다는 것이다.
환경변수도 초기화하고.. 스택 공간도 초기화하고..
이제 쉘코드가 들어갈 수 있는 공간은 초기화하지 않는 argv[0]만 남게 되었다. 파일명을 변경하는 방법을 찾아보았다.
- 파일명 변경 : rename 변경전파일명 변경후파일면 대상파일
다음과 같이 코드를 구성해보았다. 이때 주의해야 할 점은 "\x2f"가 없는 쉘코드를 사용해야 한다는 것이다. 쉘코드에 있는 \x2f가 /로 읽히기 때문이다.
rename troll `python -c 'print "\x90"*100 + "\xeb\x11\x5e\x31\xc9\xb1\x32\x80\x6c\x0e\xff\x01\x80\xe9\x01\x75\xf6\xeb\x05\xe8\xea\xff\xff\xff\x32\xc1\x51\x69\x30\x30\x74\x69\x69\x30\x63\x6a\x6f\x8a\xe4\x51\x54\x8a\xe2\x9a\xb1\x0c\xce\x81"'` troll |
실행시켜보자.
파일명이 잘 바뀐것을 볼 수 있다.
파일명을 변경하지 않고 사용하기 위해 temp라는 폴더를 만들어 그 폴더 안에 복사해 주었다.
core 파일을 분석해 보자. 뒤에 들어가는 주소는 적당히 있을법한 주소로 넣어주었다.
nop가 들어있는 곳이 바로 argv[0]의 주소이기 때문에 argv[1]의 RET이 "0xbffffaa0"을 가리키도록 하면 될 것같다.
쉘이 실행된다. 원본파일에 공격해보자.
성공적으로 비밀번호를 얻을 수 있었다.
'2021 SISS 21기 활동 > 겨울방학 System' 카테고리의 다른 글
[LOB Redhat] Lv.9 troll -> vampire (0) | 2021.02.21 |
---|---|
[Lazenca] Protection Tech : ASLR, Canaries (0) | 2021.02.21 |
[LOB Redhat] Lv.7 darkelf -> orge (0) | 2021.02.10 |
[LOB Redhat] Lv.6 wolfman -> darkelf (0) | 2021.02.10 |
[Lazenca] Protection Tech : NX bit (0) | 2021.02.07 |