איך להערים על הגנות כדי לבצע התקפת SQL עם JSON

(של אלסנדרו רוגלו)
05/04/24

כפי שראינו בעבר, SQLi עדיין מפחידים למרות גילם. אם מישהו פספס את המידע הבסיסי על SQLi, אני ממליץ לעיין במאמר הראשון: התקפת הזרקת SQL: מה זה?

באופן טבעי, תעשיית האבטחה פיתחה כלים להילחם ב-SQLi, אלו יישומים המסוגלים לסנן בקשות אינטרנט ולקבוע בקירוב טוב אם מדובר בבקשות לגיטימיות או ניסיונות תקיפה.

מטבע הדברים, גם האקרים לא נתנו לעצמם להתייאש ומצאו שורה שלמה של טריקים "לעקוף" את ההגנות, ביניהם המתקפה שנקראה JSON - SQL עוקף.

בואו ננסה להבין מה זה, אבל קודם כמה מילים על JSON.

JSON הוא פורמט חילופי נתונים המבוסס על תת-קבוצה של שפת התכנות JavaScript, למעשה זה מייצג JavaScript Object Notation.

עם הזמן JSON הפך לפורמט הנפוץ ביותר בהחלפת נתונים ומסדי נתונים כללו תמיכה ב-JSON ב-SQL. אותו דבר לא קרה לכלי אבטחה רבים אשר כתוצאה מכך אינם מסוגלים לזהות ניסיונות תקיפה של SQLi שבוצעו בטכניקה זו. 

לדוגמה, אם אנו מחשיבים אפליקציית אינטרנט מוגנת על ידי WAF ומנסים לבצע מתקפת SQLi כדי לנסות לסנן נתונים שאין לנו גישה אליהם, בקרות ה-WAF מסוגלות בדרך כלל לזהות את הבקשה הפסולה ולחסום את הניסיון. של התקפה. עם זאת, אם מנסים להתקפה באמצעות מחרוזת בפורמט JSON, ה-WAF מתעתע בכך שהוא אינו מסוגל להבין שהמחרוזת מכילה פקודת SQL בעוד שבסיס הנתונים מסוגל לפרש נכון את הפקודה שכן הוא תומך בתחביר JSON.

התוצאה היא שיצרני WAF העיקריים (Palo Alto Networks, Amazon Web Services, Cloudflare, F5 ו-Imperva) נאלצו לפעול בשנת 2022 על ידי הכנסת כללים כדי להבטיח שליטה בתחביר JSON.

צוות המחקר של CLAROTY TEAM82 גילה את סוג ההתקפה החדש הזה.

כעת, בהתחשב בעובדה שמדובר במתקפה די לאחרונה, אני מציע שכל מי שמשתמש ב-WAF כדי להגן על שירותי ה-WEB שלהם יבצעו בדיקות ספציפיות כדי לבדוק אם הם מוגנים על ידי JSON SQL Bypass.

יהיו רבים שיחשבו שאין צורך להיבהל שכן מדובר במתקפה מורכבת מאוד לביצוע: אני ממליץ לאחרון לשים לב במקום זאת שכן SQLMap מאפשר לך לחפש באופן אוטומטי אתרים פגיעים להתקפת JSON SQL Bypass. 

SQLMap, כלי קוד פתוח קל לשימוש... לא, זה כבר סיפור אחר!

להעמיק:

- https://www.picussecurity.com/resource/blog/waf-bypass-using-json-based-...

- https://www.json.org/json-it.html

- https://claroty.com/team82/research/js-on-security-off-abusing-json-base...