완벽한 것은 없기 때문에 허점은 불가피합니다. 허점이 발생한 후에는 데이터베이스의 접미사 변경, 데이터베이스 이름 변경 등 다양한 대책이 뒤따릅니다. 많은 사람들은 이것만 하면 문제가 해결될 것이라고 생각하지만, 현실은 당신과 내가 원하는 것이 아닐 때가 많습니다.
스크립트 취약점의 가장 큰 킬러인 데이터베이스 다운로드 취약점은 이제 점점 더 많은 사람들에게 알려져 있습니다. 급속한 정보기술 업데이트 시대에는 취약점 발생 이후 데이터베이스의 접미사 변경, 데이터베이스 이름 변경 등 다양한 대응 조치가 취해지고 있다. 많은 사람들은 이것만 하면 문제가 해결될 것이라고 생각하지만, 현실은 당신과 내가 원하는 것이 아닐 때가 많습니다. 이러한 이유로 보안 기술을 향상시키기 위해서는 몇 가지 공격 기술을 이해하는 것이 필요합니다.
1. 접미사 이름이 ASP 및 ASA인 데이터베이스 파일을 강제로 다운로드합니다.
대부분의 네트워크 관리자는 시간을 절약하기 위해 다른 사람의 기사 시스템, 포럼 및 기타 프로그램에 대한 소스 프로그램을 자신의 웹 사이트에서 직접 다운로드한 다음 약간 수정한 후 사용합니다. 요즘 많은 사람들의 ASP 소스 프로그램은 데이터베이스 접미사를 원래 MDB에서 ASP 또는 ASA로 변경했습니다. 원래는 좋은 일이었지만, 정보가 극도로 확장된 사회에서 낡은 방식은 제한된 시간 동안만 지속될 수 있다. ASP 또는 ASA 접미사가 있는 데이터베이스 파일의 경우 해커는 저장 위치를 알고 있는 한 Thunder와 같은 다운로드 소프트웨어를 사용하여 쉽게 다운로드할 수 있습니다. 그림 1은 저자가 Thunder를 사용하여 다운로드한 데이터베이스 파일입니다(데이터베이스의 접미사는 ASP입니다).
2. 치명적인 기호-#
많은 네트워크 관리자는 데이터베이스 앞에 # 기호를 추가하면 데이터베이스가 다운로드되지 않을 수 있다고 생각합니다. 예, 또한 IE는 # 기호가 있는 파일을 다운로드할 수 없다고 생각했습니다(IE는 # 기호 뒤의 콘텐츠를 자동으로 무시합니다). 그러나 성공은 실패이기도 하며, 우리는 웹 페이지에 일반적인 방법으로 접근할 수 있을 뿐만 아니라 IE의 인코딩 기술을 사용하여 접근할 수도 있다는 사실을 망각합니다.
IE에서는 각 문자가 코드에 해당하며 코드 문자 %23은 # 기호를 대체할 수 있습니다. 이러한 방식으로 접미사가 수정되고 # 기호만 추가된 데이터베이스 파일을 계속 다운로드할 수 있습니다. 예를 들어 #data.mdb는 우리가 다운로드하려는 파일입니다. IE를 사용하여 데이터베이스 파일을 다운로드하려면 브라우저에 %23data.mdb만 입력하면 됩니다. # 이 방법은 쓸모가 없습니다.
3. 암호화된 데이터베이스에 접근하는 것은 쉽습니다.
일부 네트워크 관리자는 해커가 데이터베이스를 획득하더라도 이를 열려면 비밀번호가 필요하다고 생각하여 Access 데이터베이스를 암호화하기를 좋아합니다. 그러나 그 반대는 사실입니다. Access의 암호화 알고리즘은 너무 취약하기 때문에 해커는 Access 데이터베이스 비밀번호를 해독할 수 있는 소프트웨어를 인터넷에서 찾기만 하면 단 몇 초 만에 쉽게 비밀번호를 알아낼 수 있습니다. Accesskey와 같은 온라인 소프트웨어가 많이 있습니다.
4. 인스턴트 킬 데이터 데이터베이스 기술
데이터베이스 익스플로잇 기술 자체가 스크립트 취약점에 속해야 하는데, 여기서 언급하는 이유는 데이터베이스 다운로드 취약점에 결정적인 역할을 하기 때문입니다. 데이터베이스 이름은 특정 상황에서만 구현할 수 있습니다. 하지만 데이터베이스의 이름을 아는 것이 불가능할 때가 많으며, 이때 우리는 더 이상 진행할 수 없다고 느낄 수도 있습니다. 그러나 데이터베이스 데이터베이스 기술의 출현은 우리의 좌절감을 해소할 수 있을 뿐만 아니라, 이전 기술을 결합하여 활용하는 것입니다.
많은 사람들이 ASP를 사용하여 데이터 연결 파일을 작성할 때 항상 다음과 같이 작성합니다(conn.asp).
- …
- db=데이터/rds_dbd32rfd213fg.mdb
- Setconn=Server.CreateObject(ADODB.Connection)
- connstr=공급자=Microsoft.Jet.OLEDB.4.0;DataSource=&Server.MapPath(db)
- conn.Openconnstr
- functionCloseDatabase
- 연결닫기
- Setconn=아무것도 없음
- …
이 말은 문제가 없는 것 같고, 데이터베이스 이름도 매우 이상합니다. 데이터베이스 무차별 대입 기술이 없다면 그러한 데이터베이스 이름을 추측할 가능성은 거의 0에 가깝습니다. 하지만 이렇게 짧은 문장에는 무한한 정보가 숨겨져 있습니다. 인터넷상의 대부분의 프로그램에는 이러한 취약점이 있다고 할 수 있습니다. 데이터베이스 위치에 액세스하려면 데이터 연결 파일 conn.asp(보통 this) 앞의 /를 주소 표시줄의 %5c로 바꾸면 됩니다. 두뇌를 사용하면 아무것도 할 수 없습니다.
위의 내용이 이 기사의 전체 내용입니다. 모두 마음에 드셨으면 좋겠습니다.