보안글2009/12/30 14:00

 많은 보안관련 사이트에서 IIS 의 파일확장자 우회를 통한 취약점에 대한 이야기가 많습니다.
IIS 6(window2003) 이하 버전 에서만 이러한 현상이 벌어진다고 하는데, 테스트를 해보니 그렇지않았습니다.

IIS5 (window 2000) 버전에서는 이러한 증상이 해당되지 않았습니다.[각주:1]
IIS 5 파일확장자 우회취약점 캡춰


하지만 IIS 6 에서는 tt.asp 의 파일명을 tt.asp;.jpg 로 변경하더라도 ASP 파일처럼 동작을 합니다. [각주:2] 닷넷파일은 확장자를 인식하지 못하였습니다.


참조



추가.
2010.01.02 기능상의 버그일뿐 취약점은 아니라고 합니다.
참조
Public disclosure of IIS security issue with semi-colons in URL - IIS 블로그
URL에 세미콜론이 있는 경우 IIS 6.0의 처리 문제 - Secre Korea 블로그
  1. 기본 OS 설치에 IIS 만 올린 상태인데 ASP 파일처럼 사용되기는 커녕 텍스트파일처럼 사용이 됩니다. [본문으로]
  2. IIS5 버전과 IIS6 버전의 ASP.dll 파일이 버전이 다릅니다. IIS5의 asp.dll 버전은 5.0.2195.6672 이며, IIS6의 asp.dll 버전은 6.0.3790.3050 입니다. [본문으로]
Posted by Zasfe
이야기2009/12/16 10:03

아이폰이 국내 출시된후로 많은 부분에서 영향을 주고 있습니다. 특히 쇼핑몰인터넷뱅킹에 대해서는 이미 국내 대형업체에서 이미 관련 어플리케이션(이하 어플)이 나온시점이고[각주:1], 해외에서는 이미 활성화되어 있는 모바일로 시작되는 시장을 국내에서는 기피해왔었다고 할수있습니다.

모바일시장(모바일로 결재가 이루어지는 시장)이 활성화되는 것을 단지 추세로 생각을 하고 지금처럼 오직 웹과 실물만을 시장이라고 생각한다면 그 끝은 멀지 않았다고 생각합니다.

변화를 거부하려는 것이 성장을 거부하고 잠재력을 잠자게 만들고 있을 뿐이란 것을 요즘 많이 느끼고 있습니다.  변화를 두려워 하는 것은 실패에 대한 두려움 때문입니다. 그렇지만 실패라는 것은 목적을 달성하지 못했을뿐이지, 두려워해야하는 것은 아닙니다. 변화를 하는 동안 변화를 거부할때에는 전혀 알지 못하던 것을 알아가는 계기가 될수도 있습니다.

결국 변화를 거부하며 아무것도 하지 않는 것은 현상유지를 하게 되겠지만, 상대적으로 비교를 했을때는 뒤처지게 되는것일 뿐입니다.

  1. 물론 은행권에서는 인터넷뱅킹을 위한 스마트폰 뱅킹 시스템을 개발하고 있다고 한다. 이미 만들어져있는 공통환경을 위한 것이라면 더 바람직한것은 없을것이지만 또다른 activex 와 같은 새로운 악명을 떨칠지는 두고봐야 할것이다. [본문으로]

'이야기' 카테고리의 다른 글

KGB 의정부 지사 완전 비추  (0) 2012/02/09
25일에 대한 기록  (0) 2011/12/26
모바일시장에 대한 편협한 생각  (3) 2009/12/16
내가 원하는 나  (0) 2009/12/15
일복터진날  (4) 2009/08/23
나를 위한 직장 - 이기적인 직장  (0) 2009/08/10
Posted by Zasfe
이야기2009/12/15 13:00
CEO가 원하는 능동형 인간
하늘이 사람에게 큰 임무를 내리려 할때는 반드시 먼저 의지를 시험하고, 근육과 뼈를 고통스럽게 하며, 몸과 피부를 굶주리게 한다
- CEO가 원하는 능동형 인간

처음 이 글을 접하게 된 것은 슬럼프 라는 이름의 매너리즘으로 지금 내가 하고있는 것이 과연 잘하고 있는 것일까 라는 물음속에서 헤매고 있을때 였습니다.

내주위가 멈춰버리고 나를 제외한 사람들이 나를 제치고 지나가고 그들의 등뒤를 바라보며 따라가려해도 점점 멀어져가는 것만 같았습니다. 나만 덩그러니 남겨져서 왜 이러고 있는건지, 빨리 함께하고 싶다는 생각이 간절했습니다.

의존적 성격이라고 말할수도 있습니다. 다른사람들의 말과 행동을 나의 판단기준으로 생각하는, 끝없는 기준을 위해 자기자신을 체찍질하는 그런것 말입니다. 남들의 시선을 인식하고 주목을 받음으로써 성취감을 느끼는 수동적인 성격과 행동을 하는 다루기 쉬운 인간이 된것같았습니다

이러한 생활을 벗어나기위해 일보다는 나 자신을 가다듬어야 한다고 생각했고, 그러기 위해서 지금 내가 서 있는 발밑을 봐야 했습니다.

그러다 우연히 읽게된 ' CEO가 원하는 능동형 인간'

처음에는 단지 상사가 바라는 인재에 대한 이야기겠거니 했습니다. 일잘하는사람, 창조적인사람, 능동적인사람 이야기로 가득차고 넘치는 그런이야기 말입니다.

하지만 조금달리 생각해보았습니다. 왜 그런 사람을 찾을까.. 지겹게도 이야기를 하는것에는 무슨 생각이 있어서일까

단지 부리기좋고, 아래두면 편한사람을 만들기위해서?
물론 그럴수도 있지만 적어도 그러고 싶지 않았습니다.

나는 내가 만들어 가고싶었습니다. 같은 목표를, 가진 사람이 있더라도 당당히 나 자신을 표현하고, 현실을 피하지못해서 즐기는게 아닌 여유를 가지고 즐기고 싶었습니다.

그리고 조급해할 필요없이 지금은 조금 느리게 가는것일뿐, 잠깐 주위를 돌아볼수있는 기회로 삼자는 생각을 하였습니다.

그렇게 생각하고나니 나를 제치고 지나가던 사람들이 어느덧 멈추고 있었습니다.
라고 착각을 해버리고 말았습니다.

'이야기' 카테고리의 다른 글

25일에 대한 기록  (0) 2011/12/26
모바일시장에 대한 편협한 생각  (3) 2009/12/16
내가 원하는 나  (0) 2009/12/15
일복터진날  (4) 2009/08/23
나를 위한 직장 - 이기적인 직장  (0) 2009/08/10
만남이 주는 신뢰  (0) 2009/08/10
Posted by Zasfe
윈도우2009/12/15 09:00

마이크로소프트 윈도우 라고 하면 네모모양의 GUI 메뉴를 기본적으로 생각을 하고 계신 분들이 많습니다. 그것들은 윈도우를 편리하게 사용하기 위해서 만들어 놓은 장치들입니다. 편리하게 만들어 놓은 장치도 있지만, 대다수가 편리하게 생각하는 방법도 어떻게 쓰려는지에 따라 불편하게 느껴지게 마련입니다. ( 저는 이래서 컴퓨터를 알아가면 갈수록 어렵다는 생각이 들게 됩니다.)

사용자가 원하는 작업을 위해서는 굳이 GUI 메뉴를 이용할 필요는 없습니다. 바로 커맨드라인때문입니다.

커맨드라인은 윈도우에는 기본적으로 설치가 되어 있는 명령행프로그램입니다. 명령행이라는 단어에서 느껴지듯이 하나의 행을 기준으로 명령어가 실행되는 프로그램입니다. 이를 조금더 확장시켜 하나의 행을 실행하면서 결과를 반환하는 것들이 모여서 결과를 표시하거나 조합 변경시키는 것이 가능하도록 할수 있는 것이 배치파일[각주:1]입니다.

배치파일에는 명령행으로 작업할수 있는 부분의 한계는 분명히 있습니다. 하지만 그것들을 감안하더라도 충분히 알아둘만합니다.

일예로 여러 PC 의 특정폴더를 USB 메모리로 복사하는 예를 들어보겠습니다.

USB 메모리는 아시다시피 기본 하드디스크 문자의 가장 나중 문자로 드라이브문자를 할당받습니다. 결국 사용하는 PC의 드라이브갯수에 따라서 특정폴더명이 아무리 동일하도라도 드라이브문자가 달라지기때문에 그때마다 탐색기로 복사를 따로 하거나, 배치파일의 내용을 수정해서 사용을 해야 합니다.

딱보기에도 번거로워 보이고, 잊어먹기 딱 좋아보입니다.

그렇다면 어떻게 하는게 좋은 방법일까요..

정답은 배치파일에서 드라이브명을 찾아내서 변수[각주:2]로 처리를 하는 것입니다.

예제를 보여드리도록 하겠습니다. 예제는 snoopy님의 어제글인 VHD 파일 자동교체 부팅메뉴 등록하기 를 참조했습니다.

예제1
@echo off
for %%A in (C: D: E:) do (
    if exist %%A\vhd\win7x86.vhd (
        for %%B in (C: D: E:) do (
            if exist %%B\backup\win7x86.vhd copy /y %%B\backup\win7x86.vhd %%A\vhd\win7x86.vhd
        )
    )
)
exit


어떤 드라이브의 backup폴더내에 있는 win7x86.vhd 를 어떤 드라이브의 vhd 라는 폴더의 win7x86.vhd 로 복사하는 배치파일입니다. 여기서 사용된 %%A, %%B 는 변수로서 실행시마다 변경이 될수 있는 값입니다. 이를 이용해서 backup 폴더와 vhd 폴더 위치만 맞는다면 어디서나 사용이 가능합니다.

조금더 바꾸어 볼까요?

만약 같은 드라이브에 backup 폴더와 vhd 폴더가 있는 구조라면 어떻게 바꿀수 있을까요?

예제2
@echo off
setLocal

for %%A in (C: D: E:) do (
	if exist %%A\vhd\win7x86.vhd (
		if exist %%A\backup\win7x86.vhd (
			SET _DIR_BACKUP=%%A
			SET _DIR_REAL=%%A
		)
	)
	
)
IF NOT [%_DIR_REAL%]==[] (
	copy /y %_DIR_BACKUP%\backup\win7x86.vhd %_DIR_REAL%\vhd\win7x86.vhd
)
EndLocal
exit


내부적인 변수를 선언해서 사용하는 예제로 변경을 한것입니다. 사용된 부분중 if exist 파일명 부분은 만약 파일이 있을경우 실행이 되도록 하는 것이고, IF NOT [%_DIR_REAL%]=[] 은 %_DIR_REAL% 라는 변수의 값이 없지 않을경우, 그러니까 있을경우에만 실행이 되도록 하는 것입니다.


제 경우에는 USB 메모리카드와 회사 PC, 집PC 의 데이터를 동기화시키는데 이용을 합니다.

참 많을 일을 할수 있을것 같지 않습니까?

  1. 배치스크립트 라고도 합니다. [본문으로]
  2. 프로그래밍에서 변수란 프로그램에 전달되는 정보나 그 밖의 상황에 따라 바뀔 수 있는 값을 의미한다  - 텀즈 변수 [본문으로]
Posted by Zasfe
윈도우2009/12/08 12:00

예전에는 별로 신경을 쓰지 않던 부분이였는데, 그냥 지나치려다가 기억력을 돕는 차원에서 정리합니다.

대부분 session.timeout 은 사용자의 로그인등에 사용을 합니다. 사이트 방문자의 경우 로그인같이 특별한 경우가 아니면 성능상 불필요합니다. 또한, 되도록이면 session 변수의 사용을 자제하는것이 사이트의 성능을 높이는 방법이 되고 있습니다.

그렇다 하더라도 Session.Timeout 의 최대값에 대해서는 알아둘 필요가 있습니다.

ASP 에서는 24시간(1440분)이 최대 Session.timeout 값 입니다.

그 이상의 값을 설정했을경우 오류가 발생을 하게 됩니다.

 

 

이 설정은 의도된 설정이라고 합니다.

 

이 설정을 우회하기 위해서는 쿠키를 이용하여야 합니다.

 

- 참조

PRB: Session.Timeout의 최대값은 24시간이다
성능 및 스타일 향상에 도움이 되는 28가지 ASP 팁

Posted by Zasfe