SQL注入读写文件
2022/3/2 19:45:41
本文主要是介绍SQL注入读写文件,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1. 读写文件的基本条件和使用
1.1 SQL注入文件读写
SQL注入有直接SQL注入,也有文件读写时的注入,后者的主要目的在于获取webshell或盗取重要文件。
1.2 文件读写的基本条件
- 当前用户权限对该文件可读。
- 文件在该服务器上。
- 路径完整。
- 文件大小小于max_sllowed_packet。
- 当前数据库用户有FILE权限,File_priv为yes
- secure_file_priv的值为空,如果值为某目录,那么就只能对该目录的文件进行操作。
在MySQL5.5.53中,File_priv默认为yes
My.ini配置文件中本没有max_allowed_packet这一项,可以通过添加来修改可读写文件大小,然后重启MySQL。
My.ini配置文件中也没有secure_file_priv这一项,默认为不允许读写磁盘中任何未知的文件,也就是说默认值为NULL。
可以通过在my.ini中添加secure_file_priv这一项来许可文件读写。
显示结果的意思是︰本地登录的root账户拥有所有数据库中所有表的所有权限。
如何给用户分配权限︰
grant权限on数据库.数据表to ‘用户’@‘主机名’;例︰给从所有主机登陆的any账户分配所有的权限grant all on . to ‘any’@’%’;
load_file,后面的路径可以是单引号、Ox、char转换的字符。这而记得路径中的斜杠是/而不是\。
outfile后面不能接Ox开头或者char转换以后的路径,只能是单引号路径。这个问题在php注入中更加麻烦,因为会自动将单引号转义成’,那么基本没的玩了。
outfile 一句话(经典): select ‘<?phpeval($_POST[cmd])?>’ into outfile’D:/PHPnow-1.5.4/htdocs/index2.php’ ;
关于/和\,读文件时只能用/,写文件时两者都可以。但是写文件时,如果用了\,MySQL会自动去除一个l,因此需要写成\才行。
into dumpfile它只能导出一行数据,并不常用,用于导出一条数据,通常写入第二条的时候出错,但第二条内容已被写入文件。
outfile函数可以导出多行,而dumpfile只能导出一行数据。
outfile函数在将数据写到文件里时有特殊的格式转换,而dumpfile则保持原数据格式。
dumpfile适用于二进制文件,它会将目标文件吸入同一行内; outfile则更适用于文本文件。
2. SQLserver读写文件简单介绍
2.1 读文件
2.2 写文件
文章参考哔哩哔哩奇安信网络安全培训视频
这篇关于SQL注入读写文件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-19永别了,微服务架构!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?