域名泛解析清洗
背景
最近从白盒运营转了黑盒的运营,处理域名时发现很多无效的域名,大概分析了下应该是泛解析没清洗干净,之前的同学只清洗了CNAME的泛解析记录,没清洗A的泛解析记录,于是我就大概看了下思路,再来清洗一下。
清洗思路
我是这么做的,精确度有待验证,但是感觉应该大差不差,差太多的话当我没说,CNAME和A的泛解析判定思路差不多。
- 取子域名通过nslookup进行DNS解析,拿到对应的主域名、A/CNAME记录。
- 请求子域名的内容,分别发起http和https请求拿到响应码和响应长度。
- 以(主域名,A/CNAME记录,响应码,响应长度)为唯一key,记录出现次数。
- 取几次基本不可能存在的域名,比如fakedomain = md5(randint()).xxx.com
- 如果步骤3中的出现次数大于阈值(比如为10)且步骤4的解析结果同样命中步骤3的key,则认为所有满足步骤3中key的特征的所有子域名均为泛解析。
实现代码
单线程(太慢)
1 | package main |
本文作者:
yd0ng
本文链接: https://yd0ng.github.io/2024/04/10/%E6%B3%9B%E8%A7%A3%E6%9E%90%E5%9F%9F%E5%90%8D%E6%B8%85%E6%B4%97/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
本文链接: https://yd0ng.github.io/2024/04/10/%E6%B3%9B%E8%A7%A3%E6%9E%90%E5%9F%9F%E5%90%8D%E6%B8%85%E6%B4%97/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!