SQL注入GetShell的方法(1)
短信预约 -IT技能 免费直播动态提醒
目录
一、注入条件
使用sql注入进行文件上传功能获取getshell,它有以下三个条件
最高用户权限 root
网站的根路径
开启secure_file_priv功能,要具有读写权限
//查看读写权限 show variables like '%secure%'
(1)secure_file_priv= 代表对文件读写没有限制
(2)secure_file_priv=NULL 代表不能进行文件读写
(3)secure_file_priv=d :/phpstudy /mysql/data 代表只能对该路径下文件进行读写
二、注入相关函数和语句
1、load_file()
load_file(file_name) :读取文件并返回该文件的内容作为一个字符串 使用条件: 1、必须有权限读取并且文件必须完全可读 and (select count(*) from mysql.user)>0/* 如果结果返回正常,说明具有读写权限。 and (select count(*) from mysql.user)>0/* 返回错误,应该是管理员给数据库帐户降权 2、欲读取文件必须在服务器上 3、必须指定文件完整的路径Mysql 注入4、欲读取文件必须小于 max_allowed_packet 如果该文件不存在,或因为上面的任一原因而不能被读出,函数返回空。比较难满足的就是权限,在 windows 下,如果 NTFS 设置得当,是不能读取相关的文件的,当遇到只有administrators 才能访问的文件,users 就别想 load_file 出来。
2、load data infile
LOAD DATA INFILE 'file_path'INTO TABLE table_name[OPTIONS] 用于高速地从一个文本文件中读取行,并装入一个表中。文件名称必须为一个文字字符串 其中,file_path为要导入的文件路径,table_name为目标表的名称,OPTIONS为可选项,用于指定一些导入参数,如字段分隔符、行分隔符等。
3、into outfile
INTO OUTFILE 'file_name' 用于将查询结果导出到指定的文件中,其中的'file_name'是导出文件的路径和文件名 我们一般有两种利用形式: 第一种直接将 select 内容导入到文件中: Select version() into outfile “c:\\phpnow\\htdocs\\test.php” 此处将 version()替换成一句话, 也即 Select into outfile “c:\\phpnow\\htdocs\\test.php” 直接连接一句话就可以了,其实在 select 内容中不仅仅是可以上传一句话的,也可以上传很多的内容。 第二种修改文件结尾: Select version() Into outfile “c:\\phpnow\\htdocs\\test.php” LINES TERMINATED BY 0x16 进制文件 解释:通常是用‘\r\n’结尾,此处我们修改为自己想要的任何文件。同时可以用 FIELDSTERMINATED BY16 进制可以为一句话或者其他任何的代码,可自行构造。 在 sqlmap 中 os-shell 采取的就是这样的
来源地址:https://blog.csdn.net/qq_45014174/article/details/130530661
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341