ASP를 사용하여 응용 프로그램을 개발하면 ASP 데이터베이스가 트로이 목마에 걸려있는 상황이 발생할 수 있습니다 당신에게 도움이 될 것입니다.
이 기사에서는 ASP 데이터베이스에 매달린 트로이 목마의 자세한 솔루션의 프로그래밍 방법을 자세히 소개합니다.
첫 번째 단계 :
기존 데이터베이스에 대한 백업을 만듭니다.
Step 2:
데이터베이스의 JS 트로이 목마를 제거 할 수 있도록 다음 ASP 파일을 실행하십시오.
참고 : 나는 그것을 직접 썼다.
'JS Trojan 컨텐츠를 여기에 넣으십시오. 데이터베이스의 JS Trojan 콘텐츠로 변경하십시오.
- <!-#includefile = conn.asp->
- <%
- Server.ScriptTimeout = 180SetrstSchema = Conn.OpenSchema (20)
- k = 1
- dountilrstschema.eof '데이터베이스 테이블의 트래버스
- ifrstschema (table_type) = tablethen
- response.writek &. <fontcolor = red> <b> & rstschema (table_name) & </b> </font> : 'show table name 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) = 203이 '필드 유형 문자 유형을 갖는 필드 만 처리합니다
- conn.Execute (update [& rstschema (table_name) &] set & rs (i) .name & = replace (cast (& rs (i) .name &
- ASVARCHAR (8000)), 'JS TROJAN 컨텐츠를 여기에 넣습니다', ')) 응답 (i) .name && rs (i). 타입 &'실행 된 필드 이름을 표시합니다.
- endif
- 다음
- 응답 <br>
- endif
- rstschema.movenext
- kk = k+1
- 고리
- 응답. 실행을 성공적으로 작성하십시오
- %>
많은 데이터베이스 테이블이있는 경우 위의 Traversal 데이터베이스 구조는 실행되기 전에 IIS에 의해 중지됩니다. 현재로서는 다음과 같습니다.
rstschema (table_type) = 테이블이면
k 값의 범위는 다음과 같이 적절하게 추가됩니다.
rstschema (table_type) = 표 k> 10 및 k <20 인 경우
이런 식으로 한 번에 9 개의 테이블 만 작동됩니다.
3 단계 : 3 단계 :
데이터베이스 JS 주입 (http : //와 같은 문자 포함)의 특성에 따르면 다음 코드를 Conn.asp에 넣으십시오.
- functioncheack_sqljs () '데이터베이스 외부 링크 js 주입 : true는 외부 링크 js 주입을 발견하는 것입니다.
- dimf_post, f_get
- check_sqljs = false
- ifrequest.form <> 그런 다음 'foreachf_postinrequest.formif (instr (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 <> extring foreachf_getInrequest.querystring에 대한 QueryString 감지
- if (instr (lcase (request.form (f_get)), <script) <> 0orinst (lcase (reques.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.servervaribles (http_referer)) server_v2 = cstr (request.servervariables (server_name))
- ifmid (server_v1,8, len (server_v2)) <> server_v2then
- CheckDataFrom = false
- endif
- 최종 기능 장애
- ifcheack_sqljsorCheckDataThenten
- response.write <scriptLanguage = javaScript> alert ( '실행은 금지되어 있고 불법적 인 작동.'); </script> response.end ()
- endif
이것은 ASP 데이터베이스가 트로이 목마에 걸려있을 때 프로그래밍 방법에 관한 것입니다.