|
| gliba 22.04.2007 22:08 С одним моим другом приключилась беда. Его сайт взломали хакеры. Сайт был сделан на скорую руку,
безопасности уделялось мало внимания. Человек не ожидал, что его сайт будет удостоен внимания
"уважаемых людей". "Но на то и щука в пруду, чтоб карась не дремал".
Через "дырку" в аплоуде злоумышленники загрузили скрипт и запустили его. В результате во всех поддиректориях
оказались "левые" индексные файлы. Можно сказать, товарищ отделался легким испугом.
Я немножко поучаствовал в востановлении сайта. В аплоуд добавили проверку на тип загружаемых файлов.
В директориях, куда происходит загрузка, запретили выполнение скриптов. Я написал 2
простенькие подпрограммы для чистки поддиректорий и поиска "левых" файлов.
Код
'поиск в поддиректориях файла с именем file и удаление
functionSub SearchSubFolders( Folder, file, bDelete )
dim Subfolder
For Each Subfolder in Folder.SubFolders
if fso.FileExists( Subfolder.Path & "" & file ) then
Response.Write Subfolder.Path & " - " & file & "<br>" & Chr(10)
if bDelete then
call fso.DeleteFile( Subfolder.Path & "" & file, true )
call fso.DeleteFile( Subfolder.Path & "index.htm", true )
end if
end if
SearchSubFolders Subfolder, file, bDelete
Next
End Sub
'поиск запрещенных скриптов
Sub CheckFiles( Folder, recursive )
dim Subfolder, file, s
For Each file in Folder.Files
s = LCase( file.Path )
if InStr( s, ".asp" ) > 0 or InStr( s, ".php" ) > 0 then
Response.Write s & "<br>" & Chr(10)
end if
Next
if recursive then
For Each Subfolder in Folder.SubFolders
CheckFiles Subfolder, recursive
Next
end if
End Sub
bDelete = false
if Request.QueryString( "delete" ) = "1" then bDelete = true
sRealDir = Server.MapPath( "/" )
Set fso = Server.CreateObject("Scripting.FileSystemObject")
set folder = fso.GetFolder( sRealDir )
SearchSubFolders folder, "rtls.html", bDelete
set folder = fso.GetFolder( sRealDir & "greetings" )
CheckFiles folder, false
Комментарии
Первым делом создаем объект fso для работы с файловой системой. А затем "эксплуатируем" его методы и свойства.
"Дешево и сердито".
|