Ausgenutzt Python-Funktionen
Diese Frage ist ähnlich Verwertbaren PHP-Funktionen.
Befleckten Daten der Nutzer, oder genauer gesagt einen Angreifer. Wenn eine tainted variable erreicht eine sink-Funktion, dann haben Sie eine Schwachstelle. Zum Beispiel eine Funktion, die ausgeführt wird eine sql-Abfrage, ist ein Waschbecken, und GET/POST-Variablen sind Quellen der Makel.
Was ist mit der Spüle-Funktionen in Python? Ich bin auf der Suche nach Funktionen, die Einführung einer Lücke oder software Schwäche. Ich interessiere mich besonders für die Remote-Code-Execution-Schwachstellen. Sind es ganze Klassen/Module enthalten gefährliche funktional? Haben Sie Beispiele von interessanten Python-Schwachstellen?
- Wie über die Herstellung dieses eine community-wiki?
- Marnach, wie würde, die machen das besser? Ich habe das vorher nicht getan.
- Es ist (wäre?) sehr schwer zu sichern Python in großem Maßstab; die Sprache ist einfach zu flexibel dafür. Wenn Sie versuchen, erstellen Sie eine sichere Python-Umgebung, Sie haben eine sehr große Aufgabe vor Euch.
- eigentlich ist meine Motivation ganz im Gegenteil, ich bin auditing-python-Anwendungen nach Schwachstellen. Ich werde die Probleme berichtet der Verkäufer, natürlich.
- Würde es den Menschen ermöglichen, gemeinsam zu kompilieren Sie die Liste. Die akzeptierte Antwort von der PHP-Beitrag, den Sie verlinkt ist auch eine community-wiki-Beitrag.
- Marnach Ihre mehr als willkommen zu meinen Beitrag Bearbeiten für diesen thread. Ich hatte etwas Hilfe mit der PHP-Liste und das funktionierte.
Du musst angemeldet sein, um einen Kommentar abzugeben.
rechts von der Gurke Dokumentation:
eval
undexec
sind die Klassiker. Allerdingsopen
undfile
missbraucht werden kann zu:Dann gibt es die
os
,sys
,subprocess
, unddircache
Module. So ziemlich alles, was berührt, das Dateisystem, oder kann verwendet werden, um sich Daten in ausführbaren code (wieos.system
) wird auf die Liste.S. Lott wies darauf hin, in den Kommentaren, das schreiben auf das Dateisystem und die Ausführung beliebigen externen Programmen, die nicht Python-spezifisch. Aber Sie sind es Wert, die Sicherheit der Revisionsstelle berücksichtigt. Die meisten dieser Funktionen können sicher verwendet werden, ohne zu viel Sorge um die Sicherheit.
eval
undexec
, auf der anderen Seite, sind große rote Fahnen. Mit Ihnen, sicher, erfordert äußerste Sorgfalt./var/www/index.html
statt. Gute Sicherheit ist geschichtet. Wir können nicht erwarten, dass alle unsere Nutzer-Administratoren, um sicherzustellen, dass alles läuft mit der optimalen Berechtigungen die ganze Zeit, also es lohnt sich, ein wenig extra Aufmerksamkeit und suchen für diese Art der Sache.eval
undexec
Python Angriffe, verlassen Sie sich nicht auf die Sicherheit. Der andere nutzen ist unterschiedlich in der Art-es ist irrelevant für Python, da alle Sprachen, die es haben. Es ist Teil von OS privilege management. Wenn du gehst, um Liste, dann müssen Sie beginnen mit einer Auflistung aller OS-exploits, die haben nichts zu tun mit Python. Ich denke, man sollte trennen Sie diese deutlich mehr Sie Ihre Antwort als eine andere Art von exploit, der nur geschieht, um die Verwendung von Python.Ich eher auf das paranoid, wenn man für diese Art der Sache. Um so mehr, weil ich dazu neigen, eine Menge von metaprogramming.
open
,tarfile
,zipfile
, ...)urllib2
,socket
, ...)pickle
,shelve
, ...)subprocess
,os.fork
,os.kill
, ...)getattr
setattr
delattr
eval
exec
execfile
__import__
Und wahrscheinlich andere, die ich bin, zu vergessen. Ich bin auch vorsichtig bei der Eingabe der Nutzer werde durch Funktionen, wo ich bin sys ändern.path, sys.Module, usw.
Den Teilprozess Modul enthält böse funktionell die veraltet diese Weise der Ausführung der Befehle/Prozesse:
Gibt es auch exec die Ausführung von python-code und eval die "Bewertung" eines Ausdrucks und kann verwendet werden, um Variablen Bearbeiten.
Den
input
- Funktion, die wertet den angegebenen string und gibt das Ergebnis zurück, hat einige Einschränkungen, aber immer noch kann ausgenutzt werden.__import__('os').system('ls')
Fütterung in den oben genannten string in stdin, Ergebnisse in der Ausführung derls
Befehl in der shell.