背景
https://eyes.sh 是笔者维护的一个简单DNSLog服务,辅助漏扫和渗透测试,现存大约2000名用户(去重后)。
前阵子因为发现有丢日志现象,临时关停了服务。经过一些优化后,目前该服务已经恢复上线。
完成的优化
1. 性能优化,提升服务器响应速度,解决可能的丢日志问题
原先,作者错误地将查询IP归属地逻辑,串联到日志写入功能、以及DNS Server响应过程。这会造成DNS查询和HTTP响应迟缓,在用户少的时候可能没有问题。用户数一旦增加,性能问题开始感觉明显。
目前已经去掉IP查询逻辑,写入时不再立即查询,仅在前端展示时,查询IP归属地。
包括日志写入MySQL时,也已经不再串联。
2. 部署了SSL证书,同时支持HTTP/HTTPS访问
因为多数后台都启用了https,如果不提供https访问,浏览器会阻止对DNSLog服务的访问,产生错误 Mixed Content Warnings (HTTPS/SSL)
用户二级子域名支持https访问和记录日志,如:https://demo.eyes.sh
用户三级域名不能https访问,因为Let's Encrypt 不能无限签发SSL证书。如: https://test.demo.eyes.sh 因此,在需要https访问的场景下,不能使用更深的子域名
3. 提供简单接口用于测试存储XSS
在需要测试存储XSS的地方,可以输入类似如下脚本
/> <
以上,可以保证外部JS和回传Cookie的接口,都是有效的https链接
4. 提供简单IP聚合统计功能
增加了简单IP聚合统计,在界面上点击Count按钮,可以得到 IP触发的次数,分组查看和删除。
开始使用
用户直接使用笔者部署的服务,访问: https://eyes.sh/
用户自行部署DNSLog服务:https://github.com/lijiejie/eyes.sh