R's Hacking Daily Log

DVWA로 보는 간단한 CSRF 실습 본문

Daily-Note/web

DVWA로 보는 간단한 CSRF 실습

hanhxx 2023. 4. 8. 16:53

사용자가 어쩌다가 공격자가 보낸 위와 같은 사이트(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
Comments