일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- blind sql injection
- goblin 풀이
- zomblie_assassin 라이트업
- orge 라이트업
- los 풀이
- gremlin 풀이
- zombie_assassin
- xavis 라이트업
- lord of sql injection 풀이
- orc 풀이
- darkelf 라이트업
- NULL 잡아먹는 놈
- darkelf 풀이
- lord of sql injection
- darkelf
- cobolt
- wolfman 풀이
- Los
- gremlin 라이트업
- goblin 라이트업
- orc
- los of sql injection xavis
- orc 라이트업
- 34t3rnull
- los 라이트업
- cobolt 라이트업
- wolfman 라이트업
- wolfman
- SQL Injection
- cobolt 풀이
- Today
- Total
목록0x0070 워게임 문제 풀이/0x0076 pwnable.tw 풀이 (2)
NULL 잡아먹는 놈
>> [pwnable.tw] orw 풀이 아 삽질을 너무 많이 했다... 일단 문제는 다음과 같다. 쉬운 문제다. 그냥 open read write를 이용하여 쉘코드를 이용하여 flag를 읽는 문제이다. IDA로 까봤을 때, 정말 간단하다. 쉘코드를 보내면 끝~ 일단 삽질한 과정은 다음과 같다. 1. 일단 예전에 ./flag를 읽는 64비트짜리 cat 쉘코드를 짜놓은게 있는데 fail.... 2. read로 null이 들어간 쉘코드를 읽어서 잘못된 줄 알고 없앴는데 fail.... 3. 왜 이상한가 했더니 open -> read -> write -> exit로 만들었었다. 엥? exit 때문인가해서 지우고 했는데 fail.... 4. 아!! 32비트로 짜보자고 해서 온라인 어셈블러로 짜고 쉘코드를 넣었는..
>> [pwnable.tw] start 풀이 전형적인 leak 문제이다. 근데 분석하기 정말 힘들었다... IDA로 처음 헥스레이를 찍었을 때 ??? 처음에 이렇게 나와서 엄청 쌩뚱맞았다. 물론 __asm보고 어셈을 분석하는 문제구나 생각하기는 쉬웠다. 일단 어셈코드를 보도록할까? 첫 시스템 콜은 al에 4를 넣는 거로 보아서 write 함수이다. 그리고 al에 3을 넣는 것은 read 함수인 것을 알 수 있다. 읽고 출력하고 esp+14로 리턴하는데 esp + 14의 위치는 exit 인 것을 확인할 수 있다. 즉 1. write로 인자를 입력받고 2. read로 인자를 출력하고 3. exit로 마무리~ 의 과정을 거친다는 것을 알 수 있다. 키야... 그러면 exit로 가는 eip를 내가 바꾸면?? 익..