OWASPIL Break The Captcha
מפתח האתר הטמיע מנגנון Captcha על מנת למנוע הצפת טפסים, והמטרה שלנו באתגר היא לכתוב קוד שיצליח לעקוף את המנגנון ובכל זאת להציף את הטופס שלו בפניות.
כך שבאתגר זה אנו נדרשים לפתור 15 אתגרי captcha ב-30 שניות.
פתרון האתגר:
האתגר נראה כך:
על מנת לפתור את האתגר כתבנו סקריפט פייתון קצר שיפתור את ה-captcha באמצעות שימוש במודול pytesseract שזהו מודול OCR די מוצלח לדעתי. לינק למודול
הקוד המלא לפתרון האתגר נראה כך:
לינק לקוד ב-Github שלי
הסבר לסקריפט:
הפונקציה get_image משתמשת במודול requests כדי להוריד את התמונה מהאתר ושומרת אותה מקומית.
הפונקציה get_captcha משתמשת במודולים PIL (חבילה של פייתון לעבודה עם תמונות) ו-pytesseract (כלי מבוסס OCR המשמש לקריאת טקסט בתוך תמונה).
הקוד המרכזי משתמש בשתי הפונקציות על מנת להוריד את התמונה ולהוציא ממנה את הטקסט, לאחר מכן הוא שולח את התוצאה לאתר על ידי הפנייה הבאה.
נפתח Suite Burp על מנת לראות אילו פרמטרים מועברים בבקשת ה-POST שנשלחת כאשר לוחצים submit. ניתן לראות כי הפרמטרים הם: captcha ו-submit.
כעת, ניצור בקשת POST חדשה עם הפרמטרים שהזכרנו קודם ונריץ את הקוד:
וכך נקבל את הדגל:
OWASP-IL{YouAreTheCaptchaMaster!}