Neurohazard
暮雲煙月,皓首窮經;森羅萬象,如是我聞。

在 mysql-cli 中执行 bash 命令

wpadmin~September 6, 2018 /System Management

在 mysql-cli 中执行 bash 命令 | execute bash command in mysql cli

实现

mysql> \! ls
Desktop  develop  Documents  Downloads  Music  Pictures  Public  show_date.sh  Templates  Videos
mysql> \! id
uid=1000(team) gid=1000(team) groups=1000(team),10(wheel)
mysql> \! ./show_date.sh

注意 这里的 shell 是 mysql 客户端 所在主机的 shell。
就算你用 mysql 客户端连接到了远程数据库服务器,这个 shell 还是本地的 shell。

补充

类似的机制在 其他应用程序上也有, 比如 vim, ftp, 低版本的 Nmap (V3.81).

# Nmap
nmap --interactive
nmap> !sh

# Vim
:!bash

# ftp
ftp>!bash

关于提权的补充

此外,需要注意的是 Nmap 低版本中, 可能配置了文件的 SUID 特殊权限。
当一个设置了 SUID 位的可执行文件被执行时,该文件将以 文件所有者 的身份运行,也就是说无论谁来执行这个文件,他都有文件所有者的特权。当文件所有者为 root 时,就会由提权(privilege escalation)的效果。

nmap --interactive # 一定条件下可提权

Leave a Reply

Your email address will not be published. Required fields are marked *