시스템관리자의 쉼터 커피닉스 커피향이 나는 *NIX
커피닉스
시스템/네트웍/보안을 다루는 곳
 FAQFAQ   검색검색   멤버리스트멤버리스트   사용자 그룹사용자 그룹   사용자 등록하기사용자 등록하기 
 개인 정보개인 정보   비공개 메시지를 확인하려면 로그인하십시오비공개 메시지를 확인하려면 로그인하십시오   로그인로그인 

가입없이 누구나 글을 쓸 수 있습니다. 공지사항에 대한 댓글까지도..




BBS >> 설치, 운영 Q&A | 네트웍, 보안 Q&A | 일반 Q&A || 정보마당 | AWS || 자유게시판 | 구인구직 || 공지사항 | 의견제시
업로드 화일 핸들링 python code입니다. (웹쉘 삭제용)

 
글 쓰기   답변 달기    커피닉스, 시스템 엔지니어의 쉼터 게시판 인덱스 -> *NIX / IT 정보
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
sCag
손님





올리기올려짐: 2011.7.14 목, 11:42 am    주제: 업로드 화일 핸들링 python code입니다. (웹쉘 삭제용) 인용과 함께 답변

요새 웹 프로그래머들이 깜박 하고 upload모듈에서 확장자 체크 안해서 웹 호스팅이나 기타류에서 웹쉘들이 올라오는 수가 부지기 수라서 php cgi올라오는거 삭제 하게 해논겁니다.

원래는 업로드 되면서 화일 까서 obfusion code, injectin code, php code
보이면 삭제 시키게 했던건대 중간에 다 빼고 대충 올려 봅니다.

간단히 코드 추가 해서 fock하시던지 아니면 screen에 띄워놓고 쓰시면 될듯 나머지 수정, 머 이런부분은 알아서 =3==3

커널에 inotify지원 체크 하셔야 하는건 당근 아시겄죠?
---

코드:

#!/usr/bin/env python
#by sCag
 
  import os, sys, glob
  import pyinotify
 
 
  gDirPath = "/path/to/monitoring/directory"
 
  hWatch = pyinotify.WatchManager()
  gMask = pyinotify.IN_MODIFY|pyinotify.IN_CREATE|pyinotify.IN_CLOSE_WRITE
 
  class cDetect( pyinotify.ProcessEvent ):
      def process_IN_CREATE( self, event ):
          org_file_name = os.path.join( event.path, event.name )
          file_name = org_file_name.lower()
          try:
              if file_name.find( ".php" ) <> -1 or file_name.find( ".cgi" ) <> -1:
                  os.remove( org_file_name )
                  print "Deleted: %s"%org_file_name
          except:
              pass
          pass
 
      def process_IN_MODIFY( self, event ):
          pass
 
      def process_IN_CLOSE_WRITE( self, event ):
          pass
 
 
  hNotifier = pyinotify.Notifier( hWatch, cDetect() )
  hWatch.add_watch( gDirPath, gMask, rec=True )
 
  for mDirList in glob.glob( gDirPath ):
      if os.path.isdir( mDirList ) == True:
          hWatch.add_watch( mDirList, gMask, rec=True )
 
  while True:
      try:
          hNotifier.process_events()
          if hNotifier.check_events():
              hNotifier.read_events()
      except KeyboardInterrupt:
          hNotifier.stop()
          break
위로
이전 글 표시:   
글 쓰기   답변 달기    커피닉스, 시스템 엔지니어의 쉼터 게시판 인덱스 -> *NIX / IT 정보 시간대: GMT + 9 시간(한국)
페이지 1 중 1

 
건너뛰기:  
새로운 주제를 올릴 수 있습니다
답글을 올릴 수 있습니다
주제를 수정할 수 없습니다
올린 글을 삭제할 수 없습니다
투표를 할 수 없습니다


Powered by phpBB © 2001, 2005 phpBB Group