|
커피향이 나는 *NIX
커피닉스
시스템/네트웍/보안을 다루는 곳
|
|
|
|
| 이전 주제 보기 :: 다음 주제 보기 |
| 글쓴이 |
메시지 |
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 |
|
|
| 위로 |
|
 |
|
|
새로운 주제를 올릴 수 있습니다 답글을 올릴 수 있습니다 주제를 수정할 수 없습니다 올린 글을 삭제할 수 없습니다 투표를 할 수 없습니다
|
Powered by phpBB © 2001, 2005 phpBB Group
|