상세 컨텐츠

본문 제목

CSRF(Cross-site Request Forgery)

Hacking/Web Hacking

by it thief 2020. 3. 8. 20:52

본문

크로스 사이트 요청 변조

공격자의 악의적인 스크립트 코드에 의해 사용자가 의도하지 않은 악의적인 행위를 서버에 요청한다. 

공격자가 사용자를 매개물로 서버에 악의적인 요청을 전송하여 서버는 변조된 요청에 응답하게 되는 형식.

 

Change Password

New password와 re-type password폼이 있다. 비밀번호를 바꿔보면 URL에 GET 메서드로 요청이 되는 것을 확인할 수 있다.

이제 HTML blog로 가서 HTML <a> 태그를 이용하여 비밀번호 변조를 할 것이다. <a href="GET요청 주소">download</a> GET요청 주소에서 password_new , password_conf파라미터를 자신이 원하는 값으로 바꿔준다.

삽입시키고 download를 눌러주면 패스워드가 바뀐다. 각자 확인해 보시길 바란다. a태그 말고도 <img> 태그나 <iframe> 태그를 사용해서 blog에 들어가기만 해도 패스워드를 변경시킬 수 있다. 

 

대응법

current password를 이용하여 현재 사용하는 패스워드를 확인하는 방법으로 대응하고 있다.

Change Secret

Secret을 변경하는데 GET메서드가 아니다. 하지만 위의 password랑 다를 게 없다. BurpSuite로 패킷을 잡고 url을 만들어 전송하면 된다.

빨간 박스로 되어 있는 부분은 내가 파라미터와 주소와 경로를 보고 직접 작성한 것이다. GET메서드 방식으로 URL을 만든 다음 똑같이 블로그에 올리겠다.

이번엔 img방식으로 올렸다. <a> 태그는 download링크를 눌러야 요청이 보내졌지만 img태그는 사이트에 접속만 해도 요청이 보내진다. secret을 확인해보면 hacker라고 바뀌어있을 것이다. img태그의 width heigh속성에 0 값을 주면 img가 보이지 않게 할 수도 있다.

 

대응법

토큰을 이용하여 대응하고 있다. 토크은 random으로 생성되기 때문에 대응방안으로 할 수 있다.

세션에 저장된 토큰이랑 요청으로 오는 토큰을 비교하여 대응하고 있다. 토큰은 아래와 같은 방식으로 랜덤하게 생성하고 있다.

Transfer Amount

이 부분은 Password Change랑 같으므로 넘어가겠다. 대응법은 Secret이랑 같다.

'Hacking > Web Hacking' 카테고리의 다른 글

PHP CGI  (0) 2020.03.09
webhacking.kr 9번  (0) 2020.03.08
RFI/LFI  (0) 2020.03.08
webhacking.kr 8번  (0) 2020.03.05
webhacking.kr 7번  (0) 2020.03.05

관련글 더보기

댓글 영역