Wapiti - сайтта осалдықтарды өздігінен тексеру

Wapiti - сайтта осалдықтарды өздігінен тексеру
Өткенде мақала туралы әңгімелестік Nemesida WAF тегін - веб-сайттар мен API интерфейстерін хакерлердің шабуылдарынан қорғауға арналған тегін құрал және осында біз танымал осалдық сканерін қарастыруды шештік Вапити.

Веб-сайтты осалдықтарға сканерлеу бастапқы кодты талдаумен бірге оның ымыраға келу қаупінен қауіпсіздік деңгейін бағалауға мүмкіндік беретін қажетті шара болып табылады. Арнайы құралдарды пайдаланып веб-ресурсты сканерлеуге болады.

Nikto, W3af (Python 2.7-де жазылған, оған енді қолдау көрсетілмейді) немесе Arachni (ақпан айынан бері қолдау көрсетілмейді) - тегін сегментте ұсынылған ең танымал шешімдер. Әрине, басқалары бар, мысалы, біз назар аударуды шешкен Вапити.

Wapiti осалдықтардың келесі түрлерімен жұмыс істейді:

  • файлды кеңейту (жергілікті және қашықтағы, fopen, readfile);
  • инъекциялар (PHP / JSP / ASP / SQL инъекциясы және XPath инъекциясы);
  • XSS (Cross Site Scripting) (рефлексивті және тұрақты);
  • командаларды анықтау және орындау (eval(), system(), passtru());
  • CRLF инъекциялары (HTTP жауабын бөлу, сеансты бекіту);
  • XXE (XML сыртқы нысаны) ендіру;
  • SSRF (Сервер тарапынан сұрауды жалған жасау);
  • белгілі ықтимал қауіпті файлдарды пайдалану (Nikto дерекқорының арқасында);
  • айналып өтуге болатын әлсіз .htaccess конфигурациялары;
  • құпия ақпаратты ашатын резервтік файлдардың болуы (бастапқы кодты ашу);
  • Shellshock;
  • ашық қайта бағыттаулар;
  • шешуге болатын стандартты емес HTTP әдістері (PUT).

Ерекшеліктер:

  • HTTP, HTTPS және SOCKS5 прокси қолдауы;
  • бірнеше әдістер арқылы аутентификация: Basic, Digest, Kerberos немесе NTLM;
  • сканерлеу аймағын шектеу мүмкіндігі (домен, қалта, бет, URL);
  • URL мекенжайындағы параметрлердің бірін автоматты түрде жою;
  • шексіз сканерлеу циклдарына қарсы бірнеше сақтық шаралары (мысалы: ifor, параметр үшін шектеу мәндері);
  • URL мекенжайларын тексеру үшін басымдықты орнату мүмкіндігі (тіпті олар сканерлеу аймағында болмаса да);
  • кейбір URL мекенжайларын сканерлеуден және шабуылдардан шығару мүмкіндігі (мысалы: URL мекенжайынан шығу);
  • cookie файлдарын импорттау (оларды wapiti-getcookie құралы арқылы алыңыз);
  • SSL сертификатын тексеруді қосу/өшіру мүмкіндігі;
  • JavaScript-тен URL мекенжайларын шығару мүмкіндігі (өте қарапайым JS интерпретаторы);
  • HTML5-пен өзара әрекеттесу;
  • тексеріп шығушы әрекетін және шектеулерді басқарудың бірнеше нұсқалары;
  • сканерлеу процесінің максималды уақытын орнату;
  • кейбір реттелетін HTTP тақырыптарын қосу немесе реттелетін пайдаланушы агентін орнату.

Қосымша мүмкіндіктер:

  • әртүрлі пішімдерде осалдық есептерін жасау (HTML, XML, JSON, TXT);
  • сканерлеуді немесе шабуылды кідірту және жалғастыру (SQLite3 дерекқорларын пайдаланатын сеанс механизмі);
  • осалдықтарды көрсету үшін терминалдағы артқы жарықтандыру;
  • әр түрлі деңгейлі журналдар;
  • Шабуыл модульдерін қосу/өшірудің жылдам және оңай жолы.

параметр

Wapiti қолданбасының ағымдағы нұсқасын екі жолмен орнатуға болады:

  • дереккөзді ресми жерден жүктеп алыңыз сайт және орнату сценарийін іске қосыңыз, бұрын Python3 орнатқан;
  • pip3 install wapiti3 пәрменін пайдаланып.

Осыдан кейін Вапити баруға дайын болады.

Құралмен жұмыс

Wapiti жұмысын көрсету үшін әртүрлі осалдықтарды (Инъекция, XSS, LFI/RFI) және веб-қосымшалардың басқа да кемшіліктерін қамтитын сайттар.vulns.pentestit.ru (ішкі ресурс) арнайы дайындалған стенді қолданамыз.

Ақпарат тек ақпараттық мақсатта берілген. Заңды бұзба!

Сканерді іске қосудың негізгі пәрмені:

# wapiti -u <target> <options>

Сонымен қатар, іске қосу нұсқаларының үлкен саны туралы егжей-тегжейлі анықтама бар, мысалы:

--ауқым - қолдану саласы
Ауқым параметрін тексеріп шығу URL мекенжайымен бірге көрсетсеңіз, бір бетті де, сайттан табуға болатын барлық беттерді де көрсету арқылы сайттың тексеріп шығу аймағын реттеуге болады.

-s и -x — арнайы URL мекенжайларын қосу немесе жою опциялары. Бұл опциялар тексеріп шығу процесі кезінде белгілі бір URL мекенжайын қосу немесе жою қажет болғанда пайдалы.

--өткізу — осы кілтпен көрсетілген параметр сканерленеді, бірақ шабуыл жасалмайды. Сканерлеу кезінде ең жақсы алынып тасталған қауіпті параметрлер бар болса пайдалы.

--verify-ssl — сертификатты тексеруді қосу немесе өшіру.
Wapiti сканері модульдік. Дегенмен, сканер жұмыс істеп тұрғанда автоматты түрде қосылатын модульдерді қоса алғанда, нақты модульдерді іске қосу үшін -m қосқышын пайдаланып, үтірмен бөлінген қажеттілерді тізімдеу керек. Егер кілт пайдаланылмаса, онда барлық модульдер әдепкі бойынша жұмыс істейді. Ең қарапайым нұсқада ол келесідей болады:

# wapiti -u http://sites.vulns.pentestit.ru/ -m sql,xss,xxe

Бұл пайдалану мысалы мақсатты сканерлеу кезінде тек SQL, XSS және XXE модульдерін қолданатынымызды білдіреді. Сонымен қатар, қажетті әдіске байланысты модульдердің жұмысын сүзуге болады. Мысалы -m “xss: get, blindsql: post, xxe: post”. Бұл жағдайда модуль xss GET әдісі және модуль арқылы жіберілген сұрауларға қолданылады blibdsql - POST сұрауларына және т.б. Айтпақшы, егер тізімге енгізілген кейбір модуль сканерлеу кезінде қажет болмаса немесе өте ұзақ уақыт алса, Ctrl+C тіркесімін басу арқылы интерактивті мәзірдегі сәйкес элементті таңдау арқылы ағымдағы модульді пайдалануды өткізіп жіберуге болады.

Wapiti кілт арқылы прокси арқылы сұрауларды жіберуді қолдайды -p және параметр арқылы мақсатты сайтта аутентификация -a. Сондай-ақ аутентификация түрін көрсетуге болады: Негізгі, Дайджест, Керберос и NTLM. Соңғы екеуі қосымша модульдерді орнатуды қажет етуі мүмкін. Сонымен қатар, сұрауларға кез келген тақырыптарды енгізуге болады (соның ішінде ерікті Пайдаланушы агенті) және тағы басқалар.

Для использования аутентификации можно использовать инструмент wapiti-getcookie. Оның көмегімен біз қалыптастырамыз куки, сканерлеу кезінде Wapiti пайдаланады. Қалыптастыру куки пәрменімен орындалады:

# wapiti-getcookie -u http://sites.vulns.pentestit.ru/login.php -c cookie.json

Интерактивті жұмыс барысында біз сұрақтарға жауап береміз және логин, пароль және т.б. сияқты қажетті ақпаратты көрсетеміз:

Wapiti - сайтта осалдықтарды өздігінен тексеру

Шығару JSON пішіміндегі файл болып табылады. Басқа опция - параметр арқылы барлық қажетті ақпаратты қосу -d:

# wapiti-getcookie - http://sites.vulns.pentestit.ru/login.php -c cookie.json -d "username=admin&password=admin&enter=submit"

Нәтиже ұқсас болады:

Wapiti - сайтта осалдықтарды өздігінен тексеру

Сканердің негізгі функционалдығын қарастырған кезде, біздің жағдайда веб-қосымшаны тестілеудің соңғы сұрауы болды:

# wapiti --level 1 -u http://sites.vulns.pentestit.ru/ -f html -o /tmp/vulns.html -m all --color -с cookie.json --scope folder --flush-session -A 'Pentestit Scans' -p http://proxy.office.pentestit.ru:3128

мұнда басқа параметрлердің арасында:

-f и -o — есепті сақтау пішімі мен жолы;

-m — барлық модульдерді қосу ұсынылмайды, өйткені тестілеу уақыты мен есеп өлшеміне әсер етеді;

-түс — Вапитидің өзіне сәйкес олардың сыни дәрежесіне байланысты табылған осалдықтарды бөлектеңіз;

-c - файлды пайдалану куки, көмегімен жасалады wapiti-getcookie;

--ауқым — шабуыл үшін нысананы таңдау. Опцияны таңдау папка Әрбір URL мекенжайы негізгіден бастап тексеріледі және шабуылға ұшырайды. Негізгі URL мекенжайында қиғаш сызық болуы керек (файл атауы жоқ);

--флеш сеансы — алдыңғы нәтижелер ескерілмейтін қайталап сканерлеуге мүмкіндік береді;

-A - меншік Пайдаланушы агенті;

-p — қажет болса, прокси-сервер мекенжайы.

Есеп туралы аздап

Сканерлеу нәтижесі HTML бет пішіміндегі барлық табылған осалдықтар туралы егжей-тегжейлі есеп түрінде, түсінікті және оқуға оңай пішінде ұсынылады. Есепте табылған осалдықтардың санаттары мен саны, олардың сипаттамасы, сұраулары, командалары көрсетіледі бұралу және оларды жабу туралы кеңестер. Шарлауды жеңілдету үшін санат атауларына сілтеме қосылады, оған өтуге болады:

Wapiti - сайтта осалдықтарды өздігінен тексеру

Есептің маңызды кемшілігі веб-қосымшалар картасының жоқтығы болып табылады, онсыз барлық мекенжайлар мен параметрлердің талданған-талданбағаны анық болмайды. Сондай-ақ жалған позитивтердің пайда болу мүмкіндігі бар. Біздің жағдайда есепте «сақтық көшірме файлдары» және «ықтимал қауіпті файлдар» бар. Олардың саны шындыққа сәйкес келмейді, өйткені серверде мұндай файлдар болмаған:

Wapiti - сайтта осалдықтарды өздігінен тексеру

Мүмкін дұрыс жұмыс істемейтін модульдер уақыт өте келе түзетілуі мүмкін. Есептің тағы бір кемшілігі - табылған осалдықтарды бояудың болмауы (олардың сыни дәрежесіне байланысты) немесе кем дегенде оларды санаттарға бөлу. Табылған осалдықтың маңыздылығын жанама түрде түсінудің жалғыз жолы - параметрді пайдалану -түс сканерлеу кезінде, содан кейін табылған осалдықтар әртүрлі түстермен боялады:

Wapiti - сайтта осалдықтарды өздігінен тексеру

Бірақ есептің өзі мұндай бояуды қамтамасыз етпейді.

Осалдықтар

SQLi

Сканер SQLi іздеуін ішінара жеңді. Аутентификация талап етілмейтін беттерде SQL осалдықтарын іздеу кезінде проблемалар туындамайды:

Wapiti - сайтта осалдықтарды өздігінен тексеру

Түпнұсқалық растаудан кейін ғана қолжетімді беттерде осалдықты табу мүмкін болмады, тіпті жарамды болса да куки, өйткені сәтті аутентификациядан кейін олардың сеансы «шығылады» және куки жарамсыз болады. Егер авторизациялау функциясы осы процедураны өңдеуге жауапты жеке сценарий ретінде жүзеге асырылса, онда оны -x параметрі арқылы толығымен алып тастауға және осылайша оның іске қосылуын болдырмауға болады. Әйтпесе, оны өңдеуді жоққа шығару мүмкін емес. Бұл белгілі бір модульде емес, тұтастай құралда мәселе, бірақ осы нюанстың арқасында жабық ресурс аймағында бірнеше инъекцияны анықтау мүмкін болмады.

XSS

Сканер берілген тапсырманы тамаша орындап, барлық дайындалған осалдықтарды тапты:

Wapiti - сайтта осалдықтарды өздігінен тексеру

LFI/RFI

Сканер барлық негізгі осалдықтарды тапты:

Wapiti - сайтта осалдықтарды өздігінен тексеру

Жалпы, жалған позитивтерге және жетіспейтін осалдықтарға қарамастан, Wapiti тегін құрал ретінде өте жақсы өнімділік нәтижелерін көрсетеді. Қалай болғанда да, сканердің жеткілікті қуатты, икемді және көп функциялы екенін мойындаған жөн, ең бастысы, ол тегін, сондықтан оны әкімшілер мен әзірлеушілерге веб-сайттың қауіпсіздік күйі туралы негізгі ақпаратты алуға көмектесу үшін пайдалануға құқығы бар. қолдану.

Деніңіз сау және қорғаныңыз!

Ақпарат көзі: www.habr.com

пікір қалдыру