Wargame/android

Insecurebankv2

EYEN 2024. 8. 12. 18:50

1. 환경구축

여기서부터 너무 힘들었다. 구글링에 불신생겨~..

https://benkyoblog.tistory.com/8

 

InsecureBankv2 환경 구축

환경 구축우선… 파이썬 2.7 버전으로 진행해야 하기 때문에 맥북에서는 할 수가 없어서, 윈도우 노트북을 꺼내서 진행했다.. 파이썬 2로 처음에 갈아엎는 굉장히 바보 같은짓을 하다가, 다시 갈

benkyoblog.tistory.com

 

따라한 블로그

 

2. 풀이 과정

 

1) exported=true인 액티비티 분석

 

2) uname을 intent로 받아서 쓰는 경우가 많은데 전체적으로 다 검증을 안하고 실행하는 것을 발견

 

 

3. 찾은 취약점 

1) Vulnerable Activity Components: 취약한 액티비티 컴포넌트

exported="true"되어있는 액티비티 중 로그인 이후의 기능이 있는 액티비티가 있었고, 그 액티비티를 다음과 같이 실행하면

이렇게 실행이 가능하다.

즉, 로그인하지 않아도 회원이 쓰는 기능을 쓸 수 있다.

 

2) intent Sniffing and Injection

1번과 이어지는 내용으로 uname이라는 키를 받아 postlogin이 실행되는데 여기서 intent injection을 통해 uname을 조작하여 전송하면

changePassword에 갔을 때 username이 jack이 된것을 확인할 수 있다.

 

 jack으로 로그인이 된 것이다

 

3) Insecure Webview implementation webview

 

Viewstatement activity의 코드이다.

intent를 uname이라는 키로 받아와서 Statements_[uname].html 이렇게 파일이름을 지정하고, 뭔진 모르겠지만 new file()해서 그걸 system.out.printIn으로 출력을 한다. 

 

아 Environment.~는 경로인가보다.

그게 존재하면 Webview를 생성하는데, file://Environment/filename하고 jsenabled하고 진행하는데, startActivity(gobacktoPostLogin)

 

음.,외부디렉토리에서 로드를 한다.

외부 디렉토리인 /sdcard에 내가 만든 html 파일을 "Statements_hello.html" 로 파일명을 지정해서 넣어줬다.

/storage/emulated/0도 가능한 것 같다.

 

setjavascriptenabled 코드 보고 xss라고 생각한 것 같은디...;;;; 

 

4) insecure logging mechanism

 

5) insecure db

 

6) 하드코딩된 비밀

 

superSecurePassword,