Pentesting атакуващи и защитаващи уеб приложения с bWAPP

bWAPP е уебсайт, който е разработен с уязвимости, така че и начинаещите, и експертите могат да извършват пентестинг и етични хакерски практики. Може да се хоства на Linux или Windows на Apache или IIS и MySQL. Поддържа се в WAMP или XAMPP. Друга възможност е да използвате виртуална машина, която работи за VMware или за VirtualBox.

bWAPP е безплатен и отворен, може да бъде изтеглен в две версии, едната да се използва локално, а другата да се инсталира във виртуална машина. Уебсайтът е разработен на PHP и MySQL, така че е кросплатформен. Изтегляме инсталиране на bWAPP локално, ако искаме да инсталираме във виртуална машина проектът е Bee-Box.

Bee-box е виртуална машина на Linux с всичко предварително инсталирано. По този начин трябва само да проучим всички уязвимости на bWAPP, без да рискуваме да оскверним уебсайта на bWAPP. Също така с виртуалната машина можем да се опитаме да получим root достъп.

bWAPP има повече от 100 грешки За да разследва и открива, той обхваща всички основни известни уязвимости в мрежата, включително всички рискове за сигурността. Проектът не само позволява да бъдат открити уязвимости, но също така дава възможност да се намери решението.

В този урок ще инсталираме Bee-Box версията на bWAPPЗа да направите това, разархивираме изтегления от нас файл и създаваме папка с много vmdk файлове на нашия локален сървър. След това ще създадем виртуалната машина, която ще присвои 32 -битова версия на Linux Ubuntu.

След това трябва да изберете изтегления файл, наречен bee-box.vdmk

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

Щракваме върху създаване и след това върху Старт, така че виртуалната машина да започне да работи, след като се зареди, ще видим работния плот.

След това ще отворим терминала, за да видим какво използва IP командата ifconfig.

Можем да видим, че IP в този случай е 192.168.0.14, ако тестваме този IP на компютъра извън виртуалната машина, трябва да имаме достъп до мрежата:

 http://192.168.0.14/bWAPP
И резултатът ще бъде следният:

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

The уязвимостите са разделени на категории или глави които са следните:

A1 ИнжекцииТук са групирани уязвимостите на HTML инжектиране, SQL, XSS, XPATH и всички тези, които имат отношение към изпращането на параметри през браузъри.

A2 Прекъсване на удостоверяването и сесиитеТук изглежда така нарушават капчи и формуляри за вход използване на техники за подмяна на URL, улавяне на параметри и използване на идентификатор на сесия.

A3 Cross Site Scripting (XSS)Тук са Уязвимости, свързани с XSS които не са много опасни, а по -скоро досадни.

A4 Несигурни обекти и директорииТук става въпрос за промяна на параметрите в връзките от кода преди да изпратите формуляра.

A5 Сигурност и конфигурацияТук ще видим някои атаки като DDOS и средна атака, които ще се стремят да засегнат услуги като поща и услуги, които работят.

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

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

1. HTML инжектиране


HTML Reflected Injection е това, което ви позволява да вмъкнете HTML код в текстово поле и след това да го покажете в мрежата. Избираме първия метод за инжектиране чрез GET, имаме две текстови полета, ако въведем например връзка във всяко от тях:
 Спешно съобщение | Вашите продажби
Когато изпращаме формуляра, ще видим по -долу, че и двете връзки са показани и го оставяме да чака някой да кликне. Можем да опитаме и метода POST.

Увеличете

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

 Прекъснали сте връзка. 
Въведете вашето потребителско име и парола, за да продължите потребителя:
ключ:

Увеличете

2. SQL инжекция


Нека да видим друга атака като SQL Injection, ако търсим BUG за опцията SQL Injection (GET / Search), в този раздел можем да търсим филми, например Iron Man, което води до данни за филма.

Увеличете

След това можем да опитаме да инжектираме SQL код, за да проверим дали базата данни е уязвима, за това използваме следния код, който ще върне списъка с бази данни, ако:

 съюз на железния човек изберете 1, име на таблица, 3,4,5,6,7 от INFORMATION_SCHEMA.TABLES, където table_schema = база данни () -'
Резултатът е списък с таблици, следователно базата данни е уязвима:

Увеличете

Знаейки, че базата данни е уязвима, можем да използваме някои техники, които видяхме в урока SQLMAP, инструмента за инжектиране на SQL и хакерството за етична база данни, където достигаме коренното ниво, търсейки администраторски ключове.

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

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" --dbs

Той ни показва базите данни, една от тях е bWAPP, затова ще се опитаме да получим списъка с таблици, знаейки, че двигателят на базата данни е MySQL 5. За да получим списъка с таблици, ще използваме следната команда.

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" -таблици

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

Увеличете

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

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" -потребители
Друга опция команда с идентификатор на сесия:
 sqlmap -u „http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" --cookie = "PHPSESSID = e6f734f935bca3bf86013add7ea2e3f9; security_level = 0“ -потребители

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

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" dba --is -dba --privileges --dbs -dump 
В резултат на това ще получим таблици, където има парола, една от тях са потребители, които имат администраторски данни, а друга са героите на таблицата и потребители (потребители), които ще използваме за влизане като потребители.

Таблицата с потребители съдържа администраторски данни на уебсайта:

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

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" -f -b --current -user --is -dba --is -dba --privileges --dbs - сметище
В края на командите чрез груба сила атака, ние откриваме, че паролата на системния администратор е грешка и потребителят е root.

Ще опитаме от терминала, свържете се чрез ssh към виртуалната машина, за да вземете дистанционно управление на компютъра, като използвате следната команда:

 ssh [email protected]
Резултатът от използването на root потребителя и паролата за грешка е връзката с администраторски разрешения към виртуалната машина.

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

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

3. HTML / XPATH инжекция


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

Например ще променим паролата и щракнете с десния бутон, за да отворите инспектор или редактор на код и да промените URL адреса change_password.php на http://google.com и да затворите редактора

Увеличете

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

4. Инжектиране от страна на сървъра


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

Нападателят изпраща злонамерен код или команда през текстово поле на уеб приложение, което се изпълнява от уеб сървъра. Нека да видим пример, който ще ви позволи да изброите директории с помощта на командата Linux ls, която ще напишем, както следва:

 

Увеличете

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

Увеличете

Един от инструментите, които проектът bWAPP ни предлага, е ZAP (Zed Attack Proxy), видяхме този инструмент в урока Сканирайте уязвимостта на уебсайт с ZAP, той се използва широко за сканиране на уязвимости и извършване на тестове за проникване в уебсайтове. Можем да изтеглим най -актуалната версия от следната връзка:

ИЗТЕГЛЕТЕ ZAP

Изберете версията според операционната система, която имаме, или мултиплатформена версия, разработена в Java. След като бъде инсталиран, ще се опитаме да сканираме уеб bWAPP с ZAP и да търсим някои уязвимости.

Увеличете

Когато стартираме ZAP и извършим сканиране, ще видим, че той открива повечето от уязвимостите, за да определим правилата за сканиране, можем да отидем в менюто Анализ> Правила за сканиране и след това щракваме двукратно върху Политика по подразбиране.

Нека видим в една от страниците за вход, че е установено, че потребителското ниво се изпраща като параметър, в този случай администратор.

Увеличете

Също така можем да използваме филтрите, както видяхме в урока по ZAP, за да правим SQL инжекции и други атаки.

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

bWAPP се използва широко за тестване на проникване в уеб приложения и проекти за етично хакерство. bWAPP обхваща всички основни известни уязвимости в мрежата, включително всички рискове от проекта OWASP Топ 10, който събира уязвимости от година на година в 10 категории.

И накрая, препоръчваме тази статия с обяснение на видове кибератаки.

wave wave wave wave wave