- Скенер за заплахи
123
WT форуми -> PHP MySQL ASP.NET -> Скенер за заплахи
Създайте нова тема Напишете отговор 
Автор Съобщение
dakata__92
Активен
Активен

Регистриран на: 02/08/2011 9:24 pm

Support: 119
Bonus: 231
Мнения: 3063
Мнение 15/01/2018 3:37 pm     Скенер за заплахи Отговорете с цитат


Здравейте колеги! Реших да си създам скенер за възможни заплахи качени в сайта. В момента следя по разширението на файла и ако файла е PHP, то да се проверява за следните tokens:
Цитат:

T_BAD_CHARACTER,
T_START_HEREDOC,
T_END_HEREDOC,
T_CURLY_OPEN,
T_DECLARE,
T_EVAL,
T_DOLLAR_OPEN_CURLY_BRACES,
T_ELLIPSIS,
T_GOTO,
T_HALT_COMPILER,
T_INLINE_HTML,
T_STRING_VARNAME,
T_YIELD

Какво мислите по темата?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
anonimen
Активен
Активен

Регистриран на: 11/06/2012 8:07 pm

Support: 149
Bonus: 297
Мнения: 1392
Мнение 15/01/2018 5:34 pm     Re: Скенер за заплахи Отговорете с цитат


Какъв е проблемът с тези?
Цитат:

T_START_HEREDOC,
T_END_HEREDOC,
T_CURLY_OPEN,
T_DOLLAR_OPEN_CURLY_BRACES,
T_ELLIPSIS,
T_STRING_VARNAME,
T_YIELD


Прегледах ги в документацията, не виждам каква заплаха може да предизвикат? Изглеждат си съвсем ок.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
dakata__92
Активен
Активен

Регистриран на: 02/08/2011 9:24 pm

Support: 119
Bonus: 231
Мнения: 3063
Мнение 15/01/2018 7:16 pm      Отговорете с цитат


Принципно нищо, но съм ги поставил за да ме алармират дали се съдържат в даден код. Идеята ми е да си създам скенер да проверява дали нянам качен shell в системата. Принципно това ще е една да кажем минимална защита, която да се активира в Админ панела, но като цяло съм мераклия да я поразвия малко, като идея.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
anonimen
Активен
Активен

Регистриран на: 11/06/2012 8:07 pm

Support: 149
Bonus: 297
Мнения: 1392
Мнение 15/01/2018 10:14 pm      Отговорете с цитат


Ако се пазиш от шел, вместо синтактични елементи търси команди - примерно rm/mount/cp/mv/.... Това лесно ще се заобикoли с разделяне на стринга на парчета, така че може би за това ще трябва да следиш - подозрителна конкатенация на повече стрингове в един.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Fakeheal
Support
Support

Регистриран на: 17/04/2010 8:37 am

Support: 348
Bonus: 694
Мнения: 2624
Мнение 16/01/2018 6:07 pm      Отговорете с цитат


Btw:


<?${[]}.=[];${![]}.=${[]}{!![]};++${![]};++${![]};++${![]};++${![]};++${![]};++${
![]};++${![]};${![]}.=${[]}{![]+![]+![]};++${![]};++${![]};++${![]};++${![]};${![
]}.=${![]}{![]};++${![]};++${![]};++${![]};++${![]};++${![]};++${![]};++${![]};${
![]}.=${![]}{![]+![]}.${![]}{![]+![]};++${![]};++${![]};++${![]};${![]}.=${[]}^${
[]}{![]+![]+![]};${![]}.=${![]}{!![]};++${![]};++${![]};++${![]};++${![]};++${![]
};++${![]};++${![]};++${![]};++${![]};++${![]};++${![]};++${![]};++${![]};++${![]
};++${![]};${![]}.=${![]}{![]+![]+![]+![]}.${![]}{![]+![]+![]+![]};++${![]};++${!
[]};++${![]};${![]}.=${![]}{![]+![]}.${[]}{![]+![]+![]};++${![]};++${![]};++${![]
};${[]}=${[]}{!![]};++${[]};++${[]};++${[]};${![]}.=${[]}^${![]}{![]}?><?=${![]};
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
dakata__92
Активен
Активен

Регистриран на: 02/08/2011 9:24 pm

Support: 119
Bonus: 231
Мнения: 3063
Мнение 17/01/2018 4:06 pm      Отговорете с цитат


Fakeheal написа:
Btw:


<?${[]}.=[];${![]}.=${[]}{!![]};++${![]};++${![]};++${![]};++${![]};++${![]};++${
![]};++${![]};${![]}.=${[]}{![]+![]+![]};++${![]};++${![]};++${![]};++${![]};${![
]}.=${![]}{![]};++${![]};++${![]};++${![]};++${![]};++${![]};++${![]};++${![]};${
![]}.=${![]}{![]+![]}.${![]}{![]+![]};++${![]};++${![]};++${![]};${![]}.=${[]}^${
[]}{![]+![]+![]};${![]}.=${![]}{!![]};++${![]};++${![]};++${![]};++${![]};++${![]
};++${![]};++${![]};++${![]};++${![]};++${![]};++${![]};++${![]};++${![]};++${![]
};++${![]};${![]}.=${![]}{![]+![]+![]+![]}.${![]}{![]+![]+![]+![]};++${![]};++${!
[]};++${![]};${![]}.=${![]}{![]+![]}.${[]}{![]+![]+![]};++${![]};++${![]};++${![]
};${[]}=${[]}{!![]};++${[]};++${[]};++${[]};${![]}.=${[]}^${![]}{![]}?><?=${![]};


Извинявай, но нещо не схванах поста ти.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
dakata__92
Активен
Активен

Регистриран на: 02/08/2011 9:24 pm

Support: 119
Bonus: 231
Мнения: 3063
Мнение 17/01/2018 4:10 pm      Отговорете с цитат


anonimen написа:
Ако се пазиш от шел, вместо синтактични елементи търси команди - примерно rm/mount/cp/mv/.... Това лесно ще се заобикoли с разделяне на стринга на парчета, така че може би за това ще трябва да следиш - подозрителна конкатенация на повече стрингове в един.

Добре, но как да следя за командите? Примерно да следя за функциите, като: system, exec, passthru и други ли?

Последната промяна е направена от dakata__92 на 18/01/2018 6:31 pm; мнението е било променяно общо 1 път
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
djman
Активен
Активен

Регистриран на: 12/09/2009 10:07 am

Support: 105
Bonus: 200
Мнения: 2775
Мнение 17/01/2018 8:19 pm      Отговорете с цитат


dakata__92 написа:
Fakeheal написа:
Btw:
...


Извинявай, но нещо не схванах поста ти.


Изпълни го, валиден (безобиден) PHP е Smile т.е. помисли пак дали проверяването за "system", "exec" и т.н. е достатъчно...

Каква е целта ти? Разрешаваш на потребителите да качват файлове и да ги изпълняват, но искаш да ограничиш какво могат да правят?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
dakata__92
Активен
Активен

Регистриран на: 02/08/2011 9:24 pm

Support: 119
Bonus: 231
Мнения: 3063
Мнение 17/01/2018 9:06 pm      Отговорете с цитат


Не. Желая да си направя скенер, който да си вграждам в приложенията и да проверява за нежелан софтуер от мен.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
novakabg
Турист
Турист

Регистриран на: 13/05/2016 2:29 pm

Support: 5
Bonus: 10
Мнения: 281
Мнение 18/01/2018 5:17 pm      Отговорете с цитат


Хахах сега е време аз да те насера Smile Very Happy Very Happy Very Happy Very Happy Very Happy

Сега аз като c++ и python програмист и Haskell знам един метод за проверка на лоши кодове към php виж се колко разбираш ти само от php да ми се ебаваш на мен във постовете Very Happy Very Happy Very Happy Very Happy

Правиш скеннер за shell_exec,base64_decode,edoced_46esab,fopen,fclose,system,php_uname,chmod,readfile,eval,passthru!

Тоест защо не направиш проверка на strings Smile

Ето ти примерен shell .sh

#! /bin/bash
# Scanner
#
exec >> scanlog.txt
echo "Mal Scan"
echo ""
read -p "Vkarai Papka(Root) " phplocation
echo "Proverka na strings v cqlata papka"
grep -Rn "eval" $phplocation
echo "Gotovo priqtelche vij si scanlog.txt."
echo ""
echo "Skaniraneto prikluchi"
echo ""
exec 2>&1




Правиш си един .sh примерно scan.sh пускаш в папката и го викаш Smile и гледаш после лога!

Успех! Smile

Прочем може да се напише и код за всеки 24 часа да сканира целият сайт чрез Cron Job и да ти прати на SMS или на Пощата, името на файла Smile и време кога и къде е сканиран и как!
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Fakeheal
Support
Support

Регистриран на: 17/04/2010 8:37 am

Support: 348
Bonus: 694
Мнения: 2624
Мнение 18/01/2018 6:04 pm      Отговорете с цитат


Аз много желая да отговоря на горното мнение с цитат от него.

novakabg написа:
Very Happy Very Happy Very Happy Very Happy Very Happy


PS: Сега ми стана тъжно. Sad
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
dakata__92
Активен
Активен

Регистриран на: 02/08/2011 9:24 pm

Support: 119
Bonus: 231
Мнения: 3063
Мнение 18/01/2018 6:25 pm      Отговорете с цитат


Fakeheal написа:
Аз много желая да отговоря на горното мнение с цитат от него.

novakabg написа:
Very Happy Very Happy Very Happy Very Happy Very Happy


PS: Сега ми стана тъжно. Sad

Не си заслужава! Ако си беше направил малко трудът да прочете темата, щеше да е по-ориентиран. Първо проверявам за определени token константи. Както виждам, той НЕ ЗНАЕ какво изразяват те. По-нагоре попитах дали ако проверявам стрингово и за определени функции е достатъчно за да ме алармира, че в даден php файл се съдържа по-опасно съдържание. Качвайки кода в определена неизвестна по структура система, искам директно да сканирам и изведа по-опасните файлове. Това са файлове с определени разширения. В момента питам само за PHP и то по простата причина, че тук има много по-запознати с езика хора от мен. Поставяйки в отделен php файл кода от цитата:

Fakeheal написа:
Btw:


<?${[]}.=[];${![]}.=${[]}{!![]};++${![]};++${![]};++${![]};++${![]};++${![]};++${
![]};++${![]};${![]}.=${[]}{![]+![]+![]};++${![]};++${![]};++${![]};++${![]};${![
]}.=${![]}{![]};++${![]};++${![]};++${![]};++${![]};++${![]};++${![]};++${![]};${
![]}.=${![]}{![]+![]}.${![]}{![]+![]};++${![]};++${![]};++${![]};${![]}.=${[]}^${
[]}{![]+![]+![]};${![]}.=${![]}{!![]};++${![]};++${![]};++${![]};++${![]};++${![]
};++${![]};++${![]};++${![]};++${![]};++${![]};++${![]};++${![]};++${![]};++${![]
};++${![]};${![]}.=${![]}{![]+![]+![]+![]}.${![]}{![]+![]+![]+![]};++${![]};++${!
[]};++${![]};${![]}.=${![]}{![]+![]}.${[]}{![]+![]+![]};++${![]};++${![]};++${![]
};${[]}=${[]}{!![]};++${[]};++${[]};++${[]};${![]}.=${[]}^${![]}{![]}?><?=${![]};


скенера ме алармира, че се съдържа константа T_INLINE_HTML. Желая да си направя маркери и да задавам нивото на опасност. Това е лесно, въпроса е сега как е най-правилно да проверявам по стринг за функциите тоест трудоемкото file_get_contents() и preg_match(регулярен израз) или stripos(). Като цяло, важното е да се алармира за даден файл, но само това ли са начините? Мисълта ми е, дали освен директното отваряне на файла и търсене на определен стринг в него е най-лесното и удобно решение по темата?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Покажи мнения от преди:    
Създайте нова тема   Напишете отговор    web-tourist.net Форуми -> PHP MySQL ASP.NET Часовете са според зоната GMT + 2 Часа
123
Страница 1 от 3


 
Идете на:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети