이 도구를 이용하여 허용받지 않은 서비스 대상으로 해킹을 시도하는 행위는 범죄 행위입니다. 해킹을 시도할 때에 발생하는 법적인 책임은 그것을 행한 사용자에게 있다는 것을 명심하시기 바랍니다.
A8 - CSRF (Transfer Amount)
csrf_2.php 페이지는 이체금액을 조작할 수 있는 CSRF 취약점을 제공하고 있습니다.
Transfer 버튼을 누르면 URL에 변수가 노출되는 것을 확인할 수 있습니다.
개발자 도구 및 마우스 우 클릭을 눌러 페이지 소스 보기를 눌러 살펴 보아도 변수가 그대로 노출이 되어 있고, account 변수와 amount 변수를 확인할 수 있으며, account 변수는 계좌번호 amount 변수는 이체할 금액이라는 것을 알 수 있습니다.
<img src="http://localhost/bWAPP/csrf_2.php?account=123-45678-90&amount=0&action=transfer" height=0 width=0>
<a href = "http://localhost/bWAPP/csrf_2.php?account=123-45678-90&amount=0&action=transfer">Transfer Amount</a>
해당 페이지도 마찬가지로 버프 스위트를 통하여 확인해 보시고 amount 값을 변경하고 스크립트를 저장하여 변동사항을 확인해 보시기를 추천드립니다.
CSRF 이체금액 공격 예
다음 예는 csrf_2.php 페이지에서 은행 송금에 대한 GET 요청 입니다.
http://localhost/bWAPP/csrf_2.php?account=123-45678-90&amount=0&action=transfer HTTP/1.1
공격자는 스크립트를 수정하여 $1,000 유로를 개인 계정으로 이체하도록 할 수 있습니다. 악의적인 요청은 다음과 같습니다.
http://localhost/bWAPP/csrf_2.php?account=128-31111-90&amount=1000&action=transfer HTTP/1.1
그런 다음 공격자는 요청을 무해해 보이는 하이퍼링크에 포함해 사용자들에게 클릭을 유도합니다.
<a href = "http://localhost/bWAPP/csrf_2.php?account=128-31111-90&amount=1000&action=transfer">계좌이체 인증</a>
다음 단계는 이메일을 통해 하이퍼링크를 수많은 은행 고객에게 배포하는 것입니다. 은행 계좌에 로그인한 상태에서 이 링크를 클릭하면 의도치 않게 $1,000 유로가 송금이 시작됩니다.
CSRF 공격에서 공격자는 피해자의 신원을 가정하고 사용자의 동의 없이 이를 사용하여 사용자를 대신하여 작업을 수행합니다.
CSRF 프로세스
1. 소셜 엔지니어링 기술을 사용하여 피해자가 이메일, 채팅 메시지 또는 유사한 형태의 커뮤니케이션을 통해 링크를 클릭하도록 유도
2. 악성 링크 자체 또는 사용자가 방문하는 웹 페이지가 대상 사이트에 대한 요청하도록 유도
3. 요청은 사용자로부터 온 것으로 추정되며 사용자가 이미 웹사이트에 로그인되어 있다는 사실을 이용합니다.
4. 웹사이트는 사용자 모르게 또는 동의 없이 요청을 확인하고 공격자가 요청한 작업을 수행
난이도 상에서는 난이도 하와는 다르게 토큰을 사용하여 인증을 한다는 걸 알 수 있습니다.
세션 할당을 위하여 mt_rand 함수로 랜덤 값을 반환하고 다시 그 반환 값을 uniqid 함수의 인자로 입력합니다. 그다음 SHA-1 함수로 uniqid의 반환 값을 해시 값으로 생성하여 토큰 값으로 사용하고 있습니다.
계좌 이체는 생성한 토큰이 일치할 때만 가능한데, 중복된 토큰을 사용하지 못하므로 계좌번호를 변경하지 못합니다. 그러나 이체할 금액에 마이너스 값을 입력할 수 있으므로 계좌에 있는 금액이 더 늘어나지 않게 방어해야 합니다.
'Code::Security > 비박스(BWAPP)' 카테고리의 다른 글
비박스(bWAPP) A9 Buffer Overflow (Local) (0) | 2022.10.21 |
---|---|
비박스(bWAPP) A9 Using Known Vulnerable Components (알려진 취약점이 있는 구성 요소 사용) (0) | 2022.10.19 |
비박스(bWAPP) A8 CSRF (Change Secret) (0) | 2022.10.11 |
비박스(bWAPP) A8 CSRF (Change Password) (0) | 2022.10.07 |
비박스(bWAPP) A8 Cross-Site Request Forgery (CSRF) (0) | 2022.10.07 |