众所周知,渗透测试的灵魂就是信息收集,而子域名子站作为主站的“边角料”,安全程度一般来说相对于主站是较弱一些的,因此我们可以选择从子域名入手。所以说渗透过程中尽可能多的找到子域名,就多一分找到漏洞的可能。
读取字典读取字典中的子域名,然后拼接成一个完整域名。
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 requestspath = './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)
总结 以上是内存溢出为你收集整理的Python 子域名爆破全部内容,希望文章能够帮你解决Python 子域名爆破所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)