ASP+MSSQL 2000 데이터베이스 대량 주입 후 해결 방법 1/2 페이지

mssql 의 모든 varchar,text 필드 는 자동 으로 js 코드 를 삽입 합 니 다.이 코드 를 삭제 하 더 라 도 원본 에서 해결 하지 않 으 면 몇 분 후에 js 코드 는 자동 으로 데이터 베 이 스 를 삽입 합 니 다.쉽게 관찰 한 결과 프로그램 이 자동 으로 실 행 될 가능성 이 높다.해커 는 먼저 검색엔진 구 글,바 이 두 등 검색 에 구멍 이 있 는 asp+mssql 로 디자인 된 사 이 트 를 사용 한 다음 에 샤 오 밍 자 와 같은 주입 스 캔 도 구 를 사용 하여 전체 사 이 트 를 스 캔 한다.sql 이 입력 한 구멍 이나 업로드 구멍 이 발견 되면 해커 는 각종 수단 을 통 해 자신의 큰 말 을 업로드 한다.해 양 목마 처럼;그 다음 에 해커 는 이 사 이 트 를 그의 육계 목록 에 포함 시 켜 수시로 데이터 베이스 에 자신 이 원 하 는 js 코드 를 추가 했다.이런 코드 는 많은 바이러스,목마 가 포함 되 어 있 고 결국은 통 제 된 사 이 트 를 방문 하 는 사용자 의 컴퓨터 를 중독 시킨다.sql 조회 분석 기 를 통 해 대량 대 체 를 실시 하여 삽 입 된 js 코드 문 제 를 잠시 해결 할 수 있 지만 전체 사이트 에 존재 하 는 구멍 을 근본적으로 해결 하지 않 습 니 다.프로그램 과 서버 보안 권한 을 포함 하여 해커 는 언제든지 사이트 데이터 라 이브 러 리 를 침입 할 수 있 습 니 다.sql 조회 분석 기 에서 다음 과 같은 코드 를 실행 하여 js 코드 를 대량으로 교체 할 수 있다

“ update set =replace( ,'<Script Src=http://c.n%75clear3.com/css/c.js></Script>','') ”
flymorn 은 사 이 트 를 자세히 검사 한 결과 사이트 에 몇 가지 안전 문제 가 존재 하 는 것 을 발견 했다.첫째,사이트 에 업로드 구멍 이 존재 한다.파일 을 업로드 하려 면 관리자 인증 이 필요 하고 업로드 파일 에 대한 파일 형식 인증 도 이 루어 졌 지만 관리자 인증 은 cookies 를 사 용 했 고 cookies 는 위 조 될 수 있 으 며 사진 을 업로드 한 후 해당 파일 의 내용 에 대해 어떠한 판단 도 하지 않 으 면 사진 목마 도 올 라 갈 가능성 이 높다.해결 조치:1 업로드 파일 기능 삭제(현실 적 이지 않 음);2.업로드 사용자 인증 을 session 인증 으로 수정 합 니 다.3.올 린 파일 내용 을 검증 하고 그림 목마 라면 삭제 합 니 다.다음 과 같은 검증 코드 를 참고 할 수 있 습 니 다

''=============== start================
set MyFile = server.CreateObject("Scripting.FileSystemObject")
set MyText = MyFile.OpenTextFile(Server.mappath(filePath), 1) '
sTextAll = lcase(MyText.ReadAll)
MyText.close
set MyFile = nothing
sStr="<%|.getfolder|.createfolder|.deletefolder|.createdirectory|.deletedirectory|.saveas|wscript.shell|script.encode|server.|.createobject|execute|activexobject|language="
sNoString = split(sStr,"|")
for i=0 to ubound(sNoString)
if instr(sTextAll,sNoString(i)) then
set filedel = server.CreateObject("Scripting.FileSystemObject")
filedel.deletefile Server.mappath(filePath)
set filedel = nothing
Response.Write("<script>alert(' , !');history.back();</script>")
Response.End
end if
next
''================= end===================
둘째,사이트 에 cookies 주입 구멍 이 존재 합 니 다.프로 그래 밍 에서 서버 의 비용 을 줄 이기 위해 모든 사용자 가 로그 인 한 후에 cookies 로 검 증 했 습 니 다.이 cookies 에는 사용자 의 ID 와 NAME 가 저장 되 어 있 습 니 다.cookies 는 해커 에 의 해 자주 위 조 된 것 으로 알려 져 있 습 니 다.이것 은 그 중의 하나 입 니 다.또한 일부 외부 매개 변 수 는 엄격 한 request.form 과 request.query string 으로 내용 을 가 져 오지 않 았 으 며 간편 하기 위해 request("id")와 같은 방식 을 사용 했다.        ASP 의 request 는 form,query string 에서 먼저 내용 을 가 져 오 는 것 을 알 고 있 습 니 다.이 두 개가 비어 있 으 면 cookies 에서 내용 을 가 져 와 야 합 니 다.여러분 은 프로그램 디자인 에서 request.form 과 request.query string 의 SQL 주입 을 고려 하기 때문에 보통 request.form 과 request.query string 을 걸 러 서 sql 주입 을 합 니 다.그러나 하필 이면 cookies 방식 의 주입 을 걸 러 내 는 것 을 잊 었 다.다음 과 같은 sql 문 구 를 살 펴 보 겠 습 니 다

SQL="select * from where id="&request("id")
만약 에 이 id 가 마침 cookies 를 통 해 값 을 얻 었 다 면 생각해 보 세 요.이것 은 얼마나 무 서운 일 입 니까?주입 자 는 id 라 는 허위 cookies 를 쉽게 위조 할 수 있 습 니 다.이 id 의 cookies 는 서버 에서 분 배 된 것 이기 때 문 입 니 다.이 cookies 는 다음 과 같은 코드 를 위조 할 수 있 습 니 다.
1 2 다음 페이지 전문 을 읽다

좋은 웹페이지 즐겨찾기