전자지갑 APP 취약점 분석 방법
Razer Pay는 싱가포르와 말레이시아에서 널리 사용됩니다. 이 글에서 저자는 Razer Pay Ewallet에서 사용자 서명을 발견하기 위해 APP 역분석과 Frida 디버깅을 사용하여 Razer 결제 사용자의 채팅 기록을 읽을 수 있는 취약점을 생성합니다. , 사용자의 바인딩된 은행 계좌를 삭제하고 사용자의 민감한 개인 정보를 훔칩니다. 이 취약점으로 인해 Razer는 결국 거의 $6,000에 달하는 공식 보상을 받았습니다. 다음은 자세학습을 위한 참고자료로만 활용될 수 있는 저자의 취약점 발견 아이디어이다.
취약 배경
Razer Inc(RΛZΞR)는 싱가포르에 설립된 게임 주변 장비 회사로 "Green Light Factory"라고도 알려져 있으며 최근 몇 년간 가전 사업에 진출하기 시작했습니다. Razer의 본사는 싱가포르와 미국 샌디에이고에 있습니다. 2017년 11월 홍콩증권거래소에 상장된 제품은 게이머를 타겟으로 하고 있으며, 대부분의 제품에 육식동물의 이름을 따서 명명되었습니다. 2018년 전자지갑 Razer Pay 출시. 2020년 5월 수술용 마스크 생산이 시작되었습니다.
Razer Pay Ewallet의 요청 변조 방지 메커니즘에서는 auth_token 외에도 매개변수 서명을 사용하여 서버에 대한 각 GET 및 POST 요청에 대해 서명 확인을 수행합니다. 아래 그림과 같이 인코딩된 서명 매개변수 값과 사용자 ID:
따라서 요청 매개변수를 변조하고 다시 보내려는 시도는 유효하지 않지만 APK 역분석 결과 Razer 결제 전자 wallet(Razer 결제 전자지갑) Pay Ewallet에는 사용자 서명(Signature) 생성 취약점이 있으며, Frida의 분석 및 활용과 결합되어 새로운 사용자 서명(Signature)을 자동으로 계산 및 생성할 수 있으며, 이로 인해 많은 무단 권한이 발생할 수 있습니다. IDOR) 문제.
Razer Payment 앱의 네트워크 요청을 캡처하기 위해 Burp를 사용했을 때 요청의 사용자 서명(서명) 보호로 인해 많은 매개변수를 변조할 수 없다는 사실을 발견하고 즉시 생각했습니다. 또 다른 Razer 결제 사용자가 테스트에 협조해 주셨는데, 두 명의 사용자가 동일한 요청을 한 경우 세션 페이로드가 교체된 후 실행이 무효화되었기 때문입니다. ) 아직 거기에 있었어요.
사용자 서명(Signature) 생성 메커니즘을 분석하기로 했습니다. apktool과 Jadx-Gui 디컴파일을 통해 APP 작동에 대한 코드 수준의 이해를 얻었고 "라는 코드가 있다는 것을 발견했습니다. MD5Encode" 이름에서 알 수 있듯이 메서드 함수는 MD5 암호화 알고리즘을 사용합니다. 일부 매개변수 페이로드를 결합한 후 사용자 서명(Signature)을 생성해 보기로 했지만 아무리 노력해도 올바른 사용자 서명을 생성할 수 없었습니다. 매개변수의 순서가 잘못되었거나 잘못된 것일 수도 있습니다. 색다른 MD5 암호화.
다른 사용자의 은행 계좌 삭제
포기하거나 포기하지 마세요. 사용자 서명 생성과 관련된 모든 코드를 복사한 다음 IDE 디버깅 도구 IntelliJ IDEA를 사용하여 생성해 보았습니다. "MD5Encode"에서 메소드를 적용하는 과정에서 매개변수의 순서를 정확하게 조합했지만, 코드 난독화로 인해 약간의 미세 조정이 필요하지만 크게 어렵지는 않습니다. 마지막으로, 앞서 생성된 요청 본문에 올바른 매개변수 값을 삽입하고, 위 코드를 사용하여 올바른 사용자 서명(Signature) 문자열을 생성해보세요!
(편집자는 다음 다중 사용자 서명 생성 과정에서 매개 변수 중 하나인 사용자 고유의 토큰이 사용된다고 분석했습니다. 그런 다음 MD5Encode 메서드를 통해 여러 사용자 ID에 해당하는 서로 다른 사용자 서명이 생성될 수도 있습니다. 즉, 각 사용자 서명을 성공적으로 생성할 수 있습니다. Razer 서버에서 여러 사용자에게 할당된 서명)
이에서 가장 먼저 생각한 것은 무단 액세스 취약점(IDOR)을 테스트하는 것이었고, 사용자가 바인딩한 은행 계좌를 삭제하는 작업인 보다 민감한 API 인터페이스/deleteBankAccount를 선택한 다음 두 계정의 테스트 시나리오에서 다른 Razer Pay 사용자의 바인딩된 은행 계좌를 성공적으로 삭제할 수 있습니다!
다른 사용자가 만든 채팅 그룹에 참여하기
이 시점에서 IDOR 재정의 문제가 있는 Signature로 보호되는 다른 API 인터페이스가 있어야 한다고 생각하여 위의 방법을 사용하여 일련의 테스트를 시도했지만 아무것도 발견되지 않았습니다. 더욱이, 다른 API 인터페이스는 다른 코드 난독화 방법을 사용했기 때문에 이를 조사하고 분석하는 데 많은 시간을 소비했습니다. 잘 모르겠을 때 Frida를 사용해 보세요. Frida는 매우 사용하기 쉬운 디버깅 도구입니다. 이를 사용하면 위의 MD5Encode 방법과 결합하여 올바른 전자 지갑을 찾을 수 있습니다. .Code 패키지를 사용하면 이러한 메서드와 함수를 사용하여 새로운 올바른 사용자 서명 Signature를 생성할 수도 있습니다.
다음 frida.js 코드로 구현된 기능은 현재 사용자가 다른 사용자가 만든 채팅 그룹에 참여할 수 있도록 새 사용자 서명을 생성하는 것입니다.
<br>
<code>// frida.js - 다음 용도로 사용하세요. 다른 사람의 채팅 그룹에 사용자를 추가하기 위해 서명을 다시 계산하는 중
<code>// frida.js - Use this for recalculating signature for adding user to other people's chatgroup
<code>console.log("Starting...")
<code>Java.perform(function () {
<code>var MD5 = Java.use('com.mol.molwallet.view.MD5')
<code>MD5.MD5Encode.implementation = function (arg)
<code>{
<code>console.log("Hooking class MD5 - method MD5Encode")
<code>//Extra step - calculate new signature
<code>var ret_value = this.MD5Encode("groupId=1x9&userIds=95xxx7&token=b6fxxxd3-2xxc-4xxf-bxx7-7fxxxxa6")
<code>console.log("[+] signature= " + ret_value)
<code>//Call method with original arguments so app doesn't crash ..
<code>var ret_value = this.MD5Encode(arg) //original value
<code>console.log("original ARG: " + arg)
<code>return ret_value;
<code>}
<code>})
但是要运行Frida,需要root级别的访问,好在我另外发现了一个服务端漏洞可以让攻击者在一台root过的移动设备中执行操作,以下为在移动设备中启动Frida服务的命令:
<br>
$ adb shell
# sudo su
# /data/local/tmp/frida-server
<code>console.log("Starting...")
<code>Java.perform(function () {
<code>var MD5 = Java.use('com.mol.molwallet.view.MD5')
<code>MD5.MD5Encode.implementation = 함수(인수)
<code>{
<code>console.log("후킹 클래스 MD5 - 메소드 MD5Encode")
<code>//추가 단계 - 새 서명 계산
<code>var ret_value = this.MD5Encode("groupId=1x9&userIds=95xxx7&token=b6fxxxd3-2xxc-4xxf-bxx7-7fxxxxa6")
🎜🎜<code>콘솔. log ("[+] 서명= " + ret_value)
🎜🎜<code>//앱이 충돌하지 않도록 원래 인수를 사용하여 메서드를 호출합니다..
🎜🎜<code>var ret_value = this.MD5Encode(arg) //원래 값
🎜🎜<code>console.log("원래 ARG: " + arg)
🎜🎜<code>ret_value 반환;
🎜🎜<code>}
🎜🎜<code>})🎜🎜하지만 Frida를 실행하려면 루트 수준 액세스가 필요합니다. 다행히도 공격자가 루팅된 모바일 장치에서 작업을 수행할 수 있는 서버 측 취약점도 발견했습니다. 다음은 모바일 장치에서 Frida 서비스를 시작하는 명령입니다: 🎜$ frida -l frida.js -U com.mol.molwallet
$ adb shell
🎜🎜# sudo su
🎜🎜# /data/local/ tmp/ frida-server
🎜🎜그런 다음 다른 터미널 창에서 다음 명령을 실행합니다: 🎜rrreee🎜그런 다음 모바일 장치에서 Razer Payment APP를 열고 후크 메서드 "MD5Encode"를 호출합니다. 모든 작업은 위의 frida.js 스크립트를 실행하고 마지막으로 특정 사용자 요청에 대해 유효하고 올바른 사용자 서명 서명을 생성할 수 있습니다. 여기서 테스트 사례는 내가 직접 사용자 서명을 생성하고 이를 다음과 같이 사용할 수 있다는 것입니다. 다른 사용자가 만든 채팅 그룹에 가입하면 자신도 모르게 그룹에 가입한 후 다른 사람의 채팅 내용을 얻을 수 있거나 클릭하여 다른 사람이 보낸 빨간 봉투를 받을 수 있다는 위험이 있습니다. 🎜🎜🎜🎜🎜🎜🎜🎜로 인한 기타 보안 문제 🎜🎜위의 방법을 사용하여 Signature의 영향을 받는 다른 모든 API 인터페이스를 테스트한 결과 사용자 그룹 채팅에서 공유되는 빨간 봉투의 양을 이러한 API 인터페이스에서 얻을 수 있음을 발견했습니다. 또한, 다른 이용자의 이체기록 및 개인정보를 수정하고 조회할 수 있습니다. 🎜위 내용은 전자지갑 APP 취약점 분석 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Jingdong Mall APP에서 실명인증을 받는 방법은 무엇입니까? Jingdong Mall은 많은 친구들이 자주 사용하는 온라인 쇼핑 플랫폼입니다. 쇼핑하기 전에 모든 사람이 완전한 서비스를 즐기고 더 나은 쇼핑 경험을 얻을 수 있도록 실명 인증을 수행하는 것이 가장 좋습니다. 다음은 JD.com 실명인증 방법입니다. 네티즌분들께 도움이 되었으면 좋겠습니다. 1. JD.com을 설치하고 열고 개인 계정에 로그인합니다. 2. 그런 다음 페이지 하단의 [내]를 클릭하여 개인 센터 페이지로 들어갑니다. 3. 그런 다음 화면에서 작은 [설정] 아이콘을 클릭합니다. 오른쪽 상단에서 설정 기능 인터페이스로 이동합니다. 4. [계정 및 보안]을 선택하여 계정 설정 페이지로 이동합니다. 5. 마지막으로 [실명 인증] 옵션을 클릭하여 실명 정보를 입력합니다. 설치시스템에서는 실제 개인정보를 입력하고 실명인증을 완료해야 합니다.

Dashen APK를 예로 들어 보겠습니다. 앱 복호화 Lua 스크립트에 대한 이전 분석을 통해 Dashen APK의 Lua 스크립트를 복호화할 수 있습니다. 이제 해당 리소스(구성 파일 및 사진 등)를 복호화해 보겠습니다. 복호화 전의 더 중요한 구성 파일을 예로 들어 보겠습니다. 파일 헤더에는 fuckyou!라는 서명 값도 있습니다. 이것을 보고 우리는 먼저 xxtea로 암호화한 것인지 생각해 보았으며, 먼저 xxtea로 복호화한 후 압축을 풀어보니 여전히 오류가 발생하고 있었습니다. 우리가 방금 말한 것을 부정해야 합니다. 우리는 계속해서 구성 파일의 암호를 단계별로 해독합니다. 잠시 생각해 보세요. 파일 헤더는 다음과 같습니다. fuckyou! 파일을 해독하려면 필연적으로 처리가 필요합니다

Microsoft는 올해 초 Windows 11 보안 기능인 SmartAppControl을 출시했습니다. 당시 마이크로소프트는 이를 "신뢰할 수 없거나 잠재적으로 위험한 애플리케이션을 차단하는" 보호 도구라고 설명했습니다. 당시 이 도구의 독특한 점은 Windows 11 장치에서 실행되어야 하는지 여부를 결정했다는 것입니다. SmartAppControl은 처음에 평가 모드에서 실행됩니다. 이 모드에서 응용 프로그램을 열어야 할지 여부가 결정됩니다. Microsoft는 사용자가 Windows 보안 앱의 앱 및 브라우저 컨트롤 섹션에서 스마트 앱 컨트롤을 활성화할 수 있음을 밝혔습니다. Microsoft에만 따르면 SmartAppC

Apple의 제품과 서비스는 항상 전 세계 사용자들에게 사랑을 받아왔습니다. 홍콩 Apple ID를 등록하면 사용자에게 더 많은 편리함과 특권이 제공됩니다. 홍콩 Apple ID를 등록하는 단계와 주의해야 할 사항을 살펴보겠습니다. 홍콩 Apple ID를 등록하는 방법 Apple 장치를 사용할 때 많은 응용 프로그램과 기능에 로그인하려면 Apple ID를 사용해야 합니다. 홍콩에서 애플리케이션을 다운로드하거나 홍콩 AppStore의 특혜 콘텐츠를 즐기려면 홍콩 Apple ID를 등록하는 것이 매우 필요합니다. 이 기사에서는 홍콩 Apple ID를 등록하는 방법과 주의해야 할 사항에 대한 단계를 자세히 설명합니다. 단계: 언어 및 지역 선택: Apple 장치에서 "설정" 옵션을 찾아 입력하세요.

AppStore는 iOS 관련 애플리케이션을 위한 마켓플레이스입니다. 여기에서는 무료 앱과 유료 앱도 찾을 수 있습니다. 앱은 게임 앱, 생산성 앱, 유틸리티 앱, 소셜 미디어 앱 및 더 많은 카테고리의 앱이 될 수 있습니다. AppStore에서 iPhone용 앱을 많이 다운로드하거나 구입했을 수 있습니다. 이제 App Store에서 구매한 앱의 구매 내역을 확인하는 방법이 궁금하실 것입니다. 때로는 개인 정보 보호를 위해 구매 내역에서 특정 구매를 숨기고 싶을 수도 있습니다. 이 글에서는 구매 내역을 찾는 방법과 필요한 경우 구매 내역에서 구매 항목을 삭제/숨기는 방법을 안내합니다. 1 부

China Unicom 앱은 모든 사람의 요구를 쉽게 충족할 수 있습니다. 다양한 서비스를 처리하고 싶다면 여기에서 제때에 구독을 취소할 수 있습니다. 후속 손실을 피하기 위해 많은 사람들이 휴대폰을 사용할 때 데이터가 충분하지 않다고 느껴 추가 데이터 패키지를 구입하지만 다음 달에 원하지 않으면 즉시 구독을 취소하려는 경우가 있습니다. 에디터가 설명하는 구독 취소 방법을 제공하여, 필요한 친구들이 와서 사용할 수 있도록 해드립니다! China Unicom 앱의 오른쪽 하단에 있는 "내" 옵션을 찾아 클릭하세요. 내 인터페이스에서 내 서비스 열을 슬라이드하고 "주문했습니다" 옵션을 클릭하세요.

구매 증빙 자료인 송장은 우리의 일상 생활과 업무에 매우 중요합니다. 그럼 우리가 평소 듀오디안 앱을 사용해 쇼핑을 할 때, 듀오디안 앱에서 쉽게 송장을 발행할 수 있는 방법은 무엇일까요? 아래에서 이 웹사이트의 편집자가 멀티 포인트 앱에서 송장을 개설하는 방법에 대한 자세한 단계별 가이드를 제공합니다. 더 알고 싶은 사용자는 이 내용을 놓치지 마세요. [송장센터]에서 [다점슈퍼마켓/무료쇼핑]을 클릭하고, 완료된 주문페이지에서 송장발행이 필요한 주문을 선택한 후, 다음을 클릭하여 [송장정보], [수취인정보]를 입력한 후, 몇 분 후 수신 메일함을 입력하여 이메일을 열고 전자 청구서 다운로드 주소를 클릭한 후 마지막으로 전자 청구서를 다운로드하여 인쇄하세요.

최근 저자는 페이스북 안드로이드 앱에서 딥링크 취약점을 발견했다. 이 취약점을 이용해 사용자 휴대폰에 설치된 페이스북 안드로이드 앱을 백도어 프로그램(Backdoor)으로 변환해 백도어링을 수행할 수 있다. 또한 이 취약점은 Facebook 앱을 재패키지하여 특정 대상 피해자에게 전송하여 설치 및 사용하는 데에도 사용될 수 있습니다. 작성자가 이 취약점을 발견하는 과정과 Payload를 통해 이를 어떻게 구성하고 최종적으로 Facebook APP의 실제 제작 환경에서 보안 위험으로 변환시키는 방법을 살펴보겠습니다. 일반적으로 취약점을 발견할 때 공개 테스트를 수행할 때 먼저 대상 시스템의 적용 메커니즘을 주의 깊게 이해합니다. 지난 블로그에서 Face를 구문 분석하는 방법을 공유했습니다.
