본문으로 바로가기

marco

현재위치 :: HOME BLOG CATEGORY SEARCH ARCHIVE TAGS MEDIA LOCATION GUESTBOOK

네비게이션

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록
관리자
  • 블로그 이미지
    MarcoKhan

    링크추가
  • 글쓰기
  • 환경설정
  • 로그인
  • 로그아웃

해커스쿨 LOB goblin 풀이, write-up

goblin --- hackers proof 우선 goblin의 디렉터리를 확인한다. orc라는 의심스러운 파일이 존재한다. orc는 orc의 권한을 가지고 있고, setuid가 걸려있는 파일이다. orc.c를 가지고 orc 파일을 만들었을 가능성이 있기 때문에 orc.c 파일을 본 뒤 어떤 취약점을 가지고 있는지 확인해보자. 환경변수 리스트의 포인터를 선언한다. environ는 리눅스 내부적으로 환경변수 리스트의 포인터이다.따라서 environ을 통해 모든 환경변수에 접근 할 수 있다. $man environ 을 통해 확인할 수 있다. 1extern char **environ; cs 지역변수가 선언되어 있다. 12char buffer[40]; int i;cs 만일 인자가 없다면 "argv error"를..

Wargame/LOB 2018. 8. 12. 11:26

해커스쿨 LOB cobolt 풀이, write-up

cobolt --- hacking exposed 우선 cobolt의 디렉터리를 확인한다. goblin이라는 의심스러운 파일이 존재한다. goblin는 goblin의 권한을 가지고 있고, setuid가 걸려있는 파일이다. goblin.c를 가지고 goblin 파일을 만들었을 가능성이 있기 때문에 goblin.c 파일을 본 뒤 어떤 취약점을 가지고 있는지 확인해보자. 배열이 하나 선언되어 있다. (char buffer[16]) 사용자로부터 하나의 문자열 입력을 기다리고 입력받은 문자열을 buffer에 저장한다.(gets(buffer)) 사용자로부터 입력받은 문자열을 출력한다. ( printf("%s\n", buffer) ); cobolt의 메모리 구조를 예상해보면 아래와 같이 그려볼 수 있다. 하지만 실제 ..

Wargame/LOB 2018. 8. 10. 09:02

해커스쿨 LOB gremlin 풀이, write-up

gremlin --- hello bof world 우선 gremlin의 디렉토리를 확인한다. cobolt라는 의심스러운 파일이 존재한다. cobolt는 cobolt의 권한을 가지고 있고, setuid가 걸려있는 파일이다. cobolt.c를 가지고 cobolt 파일을 만들었을 가능성이 있기 때문에 cobolt.c 파일을 본 뒤 어떤 취약점이 있는지 확인해보자. 배열이 하나 선언되어 있다.(char buffer[16]) 우리는 cobolt를 실행할 때 최소 1개 이상의 인자를 전달해야 한다.(if(argc

Wargame/LOB 2018. 8. 9. 23:55

해커스쿨 LOB gate 풀이, write-up

gate --- gate 우선 gate의 디렉토리를 확인한다. gremlin이라는 의심스러운 파일이 존재한다. gremlin은 gremlin의 권한을 가지고 있과, setuid가 걸려있는 파일이다. gremlin.c를 가지고 gremlin 파일을 만들었을 가능성이 있기 때문에 gremlin.c 파일을 본 뒤 어떤 취약점이 있는지 확인해보자. 배열이 하나 선언되어 있다. (char buffer[256]) 우리는 gremlin을 실행할 때 1개의 인자를 전달해야한다. (if(argc

Wargame/LOB 2018. 8. 9. 13:16

해커스쿨 FTZ level20 (format stirng)

level20 --- we are just regular guys 우선 level20의 디렉토리를 확인한다. attackme라는 의심스러운 파일이 존재한다. attackeme는 clear의 권한을 가지고 있고, setuid가 걸려있는 파일이다. 우리가 공격할 대상이 attackme일 가능성이 크다고 생각하고 hint를 보자. 앞서 보았듯이 format string 취약점을 가지고 있는 소스이다.또한 fgets 함수에서 79 글자만 쓸 수 있도록 제한하고 있다. 따라서 buffer overflow 공격하기 어렵다. 실제로 format string 취약점을 가지고 있는지 확인해보자. 서식 지정자를 통해 스택영역의 내용을 알 수 있고 "%n" 서식 지정자를 이용해 원하는 주소에 write할 수 있을 것이다. ..

Wargame/FTZ 2018. 8. 5. 12:55

해커스쿨 FTZ level19 (Return To Libc)

level19 --- swimming in pink 우선 level19의 디렉토리를 확인한다. attackme라는 의심스러운 파일이 존재한다. attackme는 level20의 권한으 가지고 있고, setuid가 걸려있는 파일이다. 우리가 공격할 대상이 attackme일 가능성이 크다고 생각하고 hint를 보자. 버퍼 오버플로우를 잘 공부했다면 매우 쉬운 소스이다.간단히 gdb로 분석한 뒤 버퍼 오버플로우를 통해 공격해보자. hint 소스에는 간단히 char buf[20]을 통해서 0x14(20 byte)를 할당했는데, 실제로 0x28(40 byte)가 할당되어 있다.어딘가에 20byte의 dummy 값이 존재하는 것이다. gdb를 통해 메모리 구조를 확인했고 메모리 구조를 그려보면 아래와 같다. 환경변..

Wargame/FTZ 2018. 8. 5. 11:17

해커스쿨 FTZ level18

level18 --- why did you do it 우선 level18의 디렉터리를 확인한다. attackme라는 의심스러운 파일이 존재한다. attackme는 level19의 권한을 가지고 있고, setuid가 걸려있는 파일이다. 우리가 공격할 대상이 attackme일 가능성이 크다고 생각하고 hint를 보자. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960#include #include #include #include void shellout(void);int main(){ char string[100]; int check; int x = 0; in..

Wargame/FTZ 2018. 8. 5. 09:49

해커스쿨 FTZ level17

level17 --- king poetic 우선 level17의 디렉터리를 확인한다. attackme라는 의심스러운 파일이 존재한다. attackme는 level18의 권한을 가지고 있고, setuid가 걸려있는 파일이다. 우리가 공격할 대상이 attackme일 가능성이 크다고 생각하고 hint를 보자. 일반적인 실행이라면 사용자로부터 입력을 받고 level18의 권한으로 call() 함수를 실행할 것이다.call() 함수는 단순히 "Hello there!"을 출력하는 함수이다.level16과 달리 이번 소스는 shell을 띄우는 함수가 존재하지 않는다. 따라서 우리가 쉘 코드를 작성하여 printit() 함수의 주소에 쉘 코드의 주소를 써야한다. 우선 gdb를 통해 dummy가 있는지 없는지 분석해야한..

Wargame/FTZ 2018. 8. 4. 23:53

해커스쿨 FTZ level16

level16 --- about to cause mass 우선 level16의 디렉터리를 확인한다. attackme라는 의심스러운 파일이 존재한다. attackme는 level17의 권한을 가지고 있고, setuid가 걸려있는 파일이다. 우리가 공격할 대상이 attackme일 가능성이 크다고 생각하고 hint를 보자. 일반적인 실행흐름이라면 printit()함수를 실행하여 "Hello there!"를 실행하고 종료할것이다.하지만 shell() 함수가 있고 level17의 배시셸을 띄우는 것을 확인할 수 있다. 즉, 우리가 buf를 통해 printit()의 주소를 shell()의 주소로 수정하면 shell 함수가 실행되면서 level17의 쉘이 뜰 것이다. gdb를 통해 attackme를 분석하자. hin..

Wargame/FTZ 2018. 8. 4. 23:18

해커스쿨 FTZ level15

level15 --- guess what 우선 level15의 디렉터리를 확인한다. attackme라는 의심스러운 파일이 존재한다. attackme는 level16의 권한을 가지고 있고, setuid가 걸려있는 파일이다. 우리가 공격할 대상이 attackme일 가능성이 크다고 생각하고 hint를 보자. hint를 보면 check가 가리키는 포인터 변수에 0xdeadbeef가 저장되어 있으면 level16(3096)의 쉘을 띄워준다.level14는 변수에 0xdeadbeef를 저장시키는 것이고 level15은 변수에 저장된 포인터 변수에 0xdeadbeef을 저장시키는 문제이다. 위와 같이 변수를 선언하면 int crap(4 byte), int *check(4 byte), char buf[20](20byt..

Wargame/FTZ 2018. 8. 4. 21:52
  • 이전
  • 1
  • ···
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • ···
  • 27
  • 다음

사이드바

NOTICE

  • 전체 보기
MORE+

LINK

  • About Me
  • Gtihub

CATEGORY

  • M4RC0 (262)
    • CPU side-channel attack (7)
      • Resource contention-based a.. (1)
      • Meltdown-type attacks (3)
      • Spectre-type attacks (0)
      • MDS (0)
      • Whitepaper (0)
    • Drone (0)
    • Linux (42)
    • GitHub management (0)
    • Vulnerabilties on Drones (0)
    • Programming (42)
      • C언어 (6)
      • TIPS 17기 (17)
      • JAVA (12)
      • JSP (4)
      • Python (3)
    • Wargame (61)
      • LOB (20)
      • FTZ (22)
      • Protostar (7)
      • pwnable.kr (12)
    • Reversing (75)
      • Keygen (4)
      • ASM to C (70)
      • CodeEngn (1)
    • Pwnable (8)
    • Crypto, Access Control, Pro.. (2)
    • SEEDLAB (5)
    • Paper review (1)
    • Github 관리 (1)
    • ETC... (17)

RECENTLY

  • 최근 글
  • 최근 댓글

최근 글

최근댓글

Trackback

TAG

  • tipsware
  • TIPS강좌
  • tipssoft
  • Tips프로그래밍강좌
  • Tips프로그래밍
  • 김성엽
MORE+

ARCHIVE

CALENDAR

«   2025/08   »
일 월 화 수 목 금 토
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

VISITOR

오늘
어제
전체
  • 홈으로
  • 방명록
  • 로그인
  • 로그아웃
  • 맨위로
SKIN BY COPYCATZ COPYRIGHT marco, ALL RIGHT RESERVED.
marco
블로그 이미지 MarcoKhan 님의 블로그
MENU
  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록
CATEGORY
  • M4RC0 (262)
    • CPU side-channel attack (7)
      • Resource contention-based a.. (1)
      • Meltdown-type attacks (3)
      • Spectre-type attacks (0)
      • MDS (0)
      • Whitepaper (0)
    • Drone (0)
    • Linux (42)
    • GitHub management (0)
    • Vulnerabilties on Drones (0)
    • Programming (42)
      • C언어 (6)
      • TIPS 17기 (17)
      • JAVA (12)
      • JSP (4)
      • Python (3)
    • Wargame (61)
      • LOB (20)
      • FTZ (22)
      • Protostar (7)
      • pwnable.kr (12)
    • Reversing (75)
      • Keygen (4)
      • ASM to C (70)
      • CodeEngn (1)
    • Pwnable (8)
    • Crypto, Access Control, Pro.. (2)
    • SEEDLAB (5)
    • Paper review (1)
    • Github 관리 (1)
    • ETC... (17)
VISITOR 오늘 / 전체
  • 글쓰기
  • 환경설정
  • 로그인
  • 로그아웃
  • 취소

검색

티스토리툴바