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. 내가 만든 웹 서버 취약점 찾고, 보고서 작성해보기
>자신과의 싸움
>보고서 작성 제출