Hello there, ('ω')ノ
データベースをダンプするための時間ベースのSQLインジェクションを。
脆弱性:
SQLインジェクション
Androidのバグ
記事:
https://thevillagehacker.medium.com/time-based-sql-injection-to-dumping-the-database-da0e5bcaa9df
SQLインジェクションとは:
攻撃者がアプリケーションがデータベースに対して行うクエリを妨害することを。
可能にするWebセキュリティの脆弱性で。
通常、攻撃者は通常は取得できないデータを表示できて。
これには、他のユーザに属するデータ、またはアプリケーション自体が。
アクセスできる他のデータが含まれる場合があって。
多くの場合、攻撃者はこのデータを変更または削除して。
アプリケーションのコンテンツや動作に永続的な変更を加える可能性があって。
今回は、脆弱性を見つけるために資産追跡アプリケーションをテストしていて。
それは、アンドロイドのアプリケーションで。
アプリをインストールして、それをリバースエンジニアリングして。
ハードコードされた秘密をチェックしたものの何も見つからず。
次に、SSL証明書のピン留めをバイパスしたところ。
アプリケーションが、下記を使用していることに気付いて。
Content-Type: application/json; charset=UTF-8
これは、JSONリクエストを使用してアクションを実行するアプリケーションを。
正確に意味しているので。
許可なくアクティビティをトリガできれば。
アプリケーションに大きな影響があるとすぐに思ったので。
MobSFからすべての活動を集めることに。
https://github.com/MobSF/Mobile-Security-Framework-MobSF
そのアプリケーションには、2つのダッシュボードアクティビティが存在するという。
アクティビティの1つが注意を引いたので。
最初のアクティビティをトリガするために使用することに。
com.abc.xyz.view.activity.DashboardActivity ⇨ activity 1com.abc.xyz.view.activity.DashboardActivitySecond ⇨ activity 2
アプリケーションのダッシュボードが開くとデフォルトのページが表示されるので。
次に、別のアクティビティを調べて何かを取得できるかどうかを確認すると。
下記のアクティビティが存在し、正常にトリガされて。
com.abc.xyz.view.activity.SearchActivity
探している正確な情報を検索するには多くの情報が必要であったので。
それらすべてを入力すると。
下記のリクエストのJSON本文が注意を引いたので。
インジェクションの脆弱性をチェックすることに。
abc_serial_noオブジェクトが注意を引いたので。
そのオブジェクトに ‘を追加して何が起こるかを確認すると。
500 INTERNAL SERVER ERRORが発生したので。
このオブジェクトはSQLインジェクションを実行することに対して脆弱で。
POSTリクエストをファイルにコピーして。
それをsqlmapに渡してプロセスを自動化して。
バックエンドデータベースを見つけることに。
sqlmap -r example.txt banner
すると、バックエンドデータベースはPostgreSQLで。
データベースバナーを取得しようとしたとき、sqlmapはJSONオブジェクトの。
abc_serial_noが、時間ベースのSQLインジェクションに対して。
脆弱であることを示したので。
ペイロードを適用してサーバからの応答が、5,044ms遅延していることを確認して。
下記がペイロードで。
”abc_serial_no”: ”1' AND 9520=(SELECT 9520 FROM PG_SLEEP(5)) AND ‘GRTs’=’GRTs”
下記のようにsqlmapを使用してデータベースを取得して。
sqlmap -r example.txt --dbs
データベースの取得:
sqlmapは、プロセス全体を自動化してデータベース全体を提供してくれて。
参考文献:
https://portswigger.net/web-security/sql-injection
https://github.com/thevillagehacker/Bug-Hunting/tree/main/SQL-Payloads
https://owasp.org/www-community/attacks/SQL_Injection
https://www.w3schools.com/sql/sql_injection.asp
Best regards, (^^ゞ