배경
배경
블록체인의 세계는 어둠의 숲의 법칙을 따른다.
SlowMist 보안 팀은 이전에 릴리스했습니다.블록체인 다크 포레스트 셀프 도움말 매뉴얼, NFT 프로젝트 당사자의 Discord를 공격하는 방법을 많이 언급했는데 독자들이 관련 피싱 방법에 대한 명확한 이해를 돕기 위해 이 글에서는 피싱 방법 중 하나인 악성 북마크를 통해 프로젝트를 도용하는 방법을 폭로합니다. 당사자의 Discord 계정의 토큰은 허위 정보를 게시하여 사용자가 피싱 웹 사이트를 방문하도록 유도하여 사용자의 디지털 자산을 도용하는 데 사용됩니다.
낚시 사건
이미지 설명
출처: https://twitter.com/SerpentAU/status/1503232270219431941
이미지 설명
출처: https://twitter.com/sentinelwtf/status/1496293768542429187
본 해석에서 언급된 북마크는 브라우저 북마크이며, 이 북마크의 내용은 자바스크립트 악성코드의 일부일 수 있으며, 디스코드 사용자가 클릭 시 해당 사용자가 위치한 디스코드 도메인에서 악성 자바스크립트 코드가 실행되며, Discord 토큰은 도난 당하고 공격자는 프로젝트 당사자의 Discord 토큰이 프로젝트 당사자의 Discord 계정 관련 권한을 직접 자동으로 인수할 수 있습니다.
배경 지식
이 사건을 이해하기 위해서는 독자들이 어느 정도의 배경 지식을 가지고 있어야 합니다.오늘날의 브라우저에는 자체 북마크 관리자가 있어 편리함을 제공하지만 공격자에게 악용되기 쉽습니다. 악성 피싱 페이지를 신중하게 구성하여 즐겨찾는 북마크에 JavaScript 코드를 삽입할 수 있으며, 피해자가 북마크를 클릭하면 현재 브라우저 탭의 도메인에서 실행됩니다.
위 사진을 예로 들면, 피해자는 discord.com 공식 홈페이지를 열고 해당 페이지에서 악성 북마크인 Hello, World!를 클릭하여 팝업문을 실행시켰습니다. discord.com을 보여줍니다.
여기에는 도메인 개념이 있습니다.브라우저에는 동일 출처 정책과 같은 보호 정책이 있습니다.논리적으로 discord.com에 속하지 않은 작업은 discord.com 도메인의 페이지에 응답하지 않아야 하지만 북마크는 이 제한을 우회합니다.
이러한 작은 기능의 북마크는 보안 문제를 암시할 수 있습니다.북마크를 추가하는 일반적인 방법은 북마크 URL을 명확하게 볼 수 있습니다.
약간의 보안 의식이 있는 독자는 URL 정보에 명백한 문제가 있음을 직접 확인해야 합니다.
물론 북마크바에 있는 컬렉션을 페이지로 끌어다 놓도록 유도하는 잘 짜여진 구조라면? Twitter 링크의 데모 비디오가 이것을 북마크로 끌어다 놓기와 같은 유도 페이지를 구성한 것을 볼 수 있습니다.
즉, 링크를 드래그하여 북마크바에 링크를 추가할 수 있으며 피싱 스크립트가 충분히 현실적이라면 보안의식이 부족한 사용자를 쉽게 섭외할 수 있다.
드래그 앤 드롭으로 북마크바에 추가하려면 a 태그만 구성하면 됩니다.샘플 코드는 다음과 같습니다.
북마크릿은 클릭 시 개발자 도구 콘솔의 코드처럼 실행될 수 있으며 CSP(콘텐츠 보안 정책) 정책을 우회합니다.
독자들은 의문을 가질 수 있습니다.javascript:()와 같은 링크가 브라우저 북마크 바에 추가되면 브라우저가 알림을 제공하지 않습니까?
저자는 여기에서 Google과 Firefox 브라우저를 비교합니다.
Google Chrome을 사용하여 드래그 앤 드롭하여 편집 알림 없이 일반 URL 링크를 추가합니다.
Google Chrome을 사용하여 악의적인 링크를 추가하기 위한 드래그 앤 드롭에도 편집 알림이 표시되지 않습니다.
Firefox 브라우저를 사용하는 경우 일반 링크를 추가하면 알림이 표시되지 않습니다.
Firefox 브라우저를 사용하여 악성 링크를 추가하면 편집자에게 저장 확인을 알리는 창이 나타납니다.
북마크 추가 측면에서 파이어폭스 브라우저의 처리 보안이 더 높다는 것을 알 수 있다.
시나리오 데모
데모는 구글 크롬을 사용하였으며, 사용자가 웹상에서 디스코드에 로그인하는 것을 전제로 피싱 페이지의 안내에 따라 피해자가 악성 북마크를 추가한 것으로 가정하여 Token 등의 개인정보를 공격자에게 전송합니다. 공격자가 설정한 Discord 웹후크를 통한 채널.
다음은 피해자가 피싱된 북마크를 클릭한 예입니다.
다음은 공격자가 Token 및 기타 개인 정보를 획득하고 Discord Server의 웹후크를 통해 수신하기 위해 작성한 JavaScript 코드의 데모입니다.
저자는 의심을 유발할 수 있는 몇 가지 공격 세부 정보를 추가합니다.
1. 피해자가 클릭 한 번으로 받은 이유는?
JavaScript 스크립트에 북마크를 삽입할 수 있다는 배경 지식을 통해 알고 있습니다. 이를 통해 Discord에서 패키징한 webpackChunkdiscord_app 프런트 엔드 패키지를 통해 정보를 얻는 것을 포함하여 거의 모든 작업을 수행할 수 있습니다. 그러나 악이 발생하지 않도록 하기 위해 작성자는 자세한 공격 코드를 제공하지 않습니다.
2. 공격자가 Discord webhook을 수신하기로 선택한 이유는 무엇입니까?
Discord 웹후크의 형식이
https://discord.com/api/webhooks/xxxxxx는 동일 출처 정책과 같은 문제를 우회하여 Discord의 기본 도메인 이름입니다. 독자는 테스트를 위해 새로운 Discord 웹후크를 만들 수 있습니다.
3. 토큰을 받으면 무엇을 할 수 있나요?
요약하다
요약하다
공격은 상시 발생하고 있으며 악의적인 공격을 받은 사용자는 즉시 다음과 같은 조치를 취하여 조치를 취하는 것이 좋습니다.
Discord 계정 비밀번호를 즉시 재설정하세요.
암호를 재설정한 후 Discord 계정에 다시 로그인하여 토큰을 새로 고침하여 공격자가 획득한 토큰을 무효화하십시오.
원래 웹후크가 손상되었으므로 원래 웹후크 링크를 삭제하고 교체합니다.
보안의식 제고, 추가된 악성 북마크 확인 및 삭제
사용자는 모든 추가 및 코드가 악의적일 수 있으며 웹에는 매우 친숙하고 유연해 보이는 확장 기능이 많이 있음을 인식하는 것이 중요합니다. 북마크는 네트워크 요청을 막을 수 없으며 사용자가 수동으로 실행을 트리거하는 순간에도 여전히 의심스러운 마음을 유지해야 합니다.