环境:sqli-lab靶场+phpstudy
Sqlmap getshell的条件
1.网站必须是root权限
2.知道网站的绝对路径
3.PHP关闭魔术引号,php主动转义功能关闭
4.secure_file_priv=值为空
演示:
1.寻找绝对路径
命令:
sqlmap.py -u “http://127.0.0.1:81/sqli-labs-master/sqli-labs-master/Less-1/?id=1” --sql-shell
select @@datadir
通过数据库位置,我们能简单判断
1.这是一个phpstudy搭建的站点
2.可以尝试phpstudy默认目录
3.尝试构造路径:E:\phpStudy\PHPTutorial\WWW\sqli-labs-master
常见找绝对路径方法:
1.网页报错信息
2.Phpinfo,探针
3.数据库查询,暴力破解
2.测试方法功能是否关闭
1.特殊字符测试是否转义成反斜杠
2.探针,phpinfo等
可以看到该功能已经关闭
3.查看secure_file_priv= 的值是否为空
secure_file_priv参数是用来限制LOAD DATA,SELECT…OUTFILE,and LOAD_FILE()传到哪个指定目录的
可以看到这里为空,如果使用这个命令查询失败或查询结果为空,说明MYSQL默认没有secure_file_priv参数,因此在mysql-ini进行添加配置
添加语句secure_file_priv= 即可
然后重启即可
4.进行getshell
命令:
sqlmap.py -u “http://127.0.0.1:81/sqli-labs-master/sqli-labs-master/Less-1/?id=1” --os-shell
打开该目录查看文件,可以看到是存在的,说明成功生成,然后我这里将它复制到了网站目录下
这里生成一个是文件上传脚本文件
接着利用文件上传脚本文件,上传一句话木马
访问该文件
通过菜刀进行连接
成功连接