40行代码打造自己的xxxeye -- wolf
来源:互联网 发布:c语言找出数组最多的数 编辑:程序博客网 时间:2024/05/02 00:35
用于检测无法直接回显或者特定情况下漏洞利用时需要用到的漏洞。
例如这几天爆出的ImageMagick,FFMpeg漏洞,之前的反序列化漏洞等各种类型的代码执行、SSRF等等,具体可查看http://zone.wooyun.org/search/eye
http://wooyun.org/searchbug.php 搜cloudeye
代码:import socket,thread,datetime
query_history = []
url_history = []
def web_server():
web = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
web.bind(('0.0.0.0',80))
web.listen(10)
while True:
try:
conn,addr = web.accept()
data = conn.recv(4096)
req_line = data.split("\r\n")[0]
path = req_line.split()[1]
route_list = path.split('/')
html = "NO"
if len(route_list) == 3:
if route_list[1] == 'add':
url_history.append(route_list[2])
elif route_list[1] == 'check':
if route_list[2] in url_history:
html = 'YES'
else:
query_str = route_list[1]
for query_raw in query_history:
if query_str in query_raw:html = "YES"
print datetime.datetime.now().strftime('%m-%d %H:%M:%S') + ' web query: ' + path
raw = "HTTP/1.0 200 OK\r\nContent-Type: application/json; charset=utf-8\r\nContent-Length: %d\r\nConnection: close\r\n\r\n%s" %(len(html),html)
conn.send(raw)
conn.close()
except:
pass
if __name__=="__main__":
dns = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
dns.bind(('0.0.0.0',53))
thread.start_new_thread(web_server,())
while True:
recv,addr = dns.recvfrom(1024)
query_history.append(recv)
print datetime.datetime.now().strftime('%m-%d %H:%M:%S') + ' Dns Query: ' + recv
运行sudo python dns_log.py(监听80与53端口需root权限)
无需安装任何外库,可直接运行,控制台即时输出请求内容供分析并提供web接口可用于脚本自动化验证
触发:
各种方式的dns请求均可(因dns的协议特性,验证的随机字符串不要包含.号)
例 nslookup wolf 66.66.66.66
各种方式的http请求均可
例 curl http://66.66.66.66/add/wolf
判断:
dns: http://66.66.66.66/wolf
http: http://66.66.66.66/check/wolf
返回YES即此数据存在,也就是存在漏洞触发了验证请求操作。
- 40行代码打造自己的xxxeye -- wolf
- 打造自己称手的代码
- iOS 开发工具 打造自己的代码
- 打造自己的smali代码库
- [打造自己的代码库]ConnectionUtil
- 零代码如何打造自己的实时监控预警系统
- 使用 CodeMirror 打造属于自己的在线代码编辑器
- 使用 CodeMirror 打造属于自己的在线代码编辑器
- 打造自己的spy++
- 打造自己的CButton
- 打造自己的CodeSnippet
- 打造自己的CCZ
- 打造自己的编译器
- 打造自己的checkinstall
- 打造自己的EventBus
- 打造自己的vim
- 打造自己的Archlinux
- 打造自己的 DockerImage
- 练习打字第六天!
- lamp 环境搭建(非源码编译安装)
- [leetcode] 306. Additive Number 解题报告
- Android studio 使用帮助文档速度过慢
- 对模式的十大误解
- 40行代码打造自己的xxxeye -- wolf
- JSP笔记之指令标识1
- 顺序表的各种操作
- 02 C#(int)中Convert、Parse、TryParse的区别
- Unity Input Touch fingerId
- NightWatchJS
- 签到 2016.6.26
- Python再接触
- redis log