Hello there, ('ω')ノ
城のトイレを。
脆弱性:
SQL インジェクション
記事:
https://blog.infiltrateops.io/the-castles-latrine-10f9c16548bd
今回は、シャトー ガイヤール城の見過ごされがちなトイレの脆弱性と同様に。
目標を評価する際には、システムのあらゆる側面を考慮することが重要で。
攻撃者は、これらの見過ごされている脆弱性を悪用して、システムにアクセスして。
シャトー ガイヤール城のトイレの脆弱性が見落とされているように。
企業は自社のインフラストラクチャに作成された脆弱性を見落としがちで。
守らなければならない締め切りと、ライブにする必要のある機能があり。
結果として、開発コードを本番環境にプッシュすることを熱望することがよくあり。
急いで物事を終わらせようとすると。
セキュリティ テストが見落とされることがよくあり。
これにより、本番システムに脆弱性が導入される可能性があり。
城のセキュリティが破られる危険性があって。
OSINT を実行しているときに、興味深いサーバを発見し。
以下に示すように、Shodan に ssl:companyname をクエリして。
このクエリはいくつかの結果につながりますが、組織で OSINT を実行しているときに。
これまで遭遇したことのない結果に気付き。
そのサイトを閲覧すると、ログイン プロンプトが表示され。
アプリ自体のスクリーンショットを表示することはできませんが。
認証されていない方法でアプリケーションの一部で SQL インジェクションを。
取得できた方法を。
テスト中の Web アプリケーションに出会ったときに最初に行うことの 1 つは。
linkfinder などのツールを使用することで。
LinkFinder は、指定したページに埋め込まれた JavaScript ファイルを解析し。
識別された JavaScript ファイル内の潜在的なエンドポイントを解析して。
https://github.com/GerbenJavado/LinkFinder
下記は、LinkFinderでJavaScriptファイルからエンドポイントをダンプする例で。
通常行うことは、linkfinder からの出力を検索して。
スラッシュで始まる結果を取得することで。
これは次のようになり。
linkfinder.py https://someplace.com/target.js -o cli | grep ‘^/’ >> results.txt
results.txt ファイルに次のような内容があることに気付き。
/some/endpoint?SomeVariable=
当然のことながら、https://someplace.com/some/endpoint?SomeVariable= を。
参照したところ、「0」という数字のみが表示され。
次のステップは、SQL クエリを壊すことを期待して。
単純に変数にアポストロフィを割り当てることで。
これにより、下の画像のメッセージと同様のエラーが発生して。
それに続いて、sqlmap を活用して、アプリケーション内で 。
SQL インジェクションを正常に取得することができて。
以下で使用したコマンドと同様のコマンド。
sqlmap -u “https://someplace.com/some/endpoint?SomeVariable=TEST”
侵入テストは、セキュリティ テスト プロセスの重要な部分で。
これにより、セキュリティの専門家は攻撃者のように行動し。
システムのセキュリティを破る方法を見つけることができて。
この記事では、組織が準備ができていないコードを本番環境にプッシュし。
城を攻撃に対して脆弱なままにすることがいかに簡単であるかを示して。
これは、開発プロセス中、およびリリースが本番環境に投入される前の。
セキュリティ テストの重要性を強調していて。
Best regards, ('ω')ノ