在 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