Line|信息收集组合拳之从废弃接口中寻找漏洞

Line|信息收集组合拳之从废弃接口中寻找漏洞

文章图片

Line|信息收集组合拳之从废弃接口中寻找漏洞

文章图片

Line|信息收集组合拳之从废弃接口中寻找漏洞

文章图片

Line|信息收集组合拳之从废弃接口中寻找漏洞

文章图片

Line|信息收集组合拳之从废弃接口中寻找漏洞

文章图片

Line|信息收集组合拳之从废弃接口中寻找漏洞

使用OneForAll工具通过域名收集网址和ipOneForAll是一款功能强大的子域收集工具 , 工具地址:GitHub - shmilylty/OneForAll
常用命令:python oneforall.py --targets targets.txt run
targets.txt中放入需要扫描的域名 , 运行后会在results文件夹下生成扫描结果

在运行结果中我们可以看到有url、子域名、ip

其中运行结果中ip是一行多个、还有重复的 , 我们需要提取ip转换成每行一个ip且没有重复的txt文本中 , 方便其他工具扫描
脚本:删除重复ip
#!/usr/bin/env python# conding:utf-8##把同一行的ip换行然后写进result.txt的文件里with open('ip.txt''r'encoding='utf-8') as readlist:for dirs in readlist.readlines():with open('result.txt''a'encoding='utf-8') as writelist:b = dirs.replace(\"\" '\\\')writelist.write(b)#去除重复ip , 然后把结果写进only.txt文件里with open('result.txt''r'encoding='utf-8') as readlist:lines\\_seen = set()for line in readlist.readlines():if line not in lines\\_seen:lines_seen.add(line)with open('only.txt''a'encoding='utf-8') as writelist:writelist.write(line)提取成这样单行一个ip且不重复的文本 , 我们就可以放到goby、fscan、小米范等工具中扫描


fscan工具扫描ip工具地址:GitHub - shadow1ng/fscan: 一款内网综合扫描工具 , 方便一键自动化、全方位漏扫扫描 。
这款工具主要是用于内网扫描 , 发现资产以及进行漏洞扫描与弱口令爆破 , 运行速度很快 , 用于外网探测发现一些web资产也是不错的选择
常用命令:全端口扫描 fscan64.exe -hf ip.txt -p 1-65535 -o result.txt
ip.txt中放入需要扫描的ip地址 , result.txt为运行结果


小米范工具地址:我的小工具 - 标签 - 范世强 - 博客园
(找不到这个版本的地址了 , 就贴个作者的博客地址吧)

JSFinder扫描js及url工具地址:GitHub - Threezh1/JSFinder: JSFinder is a tool for quickly extracting URLs and subdomains from JS files on a website.
常用命令:python JSFinder.py -f targets.txt -d -ou JSurl.txt -os JSdomain.txt
targets.txt中放入需要扫描的url , 运行结束后生会成两个txt文本 ,JSurl.txt为URL , JSdomain.txt为子域名

上面这些工具的扫描结果中含有很多的url我们需要效率高一些的话我们可以优先从参数下手 , 于是需要筛选含有参数的url
脚本:提取含有参数的url
#!/usr/bin/env python# conding:utf-8#字符串中有“?”且不在字符串的结尾的就写入result.txt中with open('JSurl.txt''r'encoding='utf-8') as readlist:for dirs in readlist.readlines():# re\\_result=re.search(r\"'?'\"dirs)# re\\_result=str(re\\_result)if \"?\" in dirs :#判断字符中是否有“?” , 如果有则返回该字符串的位置 , 是从坐标0开始算的re = dirs.find(\"?\") # a=len(dirs)-2是为了判断“?”是不是在最后一个字符 , len()与find()不同是从一开始算字符串的长度的 , 在加上每行字符中\\\换行符也占了一个字符 , 所以要减2a=len(dirs)-2#判断字符串中“?”是不是在字符的最后if re < a :with open('result.txt''a'encoding='utf-8') as writelist:writelist.write(dirs)#去除result.txt中的重复字符串 , 然后把结果写进only.txt文件里with open('result.txt''r'encoding='utf-8') as readlist:lines\\_seen = set()for line in readlist.readlines():if line not in lines\\_seen:lines\\_seen.add(line)with open('only.txt''a'encoding='utf-8') as writelist:writelist.write(line)