Изпробвайте уеб уязвимости с дяволски уязвимо уеб приложение

Съдържание

Целта е, че и начинаещите, и професионалните потребители, които се интересуват от анализ и решаване на проблеми със сигурността, могат да изпробват своите знания, умения и инструменти в симулирана среда, този тип инструментите са много полезни за уеб разработчиците Те могат да разберат проблемите, които може да има приложение или уебсайт и да подобрят програмирането или да търсят уязвимости.

Въпреки че повечето разработчици са взели предпазни мерки срещу потенциални уязвимости, много уязвимости като напр Скриптове за различни сайтове (XSS) или SQL инжекции, които засягат сигурността на много уебсайтове и следователно на потребителите.

В този урок ще отидем инсталирайте и конфигурирайте уебсайт, който да се използва като тестова лаборатория за одити на уеб сигурността, където ще открием различни уязвимости, дори по -често срещани, предлагащи различни нива на трудност в уязвимостите, които след това могат да бъдат анализирани.

Ще използваме проклетото уязвимо уеб приложение (DVWA), това е уебсайт, който да инсталираме на всеки сървър, който имаме, включително локален, за да можем да правим тестове за пентестиране. Можем да го изтеглим от официалния му сайт.

След като го изтеглите, имаме нужда от уеб сървър или локален сървър, както е посочено в уроците:

  • Как да инсталирате Xampp, за да превърнете компютъра си в уеб сървър
  • Преносим уеб сървър Easyphp

След като изтеглихме zip файла на уеб приложението Damn Vulnerabilty (DVWA), го разархивираме и го копираме в папката на нашия уеб сървър, в този случай използваме Xampp под Linux.

След това трябва да конфигурираме базата данни за това ще отидем от phpmyadmin.

Ако искаме да го направим от терминален прозорец, ще използваме следната команда, можем да получим достъп чрез ssh:

 ssh потребител @ miip
Първо ще влезем в MySQL сървъра от командния ред със следната команда:
 mysql -u корен -p
В този случай основният потребител се посочва с флага -u, а след това се използва флагът -p, за да се посочи, че MySQL трябва да поиска парола. Въвеждаме ключа за достъп, за да можем да влезем в MYSQL.

След това можем да създадем базата данни от командния ред:

 създаване на база данни dvwa;
След това отиваме в директорията config и след това редактираме файла config.inc.php, тук променяме данните, за да посочим името на базата данни, потребителя и паролата за достъп:
 
Запазваме конфигурацията и трябва да отидем в браузъра, където имаме мрежата, и да кликнете върху Създаване / нулиране на база данни за да продължите с инсталацията.

След това ще създадем данните от базата данни, която конфигурираме, и можем да видим някои инструменти, които носи мрежата.

Тогава след инсталацията, когато се върнем към уеб http: // localhost / dvwa, ще получим екран за вход:

За достъп до уебсайта ще използваме следните данни:

Потребител: администратор
Ключ: парола

В лявата колона на мрежата имаме меню в края можем да видим опцията СИГУРНОСТ НА DVWAОт тук можем да конфигурираме нивото на трудност за уязвимости, нивата на сигурност са ниски, средни, високи или невъзможни.

Нивото на защита променя нивото на уязвимост на DVWA:

Ниско ниво на сигурностТова ниво на сигурност е напълно уязвимо и няма никакви мерки за сигурност, така че ще ни позволи по -лесно да тестваме хакерски техники. Неговото използване е да бъде пример за това как уязвимостите на уеб приложенията се проявяват чрез лоши практики на кодиране и да служи като платформа за преподаване или изучаване на основни техники за експлоатация, взлом и хакерство.

Средно ниво на сигурностТова ниво служи за показване на уязвимости, където разработчикът не е успял да гарантира, че кодът и разработката нямат уязвимости.

Високо ниво на сигурностТова ниво цели най -напредналите потребители да се сблъскат със средна трудност, със смесица от лоши практики за програмиране в уеб кода. Тук можем да опитаме усъвършенствани техники.

Нивото на сигурност е невъзможноТова ниво е най -безопасното срещу всички уязвимости. Използва се за сравняване на уязвим изходен код със защитен изходен код. Това ниво има за цел да покаже как даден уебсайт трябва да бъде разработен правилно и как трябва да реагира преди евентуални атаки.

Зададохме най -ниското ниво, за да можем да тестваме различни техники за хакерство и откриване на уязвимости.

Тествайте грубата сила да пробиете вход с вашия собствен скрипт
Достъпваме до връзката Brute Force и виждаме, че има формуляр за вход, въвеждаме всякакви данни в потребителското име и паролата, за да не успеем и да видим дали възниква грешка.

Когато влизането не успее, виждаме URL адрес с въведените данни, като вземаме URL адреса, който ни показва:
http: // localhost / dvw … вижте & Login = Login #,

Затова можем да създадем скрипт, който да тества различни комбинации за потребител и парола, или да използваме програма като xHydra, която е графичен интерфейс за Hydra или директно от командния ред, ако това е единственият достъп, който имаме чрез SSH до сървъра.

За да инсталираме Hydra ще използваме следните команди:

 sudo add-apt-repository ppa: pi-rho / securitysudo apt-get updatesudo apt-get install hydra hydra-gtk
След инсталирането ще трябва да търсим или създаваме потребителски списъци и възможни ключове във формат txt или да търсим речник, който да използваме, както направихме в урока.

Също така текстов файл с имена на възможни потребители, ние също можем да използваме някои вече функционални бази данни, като тези речници skullsecurity.org, които се използват в много инструменти, антивирусни програми и т.н., които позволяват проникване или хакване на парола. Всички източници на данни са безплатни за използване.

След това ще използваме hydra със списъците, които имаме, като използваме следните команди:

 hydra -L /home/innove/usuarios.txt -P /home/innove/claves.txt 192.168.0.11 http -post -form "/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login : Неуспешно влизане "-w 10 -V 

Можем да видим, че някои резултати са положителни, показващи в зелено потребителите и паролата, които са постигнали приетото влизане. Ако опитаме с администраторския потребител и парола, ще влезем, за да видим потребителския панел

Уязвимост на SQL Injection
При най -ниското ниво на сигурност мрежата е уязвима за SQL инжектиране, преди да започнем да инжектираме код в текстовото поле, можем да наблюдаваме кода, който се консултира с таблицата в PHP, която е уязвима.

 
Грешката е, че данните не трябва да се изпращат от GET, но с помощта на POST и второ, трябва да се провери дали пристигащите данни не съдържат злонамерен код.

SQL изявлението директно изпълнява това, което пристига, без никакви контроли или проверка. Това прави кода уязвим за SQL инжекции, например можем да получим пълния списък с потребители, ако на страницата за инжектиране на SQL вместо идентификатор добавим следния код:

 1 'ИЛИ 1 = 1 UNION SELECT нула, версия () #
Резултатът ще бъде списък с потребители.

Също така можем да получим целия списък с таблици, ако приложим следния код в текстовото поле.

 1 'OR 1 = 1 UNION SELECT null, table_name FROM INFORMATION_SCHEMA.tables

Можем да приложим други комбинации, за да получим списъка с потребители и да видим данните за всяка таблица.

Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave