일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- over the wire
- Reconnaissance
- access control
- Recon
- Cryptography
- ssrf
- Leviathan
- BANDiT
- php 파일 업로드하기
- tryhackme
- active reconnaissance
- FTZ
- Cookie
- privilege escalation
- active recon
- OS Command Injection
- SQLi
- Authentication
- php
- War Game
- sql injection
- php 로그인 페이지 만들기
- php file upload
- php login page
- overthewire
- THM
- php To Do List
- file upload
- 파일 업로드 취약점
- Server Side Request Forgery
- Today
- Total
R's Hacking Daily Log
DVWA로 보는 간단한 CSRF 실습 본문
사용자가 어쩌다가 공격자가 보낸 위와 같은 사이트(or 메일)를 열었다고 하자.
"click" 버튼을 누르게 되면 사용자에게는 "Done"이라는 팝업창만 뜨지만
사실 저 click이라는 버튼에는 공격자가 숨겨둔 js파일이 있다.
js 코드에는 사용자의 비밀번호를 hacker로 변경한다는 내용이 적혀있다.
즉 공격자가 지정한 임의 비밀번호로 사용자의 비밀번호가 변경된다는 것이다.
이 요청을 사용자의 브라우저에서 보내기 때문에 서버는 이 요청을 받고 별생각 없이 처리해 주게 된다.
username = admin & password = hacker로 로그인을 해보면
성공적으로 로그인 된 것을 볼 수 있다. 이 말은 즉슨 위에서 사용자가 누른 click 버튼에
숨어 있는 js가 실행되어 공격자가 지정한 비밀번호로 admin의 비밀번호가 변경되었다는 것이다.
security level을 올려보니 session_token 값을 확인하는 부분의 코드가 있다.
burp suite를 이용해 token 내용을 확인해 보자. 처음은 mario로 비밀번호를 바꾸는 요청이고
두 번째는 hieve로 비밀번호를 변경하는 내용의 요청이다.
user_token 부분을 보면 알 수 있듯이 token 값이 계속 바뀌는 것을 볼 수 있다.
매 요청마다 token이 바뀐다는 것은 공격자의 입장에서는 한 번의 요청으로 공격을 수행해야 한다는 것..!
이를 수행하기 위해서는 csrf만으로는 부족하기 때문에 xss를 활용한다.
사용자 요청에 대해 response가 올 때 토큰이 포함되어 있을 것이다. 그 토큰을 훔쳐올 js를 심어둔다.(=stored)
해당 파일이 실행되어 token 값을 얻어온 걸 볼 수 있다. 해당 토큰을 이용한다면 공격자가 원하는 결과를 얻을 수 있게 될지도..(OoO)
'Daily-Note > web' 카테고리의 다른 글
Cookie Policy (0) | 2023.05.18 |
---|---|
SOP (Same Origin Policy) (2) | 2023.05.14 |
CSRF Defense (0) | 2023.04.08 |
XSS (0) | 2023.04.05 |
CSRF Attack (0) | 2023.04.04 |