Tuesday, May 18, 2010

소스코드 & web log 검색 방법

Windows 기반에서 검색

1. ultraedit같은 file내 검색이 가능한 editor를 사용하는 것이 가장 편하며 server특성상 editor가 설치되어 있지 않을 경우 OS에서 제공되는 명령어를 이용하여 검색이 가능하다.

2. IIS 관리자에서 해당 웹사이트의 log file 위치를 파악한다.

3. 콘솔창에서 해당 directory 까지 이동하여 다음과 같이 검색을 하도록 한다.

Findstr /nsic:”검색문자열파일패턴 > 결과를 저장할 파일명

) #확장자가 log인 파일에서 500 이라는 문자열을 검색 하여 결과를 500dump.txt에 저장

findstr /nsic:”500” *.log > 500dump.txt

#4월에 생성된 모든 web log에서 500이라는 문자열을 검색 하여 결과를 500dump.txt에 저장

findstr /nsic:”500” ex0804??.log > 500dump.txt

4. 검색결과에서 각종 해킹 공격 흔적을 찾도록 하며 보통 이스케이프 문자열을 입력하기 위해 인코딩해서 파라미터를 전달하므로 인코딩된 문자열을 찾아 보도록 한다.

5. 이 방식을 이용하여 소스코드 검색 역시 가능 하며 사이트내 db연결을 하는 페이지나 업로드가 있는 페이지를 검색하려면 다음과 같이 응용한다.

#dextupload를 이용하는 asp 페이지 검색

findstr /nsic:”dext” *.asp > uploaddump.txt

#db연결을 하는 페이지 asp 검색

findstr /nsic:”adodb” *.asp > uploaddump.txt

l findstr 명령의 자세한 사용법은 findstr /? 로 해서 살펴 볼 것

linux 기반에서 검색

1. 웹서버 설정 파일에서 log file 위치를 파악 한다.

2. 다음과 같이 검색을 하도록 한다.

find ./ -name '파일패턴' -exec grep -H '검색문자열' {} \; > 결과를 저장할 파일명

#톰캣의 웹로그에서 Exception 이라는 문자열을 검색하여 dump.log에 저장

find ./ -name 'catalina.*' -exec grep -H 'Exception' {} \; > dump.log

3. 역시 같은 방식으로 jsp 소스코드 검색 가능하다

l find, grep의 자세한 사용법은 man find, man grep로 해서 살펴 볼 것