저자: 23pds & Thinking

편집자: 셰리

배경

어제 APT 공격 관련 자료를 정리하던 중, 샨 형제(@im23pds)가 갑자기 흥분해서 제 작업장에 와서 "생각해보니 재밌는 프로젝트 하나 발견했어. CZ가 자주 쓰이네. CZ한테 무료로 인사할 수 있을지도 몰라."라고 했습니다. 그래서 우리는 가능한 취약점 몇 가지를 재빨리 초안했습니다.

  • ReachMe에서 CZ의 계정을 하이재킹합니다.
  • ReachMe에서 CZ의 설정을 변경합니다.
  • CZ에게 메시지를 무료로 보내면 메시지를 보낼 때 최대 1BNB까지 보낼 수 있는 한도가 없어집니다.

약 10분 후, 우리는 ReachMe.io에서 낮은 비용으로 모든 사용자에게 Say Hi 메시지를 보낼 수 있는 취약점을 발견했고, 즉시 프로젝트 팀에 연락하여 취약점 검증에 대한 세부 정보를 제공했습니다. 프로젝트 팀은 또한 가능한 한 빨리 취약점을 수정하고 재테스트를 위해 당사에 연락했습니다. 저는 ReachMe 팀이 보안 문제에 진지하게 임하는 태도를 좋아합니다!

해커가 0.01 BNB로 CZ를 무료로 얻는 방법을 알려줍니다.

 (https://x.com/슬로미스트_팀/상태/1905212712956665896)

또한 SlowMist 보안팀은 CZ와 ReachMe 프로젝트팀으로부터 감사를 받게 되어 영광입니다.

해커가 0.01 BNB로 CZ를 무료로 얻는 방법을 알려줍니다.

 (https://x.com/cz_binance/status/1905240886986039437)

발견 프로세스

ReachMe.io는 BNB 체인을 기반으로 한 유료 채팅 플랫폼으로, 암호화폐 결제 메커니즘을 통해 KOL(주요 의견 리더)과 팬을 연결해주는 것을 목표로 합니다. 사용자는 KOL에게 개인 메시지를 보내려면 BNB를 지불해야 하며, KOL은 수수료의 90%를 가져갈 수 있습니다(플랫폼은 10%를 가져갑니다). KOL이 5일 이내에 답변하지 않으면 사용자는 50% 환불을 받을 수 있습니다.

2025년 3월 27일, 바이낸스 설립자 CZ는 자신의 X 계정 프로필을 "DM: https://reachme.io/@cz_binance (수수료는 자선 단체로 전달됩니다)"로 변경했습니다. 이는 "ReachMe에서 DM을 보내면 수수료가 자선 단체로 전달됩니다."라는 의미입니다.

Say Hi to CZ의 비용이 1 BNB인 것을 알 수 있습니다. 그래서 우리는 몇 가지 해결책을 생각해 내고 Say Hi to CZ의 1 BNB 제한을 우회하는 방법을 알아보았습니다.

해커가 0.01 BNB로 CZ를 무료로 얻는 방법을 알려줍니다.

Shan Ge와 함께 조사한 결과, ReachMe가 KOL에게 메시지를 보내면 "/api/kol/message" 인터페이스를 통해 "_id" 필드가 포함된 메시지 요약을 생성한다는 것을 발견했습니다. 이 필드는 메시지를 보낼 때 온체인 계약 Function: deposit(string _identifier,address _kolAddress)에 첨부되며 _identifier 필드에 해당합니다.

해커가 0.01 BNB로 CZ를 무료로 얻는 방법을 알려줍니다.

그리고 KOL에게 전송된 메시지에 첨부된 BNB는 실제로 계약 함수인 deposit에 대한 호출에 첨부된 BNB 금액입니다. 그래서 우리는 거래를 구성하고 "Hi CZ" 메시지에 해당하는 "_identifier"와 CZ의 주소, 그리고 0.01 BNB(최소 0.001 BNB만 필요)를 계약에 보냈습니다.

해커가 0.01 BNB로 CZ를 무료로 얻는 방법을 알려줍니다.

ReachMe는 설계 초기부터 계약 감지를 위한 KOL의 사전 설정 메시지 전송 비용을 포함하지 않았기 때문에(아마도 KOL이 언제든지 메시지 가격을 조정하여 가스 요금을 절약할 수 있도록 하기 위한 것일 수도 있음?), 프런트엔드 코드를 수정하거나, 네트워크 응답 패키지를 수정하거나, 계약과 직접 상호 작용하여 1 BNB 제한을 우회할 수 있습니다. 이는 서버가 온체인 거래를 검색할 때 메시지 가격과 체인에서 거래된 BNB 금액에 대한 확인도 생략했기 때문입니다.

해커가 0.01 BNB로 CZ를 무료로 얻는 방법을 알려줍니다.

그래서 우리는 CZ와 대화하는 데 1 BNB가 들고, CZ에게 인사하는 데는 0.01 BNB만 드는 규칙을 성공적으로 우회하는 데 약 10분이 걸렸습니다.

해커가 0.01 BNB로 CZ를 무료로 얻는 방법을 알려줍니다.

또한, CZ에 흥미로운 메시지를 보내거나 스피어 피싱을 실시하는 등 실제로 추가적인 악용 사례가 있다는 점도 주목할 만합니다. CZ 자신의 영향력이 컸기 때문에 이 부분의 테스트는 나중에 중단되었습니다. 모두가 안전에 더 많은 주의를 기울이고 피싱에 조심해야 합니다.

요약하다

중앙집중화와 분산화를 결합한 이러한 유형의 제품 설계는 종종 온체인과 오프체인 보안 검사에서 불일치를 초래합니다. 따라서 공격자는 체인 내외부의 상호작용 프로세스를 분석함으로써 특정 검사 제한을 우회할 수 있습니다. SlowMist 보안팀은 프로젝트 소유자가 우회 가능성을 피하기 위해 온체인 및 오프체인 코드에서 필요한 보안 검사 항목을 최대한 동기화할 것을 권장합니다. 동시에 잠재적인 보안 위험을 파악하고 이를 방지하기 위해 보안 감사를 실시할 전문 보안팀을 고용하는 것이 좋습니다.