Как пройти через каталог, чтобы добраться до root в Python? Я написал некоторый код, используя BeautifulSoup
, но там написано «модуль не найден». Итак, у меня есть это:
#
# There is a directory traversal vulnerability in the
# following page http://127.0.0.1:8082/humantechconfig?file=human.conf
# Write a script which will attempt various levels of directory
# traversal to find the right amount that will give access
# to the root directory. Inside will be a human.conf with the flag.
#
# Note: The script can timeout if this occurs try narrowing
# down your search
import urllib.request
import os
req = urllib.request.urlopen("http://127.0.0.1:8082/humantechconfig?file=human.conf")
dirName = "/tmp"
def getListOfFiles(dirName):
listOfFile = os.listdir(dirName)
allFiles = list()
for entry in listOfFile:
# Create full path
fullPath = os.path.join(dirName, entry)
if os.path.isdir(fullPath):
allFiles = allFiles + getListOfFiles(fullPath)
else:
allFiles.append(fullPath)
return allFiles
listOfFiles = getListOfFiles(dirName)
print(listOfFiles)
for file in listOfFiles:
if file.endswith(".conf"):
f = open(file, "r")
print(f.read())
Это выводит:
/tmp/level-0/level-1/level-2/human.conf
User : Human 66
Flag: Not-Set (Must be Root Human)
Однако. Если я изменю URL-адрес на «http://127.0.0.1: 8082 / humantechconfig? File = .. / .. / .. / human.conf », он выдаст мне вывод:
User : Human 66
Flag: Not-Set (Must be Root Human)
User : Root Human
Flag: Well done the flag is: {}
Уровень обхода каталога, на котором он находится, колеблется в широких пределах, от /tmp/level-2
до /tmp/level-15
; если это тот, который я написал, то он говорит, что я «Root Человек». Но это не даст мне флаг, несмотря на то, что я внезапно стал «Root Человеком». Что-то не так с тем, как я пересекаю каталог?
Спасибо!