用浏览器控制台抓取shodan、搜索引擎、zone-h的结果

摘要:
在很久以前自己会有爬取zone-h做目标测试的需求,但是总是有各种反爬限制。document.getElementsByTagName()返回带有指定标签名的对象集合。js截取指定字符前面或后面的内容functiongetCaption{varindex=obj.lastIndexOf("-");if{obj=obj.substring;}else{obj=obj.substring;}returnobj;}vardata='aaa-bbb'//截取符号前面部分getCaption//输出aaa//截取符号后面部分getCaption//输出bbb0x01提取zone-h结果functiongetIpByTag(){vartrVal=document.getElementsByTagName;varretStr="";vartmpStr="";for{tmpStr=trVal[i].getElementsByTagName[7].innerHTML.trim();varindex=tmpStr.indexOf('/');if{retStr=retStr+tmpStr.substring+"";}else{retStr=retStr+tmpStr+"";}console.log}returnretStr;}getIpByTag();0x02提取Shodan结果ipShadan//方法1:获取标签提取console.logfunctiongetIpByTag(){varip=document.getElementsByClassName;varstr="";for{varnode=ip[i].firstChild;str=str+node.innerHTML+"";}returnstr;}getIpByTag();//方法2:正则提取functiongetIpByTag(){vartag=document.getElementsByClassName[0];varre=newRegExp();varstr=tag.innerHTML;varre=/d+.d+.d+.d+/g;vararr=str.match;console.log;//数组去重arr.sort();for{//用当前的元素与他的前一个元素进行对比if{//如果相同的话,就删除掉第i个元素arr.splice(i,1);}else{i++;}}console.log;0x03抓取Google结果Googleconsole.logfunctiongetIpByTag(){varr=document.getElementsByClassName("r");varstr='';for{str=str+r[i].firstChild.href+'';}returnstr;}getIpByTag();0x04提取百度结果Baiduconsole.logfunctiongetIpByTag(){vart=document.getElementsByClassName("t");varstr='';for{str=str+'"'+t[i].getElementsByTagName('a')[0].href+'",';}str=str.substringstr=str+''returnstr;}getIpByTag();将百度加密后的url转成真正的地址:importrequestsurlList=["http://www.baidu.com/link?

0x00 前言

大部分内容来自参考连接的内容,只是一种爬取内容的思路。

在很久以前自己会有爬取zone-h做目标测试的需求,但是总是有各种反爬限制。而且个别网址还有前端自动生成内容的功能,使用JavaScript可以很方便的让我们得到自己想要得结果做数据整理。

  • 会用到DOM属性如下:
document.getElementsByClassName()	返回文档中所有指定类名的元素集合,作为 NodeList 对象。
document.getElementById()	返回对拥有指定 id 的第一个对象的引用。
document.getElementsByName()	返回带有指定名称的对象集合。
document.getElementsByTagName()	返回带有指定标签名的对象集合。
  • js截取指定字符前面或后面的内容
function getCaption(obj,state) {
    var index=obj.lastIndexOf("-");
    if(state==0){
        obj=obj.substring(0,index);
    }else {
        obj=obj.substring(index+1,obj.length);
    }
    return obj;
}
var data = 'aaa-bbb'
//截取符号前面部分
getCaption(data,0)  //输出aaa
//截取符号后面部分
getCaption(data,1)  //输出bbb

0x01 提取zone-h结果

function getIpByTag(){
    var trVal = document.getElementsByTagName("tr");
    var retStr="
";
	var tmpStr="";
    for(var i=1;i< trVal.length-4;i++)
    {
	  
	   tmpStr = trVal[i].getElementsByTagName('td')[7].innerHTML.trim();
	   var index = tmpStr.indexOf('/');
	   if(index>0)
	   {
	       retStr= retStr + tmpStr.substring(0,index) + "
";}
	   else
	   {
	       retStr= retStr + tmpStr+ "
"; 
	   }
	   
	   console.log(i,tmpStr)
    }
	return retStr;
}
getIpByTag();

用浏览器控制台抓取shodan、搜索引擎、zone-h的结果第1张

0x02 提取Shodan结果ip

Shadan
//方法1:获取标签提取
console.log(document.getElementsByClassName("ip")[0].firstChild.innerHTML)
function getIpByTag()
{
    var ip = document.getElementsByClassName("ip");
    var str = "
";
    
    for(var i=0; i < ip.length; i++)
    {
        var node = ip[i].firstChild;
        str = str + node.innerHTML + "
";
    }
    return str;
}
getIpByTag();


//方法2:正则提取
function getIpByTag(){
    var tag = document.getElementsByClassName("span9")[0];
    var re = new RegExp();
    var str = tag.innerHTML; 
    var re = /d+.d+.d+.d+/g;
    var arr = str.match(re);
    console.log(arr);
    //数组去重
    arr.sort();
    for(var i = 0; i < arr.length-1;) {
        //用当前的元素与他的前一个元素进行对比
        if(arr[i] == arr[i + 1]) {
        //如果相同的话,就删除掉第i个元素
        arr.splice(i, 1);
    }else{ i++;}
}
console.log(arr);

0x03 抓取Google结果

Google
console.log(document.getElementsByClassName("r")[0.].firstChild.href)
function getIpByTag()
{
    var r = document.getElementsByClassName("r");
    var str = '
';
    
    for(var i=0;i< r.length;i++)
    {
        str = str + r[i].firstChild.href + '
';
    }
    
    return str;
}
getIpByTag();

0x04 提取百度结果

Baidu
console.log(document.getElementsByClassName("t")[0].getElementsByTagName('a')[0].href)
function getIpByTag()
{
    var t = document.getElementsByClassName("t");
    var str = '
';
    
    for(var i=0;i< t.length;i++)
    {
        str = str + '"' + t[i].getElementsByTagName('a')[0].href + '",
';
    }
    str = str.substring(0,str.length-2)
    str = str + '
'
    return str;
}
getIpByTag();

将百度加密后的url转成真正的地址:

import requests
urlList = [
"http://www.baidu.com/link?url=M1SN1OPmF9xM43i4jwjeDVvn-uD-i7xOf1nDxZDdIh4iCQRPXnmJnpzEFaRpcLNbSzXJGnlGiRClt_kX_KjXo_",
"http://www.baidu.com/link?url=9J00kAi9Fu07zxr4q4v_WZ2b0lW6WM-eIuzzcRtKQSS8Hd2u7hqAyBYyDOm1JbAwGgrUAubK8cR3V2_7RFJ1j_",
"http://www.baidu.com/link?url=kJuAmhEDNtu9VT5tpF_Grdi5fv246Dyf6ESnWqyBrR9HZD8BniQXVqOEinUox_hn",
"http://www.baidu.com/link?url=9Zlb9C0SnpP01To84341TBe2Tr1888CY8vkv86ZJAB94GoDO0II9m19lJpAKmSlm",
"http://www.baidu.com/link?url=e-jNCpBOgKCFOAGakRSt7jsqeKM4Z7kAKxmzFXyizOybrMP3Ig5MVmIHd6cwgsug",
"http://www.baidu.com/link?url=mhPGHLye4mCUdZOKGZz-RY_d7vzNThy_ifVZ8qGpAkvEGYUspJKT5wvHX0LSvPVd",
"http://www.baidu.com/link?url=NOw1rL9Juxdl-_FYexMJq8n1I3vliWRPjMAVZT8YQ-S9nHOXn-EuI8YnIz6-8EXF",
"http://www.baidu.com/link?url=3iCH4yJeE6UA_Pura3WMiNcoLBOYKePK0teNAwELb3667oy-RXOSuanprur6GjUN",
"http://www.baidu.com/link?url=w_7v1e_uvw8YSQyZEA-SN1vnIIljpmknKaVLTtdZqxM8qLXi0C0LwLAUQJyrZYTY8aU4DjPnXtQeUQlP-zqzXK",
"http://www.baidu.com/link?url=DjXRm8KwbnSAOaPtt3NtR7XzwCnWizbgJDxeC9DPB0GBeSJIiYb2ObZHQ5mLsYjP"
]
for someurl in urlList:
    response = requests.get(someurl)
    if response.history:
        print(response.url)
    else:
        print("Request was not redirected")

参考

[1] 使用Chrome console提取页面数据
https://www.cnblogs.com/liun1994/p/7265828.html

[2] Google浏览器URL采集的一种思路
https://blog.csdn.net/qq_29647709/article/details/84379170

[3] 使用浏览器控制台抓取信息
https://lufe1.cn/2017/09/20/使用浏览器控制台抓取信息/

[4] js截取指定字符前面或后面的内容
https://blog.csdn.net/caiyongshengCSDN/article/details/88420416

免责声明:文章转载自《用浏览器控制台抓取shodan、搜索引擎、zone-h的结果》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Chrome 错误代码:ERR_UNSAFE_PORT在阿里云上搭建 Spark 实验平台下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

was修改控制台端口教程

这里我控制台启用了https所以修改WC_adminhost_secure,如果要修改控制台http的端口那么修改WC_adminhost (要修改应用的访问端口,则http--修改WC_defaulthost、https--修改WC_defaulthost_secure,然后到default_host虚拟机添加相应主机别名) 修改完后一般会提示...

CentOS7安装RabbitMQ3.7

CentOS7安装RabbitMQ3.7 1.环境准备 yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC unixODBC-devel httpd python-simplejson 1.1 安装erlang wget http://ww...

保持VISUAL STUDIO控制台驻留不闪退

当建立了win32 console project后,F5运行后,本来想看到console中printf出来的信息,可是cmd窗口一闪而过。下面是保持visual studio 跳出的cmd窗口驻留的两种方法,根据需要选择不同的方式。 方法一:  在代码中加入 1 system("pause") 2 getchar() 方法二:  不要用debug模式(...

基于kuboard管理k8s

前言 昨天我们分享了本地springboot项目构建docker镜像的内容,详细介绍了springboot项目打包、镜像构建、基于docker启动运行的全过程,这个技术虽然不是特别难,但是很实用,因为镜像构建完成后,我们不仅可以让我们的服务在docker中运行,也可以让它在k8s中运行,今天我们就来看下如何通过kuboard在k8s上部署我们的服务。 今天...

C语言探索之旅 | 第一部分第三课:你的第一个程序

作者 谢恩铭,公众号「程序员联盟」。 转载请注明出处。 原文:https://www.jianshu.com/p/c73fecacd006 《C语言探索之旅》全系列 内容简介 前言 控制台程序还是窗口程序 最基础的代码 特殊字符 注释,很有用 总结 第一部分第四课预告 1. 前言 在上一课 C语言探索之旅 | 第一部分第二课:工欲善其事,必先利其...

vsCode如何将结果输入到调试控制台

vsCode编写python代码运行时,结果在终端显示,但是里面结果显示不清楚,有多余信息,那么如何只输出代码结果呢? 点击启动调试,点击下图红圈位置 ,出现launch.json文件,修改launch.json中的console,因为 none 不是 ''console'' 的默认选项, 根据 launch.json 里面对应参数的提示 ''conso...