标签:subdomin 爆破 Python url 域名 result urls print
目录
前言
众所周知,渗透测试的灵魂就是信息收集,而子域名子站作为主站的“边角料”,安全程度一般来说相对于主站是较弱一些的,因此我们可以选择从子域名入手。所以说渗透过程中尽可能多的找到子域名,就多一分找到漏洞的可能。
读取字典
读取字典中的子域名,然后拼接成一个完整域名。
with open(path, mode='r+') as f1: #path为字典文件路径
for line in f1.readlines():
subdomin = line.replace('\n', "") #去除字典中的换行字符
subdomin = subdomin + '.' + domain #拼接成完整域名
urls.append(subdomin)
请求域名
请求域名,根据返回值判断域名是否存在
for url in urls:
try:
response = requests.get(url='http://'+url,headers=head,timeout=3)
if response.status_code in [200,302,403]:
result.append(url)
with open(domain+'.txt',mode='a+',encoding='utf-8') as f2:
f2.write(url+'\n')
print('成功找到域名%s' %url)
except:
print('没有域名%s'%url)
这段代码为核心代码,首先for 语句遍历urls列表中的所有域名,然后将请求每个域名,注意请求的时候一定是http://域名 所以本段代码中直接在Http请求中拼接的url。
try… except…语句作用是抛出异常,有些域名不存在则抛出异常,如果没有这个语句,遇到不存在的域名时候会报错,程序直接停止。
完整版代码
import requests
path = './dic.txt' #字典路径
domain = 'qq.com' #要爆破的域名
head = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0'
}
urls=[]
result = []
with open(path, mode='r+') as f1:
for line in f1.readlines():
subdomin = line.replace('\n', "")
subdomin = subdomin + '.' + domain
urls.append(subdomin)
for url in urls:
try:
response = requests.get(url='http://'+url,headers=head,timeout=3)
if response.status_code in [200,302,403]:
result.append(url)
with open(domain+'.txt',mode='a+',encoding='utf-8') as f2:
f2.write(url+'\n')
print('成功找到域名%s' %url)
except:
print('没有域名%s'%url)
if len(result) > 0:
print('\n')
print('====================== 子域名爆破结果 ==========================')
print('\n')
print("共找到域名%d条" %len(result))
print(result)
标签:subdomin,爆破,Python,url,域名,result,urls,print 来源: https://blog.csdn.net/weixin_43047908/article/details/116291211
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。