ASPを使用してアプリケーションを開発すると、この記事でASPデータベースが吊り下げられる状況に遭遇する可能性がありますあなたに役立ちます。
この記事では、Trojanの詳細なソリューションのプログラミング方法をASPデータベースに絞り込みます。
最初のステップ:
既存のデータベースのバックアップを作成します。
ステップ2:
データベース内のJSトロイの木馬を削除できるように、次のASPファイルを実行します。
注:自分で書いた。
「JSトロイの木馬のコンテンツをここに置く:あなた自身のデータベースでJSトロイの木馬のコンテンツに変更することを忘れないでください。
- <! - #includefile = conn.asp->
- <%
- server.scripttimeout = 180setrstschema = conn.openschema(20)
- k = 1
- dountilrstschema.eof 'データベーステーブルのトラバーサル
- ifrstschema(table_type)= tablethen
- respons.writek&。<fontcolor = red> <b>&rstschema(table_name)&</b> </font>: 'テーブル名setrs = server.createobject(adodb.recordset)を表示
- sql = select*from [&rstschema(table_name)&]
- rs.opensql、conn、1,3fori = 0tors.fields.count-1'transfer field ifint(rs(i).type)= 129
- orint(rs(i).type)= 130orint(rs(i).type)= 200Orint(rs(i).type)= 201Orint(rs(i).type)= 202Orint(rs(i).type)= 203then 'フィールドタイプの文字タイプのフィールドのみを処理します
- conn.execute(update [&rstschema(table_name)&] set&rs(i).name&= fack(cast(&rs(i).name&&
- Asvarchar(8000))、「JS Trojanコンテンツをここに置く」、 '、' '))))
- endif
- 次
- Response.Write <br>
- endif
- rstschema.movenext
- KK = K+1
- ループ
- response.write実行を正常に作成します
- %>
多くのデータベーステーブルがある場合、上記のトラバーサルデータベース構造は、実行する前にIISによって停止されます。この時点であなたはできます:
rstschema(table_type)=テーブルの場合
k値の範囲は、次のような適切に追加されます。
rstschema(table_type)= table k> 10およびk <20の場合
このようにして、一度に操作されるのは9つのテーブルのみです。
ステップ3:
データベースJSインジェクションの特性(http://などの文字が含まれる)によると、次のコードをconn.aspに入れます。
- functionCheack_sqljs() 'データベース外部リンクJSインジェクションを防ぐ:TRUEは、外部リンクJSインジェクションを発見することです。
- dimf_post、f_get
- check_sqljs = false
- ifrequest.form <> then 'foreachf_postinrequest.formifの検出(lcase(request.form(f_post))、
- <スクリプト)<> 0ORINSTR(lcase(request.form(f_post))、</script>)<> 0)
- andinstr(lcase(request.form(f_post))、http://)<> 0then
- check_sqljs = true
- exitfor
- endif
- 次
- endif
- ifrequest.querystring <> then'queryStringの検出foreachf_getinrequest.querystring
- if(strust(lcase.form(f_get))、<script)<> 0Orinstr(lcease.form(f_get))、</script>)<> 0)
- andinstr(lcase(request.form(f_get))、http://)<> 0then
- check_sqljs = true
- exitfor
- endif
- 次
- endif
- エンド機能
- functionCheckDataFrom() '提出されたデータを確認したソース:trueはサイトの外部からのデータに送信されます
- checkDataFrom = true
- server_v1 = cstr(request.servervariables(http_referer))server_v2 = cstr(request.servervariables(server_name))
- ifmid(server_v1,8、len(server_v2))<> server_v2then
- checkDataFrom = false
- endif
- エンド機能
- ifcheack_sqljsorcheckdatafromthen
- respons.write <scriptlanguage = javascript> alert( '実行は禁止されています、違法操作。'); </script> response.end()
- endif
これは、ASPデータベースがトロイの木馬を吊るしているときのプログラミング方法です。