DIVAを使用してアプリケーションの分析事例をテスト
Insecure Logging
Logcat重要情報コメント
プロセス

Divaアプリケーションで、以下のCHECK OUTボタンを押すと、Logcatはコメントで情報を表示します.

01-14 21:34:43.258 3838 3838 E diva-log: Error while processing transaction with credit card: 1234
原因と解決策

以下のログ出力情報により、情報が露出します.
サービス重要情報と判断した場合はログ関連関数を削除します.
HardCodding Issue
ソースコードに重要な情報を挿入


次の図に示すように、関連仕入先鍵
vendorsecretkey
は、ソースコード内のコメントに暴露される.
キー値を入力すると、次のようにアクセスできます.

Jadx内でキー値の関連部分をstringで表す場合、以下のAPIキー値は平紋で表示されます.
Insecure Data Storage
外部および内部リポジトリの重要な情報の露出
Part1

以下のプレイヤー名とパスワードを取得できます.


id:makebank,pw:1 q 2 w 3 e 4 rストレージ.

内部ストレージ共有prefsアンjakhar.aseem.diva_preferences.xmlファイルに格納されているユーザー名とパスワードがフラットであることを確認できます.
→外部から分析したい場合は、
adb pull <Path>
コマンドを使用してPCに導入して分析します.
ソースコードを確認すると,ユーザ情報とパスワード情報が暗号化されずにそのまま保存されていることが分かる.
Part2



id:makeband,pw:1 q 2 w 3 d 4 rとしてpart 1に示すように保存します.

/databaseディレクトリでls-alを使用して情報を表示すると、新しいids 2、ids 2-journalとDBに関連するファイルが見つかります.

adb pullコマンドで対応するデータベースディレクトリを取得し、DBを開きます.


最初に保存したユーザー情報とパスワード情報は、内部リポジトリデータベースにバッチ形式で格納されていることがわかります.
or adb shellでは、
sqlite3 ids2
コマンドで直接確認できます.sqlite3 ids
→.tables
表情報確認→
.dump myuser
→myuserテーブル内部情報チェック

ソースコードには、平織りでDBに格納されていることがわかります.
→SQL Cipherなどの利用可能または暗号化可能なモジュールの開発
Part3



以前の手順と同様にid:makebreak,pw:1 q 2 w 3 e 4 rとして保存した.

tmpファイルは内部リポジトリに再保存されました.
このファイルを実行すると、idとパスワードが平文に保存されていることを確認できます.

ソースコード上でtempファイルを生成する場合、暗号化する必要はなく、フラット
getText().toString()
に直接書き込む.Part4



以前の過程と同じです.

今回は/sdcard外部ストレージディレクトリにあります.uinfo.txtファイルは、アイデンティティとパスワードが平文として保存されていることを示します.
Input Validation Issues
入力値検証脆弱性
Part1

ヒントによると、この検索機能では入力値をフィルタリングせず、dbには3人のユーザしかいない.このうちadminに関連する部分が結果である.

シングルクォータ入力時にlogcatで次のエラーが発生しました.
Diva-sqli: Error occurred while searching in database: unrecognized token: "'''" (code 1): , while compiling: SELECT * FROM sqliuser WHERE user = '''
単一割当に対するフィルタは存在しません.
エラーにさらされたSQL構文を考慮して、簡単にSQLIを試してみると、関連情報が明らかになります.
'or '1'='1

ソースコードを表示すると、関連するフィルタが見つかりません.
Part2

これは,web urlへの入力検証がないために生じる可能性のある弱点事例の問題である.

次の内部ファイル情報を表示できます.

setJavascriptEnabled(true); に設定します.
WebビューでloadUrl()を実行してもurlの検証はありません
Reference
この問題について(DIVAを使用してアプリケーションの分析事例をテスト), 我々は、より多くの情報をここで見つけました https://velog.io/@makebread/DIVA-테스트앱을-활용한-분석-사례テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol