Today I Learned …
[수업] 7주차 정리 본문
* 해당 주차의 수업 내용을 정리합니다.
++ 오늘 주제 : CSRF
+ SQL Injection
> LoS
→ SQL Injection 취약점 찾는데 도움을 주지는 않습니다.
→ 필터링 우회 : 기이한 방법으로
+ SQL Injection
[리뷰]
- XSS (Cross-site Script) -
WHAT > 클라이언트 측 스크립트를 삽입하는 공격
발생 원인 > 사용자 입력값(파라미터)을 검증 X
* 3가지
Stored
Reflected
DOM Based
POST ~~~
~~
~~~
id=normaltic&passwd=1234
XML형식인 경우 → GET으로 변환 불가
XML 예시)
<user>
<id>
normaltic
</id>
<passwd>
1234
</passwd>
</user>
* 대응방안
> HTML 특수문자 → HTML Entity
1. HTML 특수문자 → HTML Entity
2. White List 기반
3. Black List → 악성 이벤트
* 모의해킹 팀 조직 문화 : 개인 플레이
1. 젊다. 팀장님 30대...
2. 나 혼자다. 케어해줄 사람 전혀 없음.
3. 회식 X (1년 1번)
- 사람 : 자존심, 컴퓨터, 혼자
- 나는 업무를 배우고자 왔는데, 아무도 안알려준다.
- 좋은 멘토
- 나쁜 유혹 : 있을 수 있다! → 커리어 끝난다고 생각해야함
- 도덕 마지노선 : 100억ㅎ
* CSRF
> 스크립팅 공격이 가능하다는 전제에 가능
> 피싱을 활용한 공격
> 패스워드 변경
> 이용자의 요청을 위변조한다.
- XSS와는 별개의 취약점(클라이언트 측 공격)
- CSRF 취약점(서버 측 공격)
- 두 공격 모두 사용자를 공격한다.
- 페이로드가 클라에서 실행되느냐 서버에서 실행되느냐의 차이.
- 이용자가 특정 요청을 하게 만드는! (이용자의 세션을 도용하여)
EX)
"나 비밀번호 1234로 바꿔주세요!"
* 취약점 발생 이유
> 해당 요청을 하는 사용자의 인증이 없기 때문
* 발생 가능 위치
> WEB 서비스 요청 모든 곳
> 인증 정보가 없다면!
관리자님!
아래 사이트 좀 확인해주세요...
http://[서버주소]/csrf/?passwd=aaaa&confirm=aaaa&submit=submit
↓
shorturl.at/ptBP7 (URL SHORT)
* 컨설턴트의 관점(주관)
- 비밀번호 변경 (인증 정보) → 누가 보나 취약
- 댓글 작성, 게시글 작성 → 악의적으로 사용될 수 있는가? 주관에 따라 취약점인지 아닌지 판단함
* CSRF 공격/방어
1. GET Method
CSRF 취약점 요청이 GET
GET 방식으로 URL
-- 링크 클릭 : 사회공학기법
http://[서버주소]/crtf/?passwd=aaaa
-- <img src="http://[서버주소]/crtf/?passwd=aaaa">
XSS, CSRF
→ POST
2. POST Method
→ FORM 태그
→ Burp Suite 홈페이지에서 시뮬레이션 가능 (Web Security Academy)
<form action="http://[서버주소]/csrf/" method="POST">
<input type="hidden" name="passwd" value="aaaa">
<input type="hidden" name="confirm" value="aaaa">
<input type="hidden" name="submit" value="submit">
<input type="submit" value="Click Me">
</form>
버튼 클릭 유도 = 사회공학기법의 영역
버튼 클릭 없이 들어가기만 해도 공격이 이루어지도록 XSS를 연계한다.
→ 공격 자동화 (XSS)
→ Stealth 공격 자동화 (XSS)
예시는 아래와 같다.
<iframe width="0" height="0" border="0" name="stealthframe" id="stealthframe" style="display: none;"></iframe>
<form action="http://[서버주소]/csrf/" method="POST" target="stealthframe">
<input type="hidden" name="email" value="normaltic@naver.com">
</form>
<script>
document.forms[0].submit();
</script>
3. 토큰 : 인증 수단 추가
일회용 정보
CSRF 토큰 → 막을 수 있다??
우회 가능할 수 있다.
→ XSS 취약점이 있다면
이때,
SOP, CORS policy (Cross-origin Resource Sharing) 에 걸리거나
xframe, iframe 접근에 문제 발생 가능
→ 이런 경우는 우회 어려움
** 과제
> 게시판
CSRF 취약점 찾아보기 → 보고서에 넣기
- 비밀번호 변경
- 게시글 작성
'Study > 수업' 카테고리의 다른 글
[수업] 9주차 정리 (0) | 2021.12.09 |
---|---|
[수업] 8주차 정리 (0) | 2021.12.02 |
[수업] 6주차 정리 (0) | 2021.11.18 |
[수업] 5주차 정리 (0) | 2021.11.18 |
[수업] 4주차 정리 (0) | 2021.11.04 |