0x00 前言
今天学习了一些 sqlmap 对数据库文件进行操作的相关参数,并做此总结。
- 本次实验环境是 sqli-labs,经典的练习注入测试平台,相关的实验台的搭建的方法也是网上随处可见的。
- 学习所用系统环境为:kali Linux,自带了许多安全工具的 Linux 系统。
0x01 查看当前数据库管理用户及相关权限
- 相关参数:
--privileges
:获取当前数据库管理用户的所有权限。--is-dba
:判断当前用户是否为数据库系统管理员用户。
sqlmap -u "http://127.0.0.1/Less-31/?id=1" --is-dba --privileges
- 可以确定当前用户为数据库系统管理员用户,返回的结果为 true,第二张图是列出的用户的所有权限,由于内容过多,所以值截取了部分。
0x02 从服务器端读取文件到本地
- 相关参数:
--file-read
:从服务器端读取文件并保存到本地。
sqlmap -u "http://127.0.0.1/Less-31/?id=1" --file-read "/etc/passwd"
- 可以看到
/etc/passwd
文件读取成功,并且路径已经给出,访问路径后,得到结果。
0x03 将本地文件传输到服务器上
- 相关参数:
--file-write
:指定本地的文件。--file-dest
:指定上传到服务器的路径。
sqlmap -u "http://127.0.0.1/Less-31/?id=1" --file-write "/home/test.txt" --file-dest "/tmp/test.txt"
- 首先先看一下为上传前的目标文件和目标路径(进入容器查看目标路径):
- 随后执行相关命令,并再次查看(可以看到命令执行完后,文件写入成功):
- 此时的目标路径下的内容(文件上传成功):
0x04 Sqlmap 获取可执行 shell
- 相关参数:
--os-shell[-cmd]
:当前用户有写权限(root用户最好)Sqlmap可以利用SQL注入执行任意的操作系统命令。- 相关限制:(1)需要网站管理用户要有相关权限(写权限);(2)需要网站路径与 sqlmap 提供的默认选项相匹配;(3)需要关闭网站PHP主动转义功能(magic_quotes_gpc)。
sqlmap -u "http://127.0.0.1/Less-31/?id=1" --os-shell
- 可以看到成功的获取到可执行 shell,并查看了当前正在运行的进程。
- 需要再次提醒通过 sqlmap 获取可执行 shell 的条件:
- (1)需要网站管理用户要有相关权限(写权限);
- (2)需要网站路径与 sqlmap 提供的默认选项相匹配;
- (3)需要关闭网站PHP主动转义功能(magic_quotes_gpc)
- 通过下面的图可以看出 sqlmap 会利用自己提供的模板路径去匹配网站的路径然后尝试注入,随后在通过文件上传漏洞获取可执行 shell。
- 其实第一次执行时并未成功,后来发现是由于容器中的 /Less-31 文件夹没有写权限,随后修改了文件夹权限后,可执行 shell 才获取成功了
- 修改权限的命令:
chmod 777 /var/www/html/Less-31
777 表示对文件管理者、管理者所属组、其他用户放开所有权限。Linux 文件权限的数字表示法可以参考 Linux 文件和文件夹权限操作
本人目前还在学习中,如果觉得有用可以点个赞鼓励鼓励,如果发现本文有错或者其他问题,评论区不要吝啬,随便吐槽。
版权声明:本文为e_mmm0629原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。