目录 一、注入条件 二、注入相关函数和语句 三、联合写入 四、分隔符写入 五、日志写入 六、堆叠写入 七、--os-shell 一、注入条件 使用sql注入进行文件上传功能获取getshell,它有以下三个条件 最高用户权限 root
目录
使用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
--结束END--
本文标题: SQL注入GetShell的方法(1)
本文链接: https://lsjlt.com/news/389274.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0