HO_9
HO9
HO_9
전체 방문자
오늘
어제
  • 분류 전체보기 (104)
    • Write Up (3)
    • WarGame (21)
      • The Lord of Bufferoverflow(.. (7)
      • The Lord of Sql Injection(L.. (1)
      • Pwnable.kr (1)
      • Pwnable.tw (0)
      • XSS GAME (6)
      • Pwnable.xyz (5)
    • SYSTEM HACKING (49)
      • 기법 (24)
      • 문제 풀이 (24)
    • CODING (2)
      • PYTHON (2)
    • WEB HACKING (1)
    • Plan (0)
    • PROJECT (0)
    • iOS (6)
    • ALGORITHM (0)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

  • .

인기 글

태그

  • log4j
  • JNDI
  • 취약점
  • 아파치

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
HO_9

HO9

The Lord of Bufferoverflow(LOB) cobolt -> goblin
WarGame/The Lord of Bufferoverflow(LOB)

The Lord of Bufferoverflow(LOB) cobolt -> goblin

2017. 12. 3. 17:09
728x90

LEVEL3

(cobolt -> goblin) : small buffer + stdin




이번 문제는 저번문제와 값과 모든 것이 똑같을 것이다.

하지만 다른 것은 저번에는 argv로 인자를 받았다.

즉 프로그램을 시작할때 값을 같이 주는 것이다.

하지만 이번에는 gets로 값을 받는다.프로그램을 시작할때 값을 받는게 아니라 시작을 한 후에 값을 받게된다.

그래서 입력방식이 달라진다.정확한 것은 풀면서 느껴보자!



저번 문제와 거의 동일하니 자세하게 분석한 것은

2017/12/01 - [SYSTEM HACKING/The Lord of Bufferoverflow(LOB)] - The Lord of Bufferoverflow(LOB) gremlin -> cobolt을 확인하시길!


.

.

.

.


저번과 동일하게 쉘코드와 입력하는 값은 똑같게 하되 saved eip와 입력방식을 다르게 해주겠다!


gdb로 파일을 열어보자!



값을 받은후인 main+15에 브레이크포인트를 걸고

saved eip값을 구해보겠다.


buufer의 공간+saved ebp 20byte, saved eip=4byte,NOP(\x90)*50,shellcode

(----------------A로대체-----------)(-----B로대체----)(---C로대체---)





우리는 NOP의 주소를 구해서 saved eip에 넣어주면 된다.

NOP를 C로 대체했으니까 C의 주소를 구해서 saved eip에 넣어주면 될 것이다.



이제는 입력방식에 대해서 설명하겠다.

argv형식으로 프로그램을 시작할 때 파이썬으로 값을 주려면

./파일이름 `python -c '[쓰고싶은 명령어]'`를 사용하면 된다.


하지만 프로그램 안에 입력받는 방식이 있다면...

(python -c '[쓰고싶은 명령어]';cat) | ./[파일명]와 같이 하면된다.

;cat을 쓰는 이유는 ;는 리눅스에서 여러 명령어를 받기 위한 것이고 cat은 쉘이 실행됬을 때 바로꺼지지 않게 해준다.


이제 실행을 해보자



보면 전단계와 다르게bash$가 떠있지 않는다.(※입력방식 차이)

원래는 한번 실행을 하고 바로 꺼지게 되는데 그것을 ;cat이 방지했다고 봐주면된다!





'WarGame > The Lord of Bufferoverflow(LOB)' 카테고리의 다른 글

The Lord of Bufferoverflow(LOB) wolfman -> darkelf  (0) 2017.12.08
The Lord of Bufferoverflow(LOB) orc -> wolfman  (0) 2017.12.03
The Lord of Bufferoverflow(LOB) goblin -> orc  (0) 2017.12.03
The Lord of Bufferoverflow(LOB) gremlin -> cobolt  (0) 2017.12.01
The Lord of Bufferoverflow(LOB) gate -> gremlin  (0) 2017.11.30
    'WarGame/The Lord of Bufferoverflow(LOB)' 카테고리의 다른 글
    • The Lord of Bufferoverflow(LOB) orc -> wolfman
    • The Lord of Bufferoverflow(LOB) goblin -> orc
    • The Lord of Bufferoverflow(LOB) gremlin -> cobolt
    • The Lord of Bufferoverflow(LOB) gate -> gremlin
    HO_9
    HO_9

    티스토리툴바