Wapiti - o'z-o'zidan saytdagi zaifliklarni tekshirish

Wapiti - o'z-o'zidan saytdagi zaifliklarni tekshirish
Oxirida maqola haqida gaplashdik Nemesida WAF bepul - veb-saytlar va API-larni xakerlik hujumlaridan himoya qilish uchun bepul vosita va bunda biz mashhur zaiflik skanerini ko'rib chiqishga qaror qildik. Vapiti.

Veb-saytni zaifliklar uchun skanerlash zaruriy chora bo'lib, manba kodini tahlil qilish bilan birgalikda uning murosa tahdidlariga qarshi xavfsizlik darajasini baholash imkonini beradi. Siz maxsus vositalar yordamida veb-resursni skanerlashingiz mumkin.

Nikto, W3af (Python 2.7 da yozilgan, endi qo'llab-quvvatlanmaydi) yoki Arachni (fevraldan beri qo'llab-quvvatlanmaydi) bepul segmentda taqdim etilgan eng mashhur echimlardir. Albatta, boshqalar ham bor, masalan, Wapiti, biz ularga e'tibor berishga qaror qildik.

Wapiti quyidagi turdagi zaifliklar bilan ishlaydi:

  • faylni kengaytirish (mahalliy va masofaviy, fopen, readfile);
  • in'ektsiya (PHP / JSP / ASP / SQL in'ektsiyasi va XPath in'ektsiyasi);
  • XSS (Cross Site Scripting) (aks ettiruvchi va doimiy);
  • buyruqlarni aniqlash va bajarish (eval(), system(), paststru());
  • CRLF in'ektsiyalari (HTTP javobini ajratish, seansni aniqlash);
  • XXE (XML tashqi ob'ekt) o'rnatish;
  • SSRF (Server tomoni so'rovini qalbakilashtirish);
  • ma'lum potentsial xavfli fayllardan foydalanish (Nikto ma'lumotlar bazasi tufayli);
  • chetlab o'tish mumkin bo'lgan zaif .htaccess konfiguratsiyalari;
  • maxfiy ma'lumotlarni ochib beruvchi zaxira fayllar mavjudligi (manba kodini oshkor qilish);
  • Shellshock;
  • ochiq yo'naltirishlar;
  • hal qilinishi mumkin bo'lgan nostandart HTTP usullari (PUT).

Xususiyatlar:

  • HTTP, HTTPS va SOCKS5 proksi-serverini qo'llab-quvvatlash;
  • bir necha usullar yordamida autentifikatsiya: Basic, Digest, Kerberos yoki NTLM;
  • skanerlash maydonini cheklash imkoniyati (domen, papka, sahifa, URL);
  • URL manzilidagi parametrlardan birini avtomatik ravishda olib tashlash;
  • cheksiz skanerlash davrlariga qarshi ko'plab ehtiyot choralari (masalan: ifor, parametr uchun chegara qiymatlari);
  • URL manzillarini tekshirish uchun ustuvorlikni belgilash imkoniyati (ular skanerlash hududida bo'lmasa ham);
  • ba'zi URL-manzillarni skanerlash va hujumlardan chiqarib tashlash imkoniyati (masalan: URL manzilidan chiqish);
  • cookie-fayllarni import qilish (ularni wapiti-getcookie vositasidan foydalanib oling);
  • SSL sertifikatini tekshirishni faollashtirish/o'chirish imkoniyati;
  • JavaScript-dan URL-manzillarni chiqarish qobiliyati (juda oddiy JS tarjimoni);
  • HTML5 bilan o'zaro aloqa;
  • skaner harakati va cheklovlarni boshqarishning bir nechta variantlari;
  • skanerlash jarayonining maksimal vaqtini belgilash;
  • ba'zi maxsus HTTP sarlavhalarini qo'shish yoki maxsus User-Agentni o'rnatish.

Qo'shimcha imkoniyatlar:

  • turli formatlarda zaiflik hisobotlarini yaratish (HTML, XML, JSON, TXT);
  • skanerlash yoki hujumni to'xtatib turish va davom ettirish (SQLite3 ma'lumotlar bazasidan foydalangan holda sessiya mexanizmi);
  • zaifliklarni ta'kidlash uchun terminalda orqa yoritish;
  • turli darajadagi jurnallar;
  • Hujum modullarini faollashtirish/oβ€˜chirishning tez va oson usuli.

sozlama

Wapiti-ning joriy versiyasini ikki usulda o'rnatish mumkin:

  • manbani rasmiydan yuklab oling sayt va avval Python3 ni o'rnatgan holda o'rnatish skriptini ishga tushiring;
  • pip3 install wapiti3 buyrug'i yordamida.

Shundan so'ng Wapiti borishga tayyor bo'ladi.

Asbob bilan ishlash

Wapiti ishini namoyish qilish uchun biz turli xil zaifliklar (Injection, XSS, LFI/RFI) va veb-ilovalarning boshqa kamchiliklarini o'z ichiga olgan saytlar.vulns.pentestit.ru (ichki resurs) maxsus tayyorlangan stenddan foydalanamiz.

Ma'lumotlar faqat ma'lumot olish uchun taqdim etiladi. Qonunni buzmang!

Skanerni ishga tushirish uchun asosiy buyruq:

# wapiti -u <target> <options>

Shu bilan birga, juda ko'p sonli ishga tushirish variantlari bo'yicha batafsil yordam mavjud, masalan:

--ko'lami - qo'llash sohasi
Agar siz skanerlash URL manzili bilan birga qamrov parametrini belgilasangiz, bitta sahifani va saytda topilishi mumkin bo'lgan barcha sahifalarni belgilash orqali saytning skanerlash maydonini sozlashingiz mumkin.

-s ΠΈ -x β€” muayyan URL manzillarini qoβ€˜shish yoki oβ€˜chirish imkoniyatlari. Ushbu parametrlar skanerlash jarayonida ma'lum bir URLni qo'shish yoki o'chirish kerak bo'lganda foydalidir.

--o'tkazib yuborish β€” ushbu kalit bilan belgilangan parametr skanerlanadi, lekin hujumga uchramaydi. Skanerlash vaqtida eng yaxshi chiqarib tashlanadigan xavfli parametrlar mavjud bo'lsa foydalidir.

--verify-ssl β€” sertifikatni tekshirishni yoqish yoki oβ€˜chirish.
Wapiti skaneri modulli. Shu bilan birga, muayyan modullarni, shu jumladan skaner ishlayotgan vaqtda avtomatik ravishda ulanadigan modullarni ishga tushirish uchun siz -m tugmasidan foydalanishingiz va kerak bo'lganlarni vergul bilan ajratib ko'rsatishingiz kerak. Agar kalit ishlatilmasa, barcha modullar sukut bo'yicha ishlaydi. Eng oddiy versiyada u quyidagicha ko'rinadi:

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

Ushbu foydalanish misoli maqsadni skanerlashda biz faqat SQL, XSS va XXE modullaridan foydalanishimizni anglatadi. Bundan tashqari, siz modullarning ishlashini kerakli usulga qarab filtrlashingiz mumkin. Masalan -m β€œxss: get, blindsql: post, xxe: post”. Bunday holda, modul xss GET usuli va modul yordamida yuborilgan so'rovlarga nisbatan qo'llaniladi blibdsql β€” POST so'rovlariga va hokazo. Aytgancha, agar ro'yxatga kiritilgan ba'zi modullar skanerlash paytida kerak bo'lmasa yoki juda uzoq vaqt talab qilsa, Ctrl + C kombinatsiyasini bosish orqali siz interaktiv menyuda tegishli elementni tanlab, joriy moduldan foydalanishni o'tkazib yuborishingiz mumkin.

Wapiti kalit yordamida so'rovlarni proksi-server orqali uzatishni qo'llab-quvvatlaydi -p va parametr orqali maqsadli saytda autentifikatsiya -a. Shuningdek, autentifikatsiya turini belgilashingiz mumkin: Asosiy, Digestalar, Kerberos ΠΈ NTLM. Oxirgi ikkitasi qo'shimcha modullarni o'rnatishni talab qilishi mumkin. Bundan tashqari, siz so'rovlarga har qanday sarlavhalarni kiritishingiz mumkin (shu jumladan o'zboshimchalik bilan Foydalanuvchi agenti) va boshqalar.

Autentifikatsiyadan foydalanish uchun siz vositadan foydalanishingiz mumkin wapiti-getcookie. Uning yordami bilan biz shakllanamiz cookie, skanerlashda Wapiti foydalanadi. Shakllanish cookie buyruq bilan bajariladi:

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

Interaktiv ishlayotganda biz savollarga javob beramiz va login, parol va hokazo kabi kerakli ma'lumotlarni ko'rsatamiz:

Wapiti - o'z-o'zidan saytdagi zaifliklarni tekshirish

Chiqish JSON formatidagi fayldir. Yana bir variant - parametr orqali barcha kerakli ma'lumotlarni qo'shishdir -d:

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

Natija shunga o'xshash bo'ladi:

Wapiti - o'z-o'zidan saytdagi zaifliklarni tekshirish

Skanerning asosiy funksionalligini ko'rib chiqayotganda, bizning holatlarimizda veb-ilovani sinab ko'rish bo'yicha yakuniy so'rov:

# 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

boshqa parametrlar qatorida:

-f ΠΈ -o β€” hisobotni saqlash formati va yoβ€˜li;

-m β€” barcha modullarni ulash tavsiya etilmaydi, chunki sinov vaqti va hisobot hajmiga ta'sir qiladi;

--rang β€” Vapitining o'ziga ko'ra, ularning tanqidiyligiga qarab topilgan zaifliklarni ajratib ko'rsatish;

-c - bilan fayldan foydalanish cookie, yordamida yaratilgan wapiti-getcookie;

--ko'lami - hujum uchun nishon tanlash. Variantni tanlash Papkasida joylashgan Har bir URL asosiydan boshlab tekshiriladi va hujumga uchraydi. Asosiy URL manzilida qiyshiq chiziq boβ€˜lishi kerak (fayl nomi yoβ€˜q);

--fush-sessiya β€” oldingi natijalar hisobga olinmaydigan takroriy skanerlash imkonini beradi;

-A - Shaxsiy Foydalanuvchi agenti;

-p β€” agar kerak bo'lsa, proksi-server manzili.

Hisobot haqida bir oz

Skanerlash natijasi barcha topilgan zaifliklar bo'yicha batafsil hisobot shaklida HTML sahifa formatida, tushunarli va o'qilishi oson shaklda taqdim etiladi. Hisobotda topilgan zaifliklar toifalari va soni, ularning tavsiflari, so'rovlari, buyruqlari ko'rsatiladi kΔ±vrΔ±m va ularni yopish bo'yicha maslahatlar. Navigatsiya qulayligi uchun toifa nomlariga havola qo'shiladi, ustiga bosish orqali unga o'tishingiz mumkin:

Wapiti - o'z-o'zidan saytdagi zaifliklarni tekshirish

Hisobotning muhim kamchiligi bu veb-ilovalar xaritasining yo'qligi bo'lib, ularsiz barcha manzillar va parametrlar tahlil qilinganmi yoki yo'qmi aniq bo'lmaydi. Noto'g'ri pozitivlar ehtimoli ham mavjud. Bizning holatda, hisobotda "zaxira fayllari" va "potentsial xavfli fayllar" mavjud. Ularning soni haqiqatga to'g'ri kelmaydi, chunki serverda bunday fayllar yo'q edi:

Wapiti - o'z-o'zidan saytdagi zaifliklarni tekshirish

Ehtimol, noto'g'ri ishlaydigan modullar vaqt o'tishi bilan tuzatiladi. Hisobotning yana bir kamchiligi topilgan zaifliklarning ranglanmasligi (ularning tanqidiyligiga qarab) yoki hech bo'lmaganda ularni toifalarga bo'lishdir. Topilgan zaiflikning tanqidiyligini bilvosita tushunishimiz mumkin bo'lgan yagona usul bu parametrdan foydalanishdir --rang skanerlash paytida, keyin topilgan zaifliklar turli xil ranglarda ranglanadi:

Wapiti - o'z-o'zidan saytdagi zaifliklarni tekshirish

Ammo hisobotning o'zi bunday rang berishni ta'minlamaydi.

Zaifliklar

SQLi

Brauzer qisman SQLi qidiruvini engdi. Autentifikatsiya talab qilinmaydigan sahifalarda SQL zaifliklarini qidirishda hech qanday muammo yuzaga kelmaydi:

Wapiti - o'z-o'zidan saytdagi zaifliklarni tekshirish

Faqat autentifikatsiyadan so'ng foydalanish mumkin bo'lgan sahifalarda zaiflikni topish mumkin emas edi, hatto haqiqiy bo'lsa ham cookie, chunki muvaffaqiyatli autentifikatsiyadan so'ng, ularning sessiyasi "chiqish" va cookie bekor boβ€˜ladi. Agar avtorizatsiya qilish funktsiyasi ushbu protsedurani qayta ishlash uchun mas'ul bo'lgan alohida skript sifatida amalga oshirilgan bo'lsa, uni -x parametri orqali butunlay chiqarib tashlash va shu bilan uni ishga tushirishni oldini olish mumkin edi. Aks holda, uni qayta ishlashni istisno qilish mumkin bo'lmaydi. Bu muayyan modul bilan bog'liq muammo emas, balki umuman asbob bilan bog'liq, ammo bu nuance tufayli yopiq resurs hududida bir nechta in'ektsiyalarni aniqlash mumkin emas edi.

XSS

Skaner berilgan vazifani a'lo darajada bajardi va barcha tayyorlangan zaifliklarni topdi:

Wapiti - o'z-o'zidan saytdagi zaifliklarni tekshirish

LFI/RFI

Skaner barcha asosiy zaifliklarni topdi:

Wapiti - o'z-o'zidan saytdagi zaifliklarni tekshirish

Umuman olganda, noto'g'ri ijobiy va etishmayotgan zaifliklarga qaramay, Wapiti bepul vosita sifatida juda yaxshi ishlash natijalarini ko'rsatadi. Qanday bo'lmasin, shuni tan olish kerakki, skaner juda kuchli, moslashuvchan va ko'p funktsiyali va eng muhimi, u bepul, shuning uchun u ma'murlar va ishlab chiquvchilarga vebning xavfsizlik holati to'g'risida asosiy ma'lumotlarni olishda yordam berishda foydalanish huquqiga ega. ilova.

Sog'lom va himoyalangan bo'ling!

Manba: www.habr.com

a Izoh qo'shish