mirror of
				https://github.com/sqlmapproject/sqlmap.git
				synced 2025-11-01 00:17:25 +03:00 
			
		
		
		
	fix for that takeover bug Ethan Robish posted (Windows/PHP)
This commit is contained in:
		
							parent
							
								
									7d3a200ab8
								
							
						
					
					
						commit
						1bcec80e95
					
				|  | @ -34,10 +34,8 @@ import ntpath | |||
| import posixpath | ||||
| import subprocess | ||||
| 
 | ||||
| from StringIO import StringIO | ||||
| from tempfile import NamedTemporaryFile | ||||
| from tempfile import mkstemp | ||||
| from xml.sax import parse | ||||
| 
 | ||||
| from extra.cloak.cloak import decloak | ||||
| from lib.contrib import magic | ||||
|  | @ -255,6 +253,8 @@ def getDocRoot(webApi=None): | |||
|             if isWindowsPath(absFilePath): | ||||
|                 absFilePathWin = posixToNtSlashes(absFilePath) | ||||
|                 absFilePath    = ntToPosixSlashes(absFilePath[2:]) | ||||
|             elif isWindowsDriveLetterPath(absFilePath): #e.g. C:/xampp/htdocs | ||||
|                 absFilePath    = absFilePath[2:] | ||||
| 
 | ||||
|             if pagePath in absFilePath: | ||||
|                 index   = absFilePath.index(pagePath) | ||||
|  | @ -308,7 +308,7 @@ def getDirs(webApi=None): | |||
|             if absFilePath: | ||||
|                 directory = directoryPath(absFilePath) | ||||
|                 if isWindowsPath(directory): | ||||
|                     directory = directory.replace('\\', '/') | ||||
|                     ntToPosixSlashes(directory) | ||||
|                 if directory == '/': | ||||
|                     continue | ||||
|                 directories.add(directory) | ||||
|  | @ -978,7 +978,7 @@ def urlEncodeCookieValues(cookieStr): | |||
| 
 | ||||
| def directoryPath(path): | ||||
|     retVal = None | ||||
|     if isWindowsPath(path): | ||||
|     if isWindowsDriveLetterPath(path): | ||||
|         retVal = ntpath.dirname(path) | ||||
|     else: | ||||
|         retVal = posixpath.dirname(path) | ||||
|  | @ -989,10 +989,8 @@ def normalizePath(path): | |||
|     This function must be called only after posixToNtSlashes() | ||||
|     and ntToPosixSlashes() | ||||
|     """ | ||||
| 
 | ||||
|     retVal = None | ||||
| 
 | ||||
|     if isWindowsPath(path): | ||||
|     if isWindowsDriveLetterPath(path): | ||||
|         retVal = ntpath.normpath(path) | ||||
|     else: | ||||
|         retVal = posixpath.normpath(path) | ||||
|  | @ -1054,6 +1052,9 @@ def decloakToMkstemp(filepath, **kwargs): | |||
| def isWindowsPath(filepath): | ||||
|     return re.search("\A[\w]\:\\\\", filepath) is not None | ||||
| 
 | ||||
| def isWindowsDriveLetterPath(filepath): | ||||
|     return re.search("\A[\w]\:", filepath) is not None | ||||
| 
 | ||||
| def posixToNtSlashes(filepath): | ||||
|     return filepath.replace('/', '\\') | ||||
| 
 | ||||
|  |  | |||
|  | @ -33,7 +33,7 @@ from lib.core.common import fileToStr | |||
| from lib.core.common import getDirs | ||||
| from lib.core.common import getDocRoot | ||||
| from lib.core.common import ntToPosixSlashes | ||||
| from lib.core.common import isWindowsPath | ||||
| from lib.core.common import isWindowsDriveLetterPath | ||||
| from lib.core.common import normalizePath | ||||
| from lib.core.common import posixToNtSlashes | ||||
| from lib.core.common import randomStr | ||||
|  | @ -177,9 +177,11 @@ class Web: | |||
|         for directory in directories: | ||||
|             # Upload the uploader agent | ||||
|             self.__webFileInject(uploaderContent, uploaderName, directory) | ||||
|              | ||||
|             requestDir  = ntToPosixSlashes(directory).replace(ntToPosixSlashes(kb.docRoot), "/") | ||||
|             if isWindowsPath(requestDir): | ||||
|             requestDir  = ntToPosixSlashes(directory) | ||||
|             if requestDir[-1] != '/': | ||||
|                 requestDir += '/' | ||||
|             requestDir  = requestDir.replace(ntToPosixSlashes(kb.docRoot), "/") | ||||
|             if isWindowsDriveLetterPath(requestDir): | ||||
|                 requestDir = requestDir[2:] | ||||
|             requestDir  = normalizePath(requestDir) | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user