Wapiti - өз алдынча сайттын кемчиликтерин текшерүү

Wapiti - өз алдынча сайттын кемчиликтерин текшерүү
Акырында макала жөнүндө сүйлөштүк Nemesida WAF Free - веб-сайттарды жана API'лерди хакердик чабуулдардан коргоонун акысыз куралы жана бул жерде биз популярдуу аялуу сканерин карап чыгууну чечтик Elk.

Веб-сайтты алсыздыктарга сканерлөө зарыл чара болуп саналат, ал баштапкы кодду талдоо менен бирге компромисстик коркунучтардан анын коопсуздук деңгээлин баалоого мүмкүндүк берет. Сиз атайын куралдарды колдонуу менен веб-ресурсту сканерлей аласыз.

Nikto, W3af (Python 2.7де жазылган, ал мындан ары колдоого алынбайт) же Arachni (февраль айынан бери колдоого алынбайт) - эркин сегментте сунушталган эң популярдуу чечимдер. Албетте, башкалар бар, мисалы, Wapiti, биз токтолууну чечтик.

Wapiti алсыздыктын төмөнкү түрлөрү менен иштейт:

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

өзгөчөлүктөрү:

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

Кошумча функциялар:

  • ар кандай форматтарда (HTML, XML, JSON, TXT) аялуу отчетторду түзүү;
  • сканерлөө же чабуулду тындыруу жана кайра улантуу (SQLite3 маалымат базасын колдонуу менен сессия механизми);
  • аялуу жерлерди белгилөө үчүн терминалдагы жарыктандыруу;
  • ар кандай деъгээлдеги жыгачтарды даярдоо;
  • Чабуул модулдарын жандыруу/өчүрүүнүн тез жана оңой жолу.

жөндөө

Учурдагы Wapiti версиясын эки жол менен орнотсо болот:

  • расмий булагы жүктөп алуу сайт жана мурда Python3 орнотуп алып, орнотуу скриптин иштетүү;
  • pip3 орнотуу wapiti3 буйругун колдонуу.

Ушундан кийин Wapiti кетүүгө даяр болот.

Курал менен иштөө

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

Маалымат маалыматтык максатта гана берилет. Мыйзамды бузба!

Сканерди ишке киргизүү үчүн негизги буйрук:

# 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: алуу, blindsql: билдирүү, xxe: билдирүү". Бул учурда, модул xss GET ыкмасы жана модулу аркылуу жөнөтүлгөн суроо-талаптарга карата колдонулат blibdsql - POST сурамдарына ж.б. Айтмакчы, эгерде тизмеге кирген кээ бир модул сканерлөө учурунда керек болбосо же өтө көп убакытты талап кылса, анда Ctrl+C айкалышын басуу менен интерактивдүү менюдан тиешелүү пунктту тандап, учурдагы модулду колдонууну өткөрүп жиберсеңиз болот.

Wapiti прокси аркылуу суроо-талаптарды ачкыч аркылуу өткөрүүнү колдойт -p жана параметр аркылуу максаттуу сайтта аныктыгын текшерүү -a. Сиз ошондой эле аутентификация түрүн көрсөтө аласыз: Негизги, сиңдирүү, Kerberos и 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'де алдыга сызык болушу керек (файлдын аты жок);

--fush-session — кайталап сканерлөөгө мүмкүндүк берет, мында мурунку жыйынтыктар эске алынбайт;

-A - менчик Колдонуучунун агенти;

-p — зарыл болсо, прокси сервердин дареги.

Отчет жөнүндө бир аз

Сканирлөөнүн натыйжасы HTML барак форматында, так жана окууга оңой формада табылган бардык кемчиликтер боюнча деталдуу отчет түрүндө берилет. Отчетто табылган кемчиликтердин категориялары жана саны, алардын сыпаттамасы, сурамдары, буйруктары көрсөтүлөт бүгө жана аларды кантип жабуу боюнча кеңештер. Навигациянын оңой болушу үчүн категориялардын аталыштарына шилтеме кошулат, аны бассаңыз, ага өтсөңүз болот:

Wapiti - өз алдынча сайттын кемчиликтерин текшерүү

Отчеттун олуттуу кемчилиги - бул веб-тиркеме картасынын жоктугу, ансыз бардык даректер жана параметрлер талданган-талдоодон өткөн-болбогону ачык-айкын болбойт. Ошондой эле жалган позитивдүү мүмкүнчүлүктөр бар. Биздин учурда, отчет "камдык файлдар" жана "потенциалдуу коркунучтуу файлдарды" камтыйт. Алардын саны чындыкка дал келбейт, анткени серверде мындай файлдар жок болчу:

Wapiti - өз алдынча сайттын кемчиликтерин текшерүү

Балким, туура эмес иштеген модулдар убакыттын өтүшү менен оңдолот. Отчеттун дагы бир кемчилиги – табылган кемчиликтердин боёлбогондугу (алардын критикалуулугуна жараша) же жок дегенде аларды категорияларга бөлүү. Табылган алсыздыктын критикалуулугун кыйыр түрдө түшүнүүнүн бирден бир жолу - бул параметрди колдонуу --түс сканерлөө учурунда, андан кийин табылган кемчиликтер ар кандай түскө боёлот:

Wapiti - өз алдынча сайттын кемчиликтерин текшерүү

Бирок отчеттун өзү мындай түстү бербейт.

Аялуу жерлер

SQLi

Сканер жарым-жартылай SQLi издөө менен күрөштү. Аутентификация талап кылынбаган барактарда SQL кемчиликтерин издөөдө эч кандай көйгөйлөр жаралбайт:

Wapiti - өз алдынча сайттын кемчиликтерин текшерүү

Аныктыгын текшерүүдөн өткөндөн кийин гана жеткиликтүү болгон баракчаларда алсыздыкты табуу мүмкүн болгон жок, атүгүл жарактуу куки, Ийгиликтүү аутентификациядан кийин, сыягы, алардын сессиясы "чыгуу" жана куки жараксыз болуп калат. Эгерде авторизациялоо функциясы бул процедураны иштетүү үчүн жооптуу өзүнчө скрипт катары ишке ашырылса, анда аны -x параметри аркылуу толугу менен чыгарып салууга жана ошону менен анын ишке киришине жол бербөөгө болот. Болбосо, аны кайра иштетүүнү жокко чыгаруу мүмкүн эмес. Бул белгилүү бир модулда эмес, бүтүндөй курал менен көйгөй, бирок бул нюанстын айынан жабык ресурстук аймакта бир нече инъекцияны аныктоо мүмкүн болгон жок.

XSS

Сканер берилген тапшырманы мыкты аткарып, бардык даярдалган кемчиликтерди тапты:

Wapiti - өз алдынча сайттын кемчиликтерин текшерүү

LFI/RFI

Сканер бардык негизги кемчиликтерди тапты:

Wapiti - өз алдынча сайттын кемчиликтерин текшерүү

Жалпысынан алганда, жалган позитивдүү жана жетишпеген аялуу жактарына карабастан, Wapiti, бекер курал катары, абдан жакшы натыйжаларды көрсөтөт. Кандай болгон күндө да, сканер абдан күчтүү, ийкемдүү жана көп функционалдуу экенин, эң негизгиси, ал бекер экенин моюнга алуу керек, ошондуктан ал администраторлорго жана иштеп чыгуучуларга веб-сайттын коопсуздук абалы жөнүндө негизги маалыматты алууга жардам берүү үчүн колдонулууга укуктуу. колдонмо.

Ден соолукта болуңуз жана коргоңуз!

Source: www.habr.com

Комментарий кошуу