这篇文章将为大家详细讲解有关如何分析数据库系统命令执行,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在渗透中关于数据库的利用主要分为两种:
第一种是sql注入漏洞,配合网站的绝对路径可以直接getshell。
第二种数据库弱口令,如phpmyadmin弱口令,数据库连接弱口令。
在我最初的时候,对于数据库弱口令和sql注入的利用相同,都是在dba权限下,配合网站绝对路径写shell。因为并不是每次都能找到绝对路径,所以经常出现登录了数据库却拿不到shel免费云主机域名l的情况。sql server执行系统命令比较简单,直接使用xp_cmdshell组件
开启cmdshell组件。执行命令这也就是为什么sql server注入点在使用sqlmap进行os-shell时,直接返回命令行执行。mysql执行系统命令适用于直接连接数据库的情况下,理论上讲sqlmap的sql-shell也可行,但是在实际利用中对SQL注入点的类型,执行语句,语句长度都有很大的限制。
本次靶机ip:172.16.86.161 root/root
思路:采用udf提权方式,上传udf.dll文件。
首选需要确定mysql的版本号,以及安装目录。
udf.dll存放位置分为2种情况。
1、Mysql版本大于5.1
udf.dll文件必须放在MySQL安装目录的libplugin文件夹下。
2、Mysql版本小于5.1:
win 2000 的服务器,需要将 udf.dll 文件导到 C:Winntudf.dll 下。
win2003 服务器,要将 udf.dll 文件导出在 C:Windowsudf.dll 下。
靶机的mysql版本号为 5.5.62大于5.1因此要把udf.dll文件放在MySQL安装目录的libplugin文件夹下。
sqlmap中自带了udf.dll文件,放在data/udf中,文件经过异或编码无法直接使用,可以使用sqlmap/extra/cloak目录下的cloak.py文件进行解码。在准备好udf.dll文件后,下一步的目标是写入文件到指定的目录下,我实验了3种写入方法。使用notepad++打开udf文件。复制内容进行16进制编码。在数据库中执行:创建sys_eval成功获取system执行权限。建立表保存16进制内容。将my_udf的内容插入表udf_data中。将内容导出到文件。创建sys_eval,成功执行系统命令。用完之后删除sqlmap自带了udf功能。直接os-shell执行系统命令。1、mysql lib目录下的plugin文件夹在实战中可能不存在。需要自己手动创建,可以使用NTFS数据流创建,但成功率较低。2 、高版本的mysql会有一个secure-file-priv参数限制,需要更改数据库my.ini文件配置,并且重启数据库。关于如何分析数据库系统命令执行就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
相关推荐: 关于虚拟机与宿主机同网段主机互ping的一点疑问
宿主机win10(192.168.1.0/24)虚拟机win2008r2(192.168.159.0/24)使用NAT模式,宿主机和虚拟机能够互ping通,虚拟机能够ping通与宿主机同一网段的任何计算机,但与宿主机同网段的计算机却不能pin免费云主机域名g通…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。