Wapiti - сайтын эмзэг байдлыг өөрөө шалгах

Wapiti - сайтын эмзэг байдлыг өөрөө шалгах
Хамгийн сүүлд нийтлэл бид ярилцсан Nemesida WAF үнэгүй - вэб сайт болон API-г хакерын халдлагаас хамгаалах үнэгүй хэрэгсэл бөгөөд энэ програмд ​​бид алдартай эмзэг байдлын сканнерыг шалгахаар шийдсэн. Вапити.

Вэбсайтыг эмзэг байдлын үүднээс сканнердах нь зайлшгүй шаардлагатай арга хэмжээ бөгөөд эх кодын дүн шинжилгээ хийх зэрэг нь түүний аюулгүй байдлын түвшинг буулт хийх аюулаас хамгаалах боломжийг танд олгоно. Та тусгай хэрэгсэл ашиглан вэб нөөцийг сканнердаж болно.

Nikto, W3af (Python 2.7 дээр бичигдсэн бөгөөд энэ нь цаашид дэмжигдэхгүй) эсвэл Arachni (XNUMX-р сараас хойш дэмжигдэхгүй) үнэгүй сегментэд танилцуулсан хамгийн алдартай шийдлүүд юм. Мэдээжийн хэрэг, бусад хүмүүс байдаг, жишээлбэл, Вапити, бид анхаарлаа хандуулахаар шийдсэн.

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 хаягаас гарах);
  • күүки импортлох (wapiti-getcookie хэрэглүүрийг ашиглан тэдгээрийг авах);
  • SSL сертификатын баталгаажуулалтыг идэвхжүүлэх / идэвхгүй болгох чадвар;
  • JavaScript-ээс URL задлах чадвар (маш энгийн JS орчуулагч);
  • HTML5-тай харилцах;
  • мөлхөгч зан төлөв, хязгаарлалтыг удирдах хэд хэдэн сонголт;
  • сканнердах процессын хамгийн дээд хугацааг тогтоох;
  • зарим тусгай HTTP толгойг нэмэх эсвэл өөрчлөн хэрэглэгчийн агент тохируулах.

Нэмэлт боломжууд:

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

тохиргоо

Wapiti-ийн одоогийн хувилбарыг 2 аргаар суулгаж болно.

  • албан ёсны эх сурвалжаас татаж авах сайт мөн өмнө нь Python3-г суулгаж суулгасан скриптийг ажиллуулах;
  • pip3 install wapiti3 командыг ашиглан.

Үүний дараа Вапити явахад бэлэн болно.

Хэрэгсэлтэй ажиллах

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: шуудан”. Энэ тохиолдолд модуль хсс GET арга болон модулийг ашиглан илгээсэн хүсэлтүүдэд хамаарна blibdsql - POST хүсэлт гэх мэт. Дашрамд хэлэхэд, жагсаалтад орсон зарим модуль нь сканнердах явцад шаардлагагүй эсвэл маш удаан хугацаа шаардагддаг бол Ctrl+C хослолыг дарснаар интерактив цэснээс тохирох зүйлийг сонгон одоогийн модулийг алгасаж болно.

Wapiti нь прокси ашиглан хүсэлтийг түлхүүр ашиглан дамжуулахыг дэмждэг -p болон параметрээр дамжуулан зорилтот сайт дээр баталгаажуулалт -a. Та мөн баталгаажуулалтын төрлийг зааж өгч болно: Үндсэн, Хоол боловсруулах, Керберос и NTLM. Сүүлийн хоёр нь нэмэлт модулиудыг суулгах шаардлагатай байж магадгүй юм. Нэмж дурдахад, та хүсэлтэд дурын толгойг оруулах боломжтой (дурын Хэрэглэгчийн-Agent) болон бусад олон.

Баталгаажуулалтыг ашиглахын тулд та уг хэрэгслийг ашиглаж болно 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 - өөрийн Хэрэглэгчийн-Agent;

-p - шаардлагатай бол прокси серверийн хаяг.

Тайлангийн талаар бага зэрэг

Сканнердсан үр дүнг HTML хуудасны форматаар, ойлгомжтой, уншихад хялбар хэлбэрээр илрүүлсэн бүх сул талуудын талаар нарийвчилсан тайлан хэлбэрээр толилуулж байна. Тайлан нь олдсон эмзэг байдлын ангилал, тоо, тэдгээрийн тайлбар, хүсэлт, тушаалуудыг заана curl мөн тэдгээрийг хэрхэн хаах тухай зөвлөмжүүд. Навигацид хялбар болгохын тулд категорийн нэрэнд холбоос нэмэгдэх бөгөөд та түүн рүү очих боломжтой.

Wapiti - сайтын эмзэг байдлыг өөрөө шалгах

Тайлангийн мэдэгдэхүйц сул тал бол вэб програмын газрын зураг байхгүй байгаа бөгөөд үүнгүйгээр бүх хаяг, параметрүүдийг шинжилсэн эсэх нь тодорхойгүй байх болно. Хуурамч эерэг гарах магадлал бас бий. Манай тохиолдолд тайланд "нөөц файлууд" болон "аюултай байж болзошгүй файлууд" багтсан болно. Сервер дээр ийм файл байхгүй тул тэдний тоо бодит байдалтай нийцэхгүй байна.

Wapiti - сайтын эмзэг байдлыг өөрөө шалгах

Магадгүй буруу ажиллаж байгаа модулиудыг цаг хугацааны явцад засах болно. Тайлангийн өөр нэг сул тал бол олсон сул талуудыг (тэдгээрийн чухал байдлаас хамааран) будах, эсвэл наад зах нь ангилалд хуваах явдал юм. Олдсон эмзэг байдлын эгзэгтэй байдлыг шууд бусаар ойлгох цорын ганц арга бол параметрийг ашиглах явдал юм --өнгө сканнердах явцад, дараа нь олдсон сул талуудыг өөр өнгөөр ​​​​будах болно:

Wapiti - сайтын эмзэг байдлыг өөрөө шалгах

Гэхдээ тайланд өөрөө ийм өнгө өгдөггүй.

Эмзэг байдал

SQLi

Сканнер нь SQLi хайлтыг хэсэгчлэн даван туулсан. Баталгаажуулалт шаардлагагүй хуудсууд дээр SQL-ийн эмзэг байдлыг хайхад ямар ч асуудал гарахгүй.

Wapiti - сайтын эмзэг байдлыг өөрөө шалгах

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

XSS

Сканнер нь өгөгдсөн даалгаврыг төгс даван туулж, бэлтгэсэн бүх сул талуудыг олсон:

Wapiti - сайтын эмзэг байдлыг өөрөө шалгах

LFI/RFI

Сканнер нь үндсэн бүх сул талыг олсон:

Wapiti - сайтын эмзэг байдлыг өөрөө шалгах

Ерөнхийдөө, хуурамч эерэг болон сул талуудыг үл харгалзан Wapiti нь үнэгүй хэрэгсэл болохын хувьд гүйцэтгэлийн сайн үр дүнг харуулдаг. Ямар ч тохиолдолд сканнер нь нэлээд хүчирхэг, уян хатан, олон үйлдэлт бөгөөд хамгийн чухал нь үнэ төлбөргүй байдаг тул администраторууд болон хөгжүүлэгчдэд вэбийн аюулгүй байдлын талаархи үндсэн мэдээллийг олж авахад нь туслах эрхтэй гэдгийг хүлээн зөвшөөрөх нь зүйтэй. програм.

Эрүүл, хамгаалагдсан байгаарай!

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх