Quote:
Originally Posted by Mi4uric3
Schlechter Code macht es angreifbarer. Und keiner will hier seinen unsicheren Metin2-Server noch unsicherer machen..
|
Nur einmal Code Ausschnitte:
PHP Code:
nickname_client = player.GetName()
server_client = str(net.GetServerInfo().split(',')[0])
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
...
sock.send(nickname_client + "#" + nachricht + "#" + server_client)
...
Server = nachricht.split("#")[2]
Message = nachricht.split("#")[1]
User = nachricht.split("#")[0]
...
Rechte = Rechtepruefung(Server, User, Befehl)
Rechte = DoQuery("SELECT allowed FROM globalplayer WHERE user='"+str(User)+"' and server='"+str(Server)+"';", 2)
-->
if (Rechte == "ALLOWED"):
Text = ExecuteBefehl(Message, Befehl)
----->
Zeiger.execute(Query)
Du fragst hier nur den player.GetName() ab.
Falls jemand extern die Verbindung aufbaut und einfach den Admin Namen angibt kann er beliebige Queries ausführen, die er mitliefert.
Coding Style würde ich eventuell auch empfehlen, immerhin gibt es extra auf der offiziellen Python Dokumentation x Hinweise, diesen zu nutzen:
Edit:
Was ist überhaupt der Vorteil gegenüber dem normalen Chat, welcher nicht exploitbar ist?
@Raicon:
Wenn dir diese Lücke bereits bekannt war(was ich aufgrund deiner Formulierung stark vermute), wäre es denke ich für andere User hilfreich eben diese Lücke auch zu erwähnen und nicht zu verschweigen bzw. auszunutzen.
MfG DaRealFreak