url采集器

0x01 前言

  • URl采集 批量刷洞

0x02 ZoomEyeAPI脚本编写

  • ZoomEye是一款针对网络空间的搜索引擎
  • 收录了互联网空间中的设备、网站及其使用的服务或组件等信息。
    ZoomEye 拥有两大探测引擎:Xmap 和 Wmap
    分别针对网络空间中的设备及网站,
    通过 24 小时不间断的探测、识别,标识出互联网设备及网站所使用的服务及组件。
  • 研究人员可以通过 ZoomEye 方便的了解组件的普及率及漏洞的危害范围等信息。
  • 虽然被称为 “黑客友好” 的搜索引擎,
  • 但 ZoomEye 并不会主动对网络设备、网站发起攻击,收录的数据也仅用于安全研究。
  • ZoomEye更像是互联网空间的一张航海图。
  • Python爬虫——爬取 url 采集器_爬虫

  • API 文档

Python爬虫——爬取 url 采集器_爬虫_02

先登录,然后获取access_token

Python爬虫——爬取 url 采集器_编程_03


Python爬虫——爬取 url 采集器_采集器_04


Python爬虫——爬取 url 采集器_采集器_05


Python爬虫——爬取 url 采集器_编程_06

user = raw_input('[-] PLEASE INPUT YOUR USERNAME:')
passwd = raw_input('[-] PLEASE INPUT YOUR PASSWORD:')
def Login():
data_info = {'username' : user,'password' : passwd}
data_encoded = json.dumps(data_info)
respond = requests.post(url = 'https://api.zoomeye.org/user/login',data = data_encoded)
try:
r_decoded = json.loads(respond.text)
access_token = r_decoded['access_token']
except KeyError:
return '[-] INFO : USERNAME OR PASSWORD IS WRONG, PLEASE TRY AGAIN'
return access_token
if __name__ == '__main__':
print Login()

Python爬虫——爬取 url 采集器_爬虫_07

def search():
headers = {'Authorization': 'JWT ' + Login()}
r = requests.get(url = 'https://api.zoomeye.org/host/search?query=tomcat&page=1',
headers = headers)
response = json.loads(r.text)
print(response)
if __name__ == '__main__':
search()

Python爬虫——爬取 url 采集器_pyhton_08


JSON数据,

我们可以取出IP部分…

print(response)
for x in response['matches']:
print(x['ip'])

Python爬虫——爬取 url 采集器_采集器_09


HOST的单页面采集

接下来,就是用FOR循环…获取多页的IP

#-*- coding: UTF-8 -*-
import requests
import json

from click._compat import raw_input


def Login():
data_info = {'username' : user,'password' : passwd}
data_encoded = json.dumps(data_info)
respond = requests.post(url = 'https://api.zoomeye.org/user/login',data = data_encoded)
try:
r_decoded = json.loads(respond.text)
access_token = r_decoded['access_token']
except KeyError:
return '[-] INFO : USERNAME OR PASSWORD IS WRONG, PLEASE TRY AGAIN'
return access_token



def search():
headers = {'Authorization': 'JWT ' + Login()}
for i in range(1, int(PAGECOUNT)):
r = requests.get(url='https://api.zoomeye.org/host/search?query=tomcat&page=' + str(i),
headers=headers)
response = json.loads(r.text)
print(response)
for x in response['matches']:
print(x['ip'])



if __name__ == '__main__':
user = raw_input('[-] PLEASE INPUT YOUR USERNAME:')
passwd = raw_input('[-] PLEASE INPUT YOUR PASSWORD:')
PAGECOUNT = raw_input('[-] PLEASE INPUT YOUR SEARCH_PAGE_COUNT(eg:10):')
search()

这样就取出了你想要的页码的数据,然后就是完善+美观代码了…

#-*- coding: UTF-8 -*-
import requests
import json

from click._compat import raw_input


def Login(user,passwd):
data_info = {'username' : user,'password' : passwd}
data_encoded = json.dumps(data_info)
respond = requests.post(url = 'https://api.zoomeye.org/user/login',data = data_encoded)
try:
r_decoded = json.loads(respond.text)
access_token = r_decoded['access_token']
except KeyError:
return '[-] INFO : USERNAME OR PASSWORD IS WRONG, PLEASE TRY AGAIN'
return access_token



def search(queryType,queryStr,PAGECOUNT,user,passwd):
headers = {'Authorization': 'JWT ' + Login(user,passwd)}
for i in range(1, int(PAGECOUNT)):
r = requests.get(url='https://api.zoomeye.org/'+ queryType +'/search?query='+queryStr+'&page='+ str(i),
headers=headers)
response = json.loads(r.text)
try:
if queryType == "host":
for x in response['matches']:
print(x['ip'])
if queryType == "web":
for x in response['matches']:
print(x['ip'][0])
except KeyError:
print("[ERROR] No hosts found")





def main():
print (" _____ _____ ____ " )
print ("|__ /___ ___ _ __ ___ | ____| _ ___/ ___| ___ __ _ _ __" )
print (" / // _ \ / _ \| '_ ` _ \| _|| | | |/ _ \___ \ / __/ _` | '_ \ ")
print (" / /| (_) | (_) | | | | | | |__| |_| | __/___) | (_| (_| | | | |")
print ("/____\___/ \___/|_| |_| |_|_____\__, |\___|____/ \___\__,_|_| |_|")
print (" |___/ ")
user = raw_input('[-] PLEASE INPUT YOUR USERNAME:')
passwd = raw_input('[-] PLEASE INPUT YOUR PASSWORD:')
PAGECOUNT = raw_input('[-] PLEASE INPUT YOUR SEARCH_PAGE_COUNT(eg:10):')
queryType = raw_input('[-] PLEASE INPUT YOUR SEARCH_TYPE(eg:web/host):')
queryStr = raw_input('[-] PLEASE INPUT YOUR KEYWORD(eg:tomcat):')
Login(user,passwd)
search(queryType,queryStr,PAGECOUNT,user,passwd)
if __name__ == '__main__':
main()

Python爬虫——爬取 url 采集器_编程_10


Python爬虫——爬取 url 采集器_python_11

0x03 ShoDanAPI脚本编写

Python爬虫——爬取 url 采集器_python_12

Shodan是互联网上最可怕的搜索引擎。
CNNMoney的一篇文章写道,
虽然目前人们都认为谷歌是最强劲的搜索引擎,
但Shodan才是互联网上最可怕的搜索引擎。
与谷歌不同的是,Shodan不是在网上搜索网址,
而是直接进入互联网的背后通道。
Shodan可以说是一款“黑暗”谷歌,
一刻不停的在寻找着所有和互联网关联的服务器、摄像头、打印机、路由器等等。
每个月Shodan都会在大约5亿个服务器上日夜不停地搜集信息。
Shodan所搜集到的信息是极其惊人的。
凡是链接到互联网的红绿灯、安全摄像头、家庭自动化设备以及加热系统等等都会被轻易的搜索到。
Shodan的使用者曾发现过一个水上公园的控制系统,一个加油站,甚至一个酒店的葡萄酒冷却器。

而网站的研究者也曾使用Shodan定位到了核电站的指挥和控制系统及一个粒子回旋加速器。

Shodan真正值得注意的能力就是能找到几乎所有和互联网相关联的东西。
而Shodan真正的可怕之处就是这些设备几乎都没有安装安全防御措施,其可以随意进入。

0x04 简易BaiduURL采集脚本编写

0x05 【彩蛋篇】论坛自动签到脚本

Python爬虫——爬取 url 采集器_编程_13