의미없는 블로그
[Android] 인텐트 취약점 본문
AndroidManifest.xml 에서 스키마 존재할 때
am start -n [패키지명]/[액티비티명] -d [스키마]
인텐트에 대한 검증이 없으면 타 사이트로 리다이렉트 시킬 수 있다 (취약)
공격자가 해당 인텐트 호출하는 페이지 만들어서
클릭하면 타 사이트(ex. 악성 사이트)로 넘어가게끔 할 수 있다
↓ 요거 클릭하면 네이버로 넘어가게
인텐트에서 넘어가는 값에 대해 잘 검증해야 한다
getIntent() 같이 인텐트 받아오는곳 위주로 봐야 하는데
1. 스키마(wxxxx)가 있는 액티비티(SchemeInterfaceActivity.class)를 열어서
2. 액티비티(SchemeInterfaceActivity.class) 에서 OnCreate 를 찾는다
Intent intent = getIntent(); 인텐트 선언하고
intent.getDataString(); 으로 인텐트 받아온다 (-d 로 받아오는 값)
sendScheme(str) 로 보내고
sendScheme(str) 은 브로드캐스트(ShoppingSchemeBroadCastReceiver.class) 로 보내고 있네
3. 브로드캐스트(ShoppingSchemeBroadCastReceiver.class) 에서 OnReceive 로 받는다
str 이 위에서 전달한 값이잖아
str 값이 있으면 ShoppingSchemeController.init(str) 하고 있다
아래 코드들은 브로드캐스트 처리하는 그런건가?
4. ShoppingSchemeController.class 는 SchemeActionController 상속 받고 있어서
5. SchemeActionController.class 에 init() 있다
parseData() 부른다
parseData() 는 입력값에서 getMethodName() 뽑아내서 str 에 담는데
입력값 형태가 wxxxx://aaaa?bbbb=&cccc=&dddd=... 이런식이잖아
그래서 getMethodName() 하면 str = aaaa 가 된다
str = moveTab 일때 hashMap 에서 index, url 값 뽑아다가
뒤에 어딘가에서 갖다 쓰니까 실행되는거겠지..
넘 힘들어서 몬보게따
무튼 그래서 wxxxx://moveTab?url= 하거나 wxxxx://execute?url= 하면 인텐트 실행된다
디컴파일 할때 enjarify 가 잘 안나올 때 있다..
수동으로 디컴파일 하거나 apkautotool 사용해서 보기..
getLongExtra() 요런것도 있는데
나중에 긔긔
'# 나 > nnobile (AOS, iOS)' 카테고리의 다른 글
[Android] 인텐트 getStringExtra() 로 액티비티 실행 (0) | 2023.12.29 |
---|---|
[에러] unexpectedly timed out while waiting for app to launch android (0) | 2023.12.20 |
[Android] frida(15.1.14) 설치해서 메모리 덤프 (0) | 2023.12.06 |
[Android] 갤노트9 루팅 (2) | 2023.10.05 |
[iOS] nogada (frida 탈옥 우회/Keychain Dumper) (0) | 2023.02.21 |