网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
0x002 插件开发
插件开发很简单,只需要获取网页查询结果表格显示即可。可以借鉴已有样式,比如FOFA插件。
- 首先,直接拷贝FOFA插件并重命名为RapidDNS。
- 更改
package.json
文件中属性信息。修改README.md
和CHANGELOG.md
- 更改相关文件名为和内容为rapiddns,即替换fofa即可。
- 修改
src/extension.js
文件中指向的文件为rapiddns.html
。 - 修改请求的url,替换为
https://rapiddns.io/subdomain/${content}?full=1
。根据返回的内容,提取查询结果的表格内容。这里可以使用正则<thead>(.+?)<\/tbody>
提取,使用多行和全局模式即可。对提取到的内容直接append到插件窗口中。这里要修改下页面中id为ip-table文的表格,要删除掉多余内容,只保留<table lay-filter="demo" id="ip-table" class="layui-table"></table>
就可以。 - 删除掉export按钮,增加3个按钮,分别为export ip, export subdomain, export all。并修改对应的id。
- 因为页面中使用了Jquery库,直接通过遍历表格的方法就可以将内容导出目标。
$("#ip-table tr").each
,循环遍历,并根据其DNS类型是否导入ip或者子域名。获取表格列值的代码是currentRow.find("td:eq(2)").text()
。
具体可以看如下示例代码,其他同理:
$(".export-ip").on("click", function() {
let ips = [];
$("#ip-table tr").each(function(){
var currentRow=$(this);
var type =currentRow.find("td:eq(2)").text();
if(type=="A"){
var ip=currentRow.find("td:eq(1)").text();
if(ip !=""){
ips.push(ip);
}
}
})
goby.addScanIps(ips, 1);
goby.showSuccessMessage("Export completed!");
goby.closeIframeDia();
})
- 清理无用的文件和加载的代码,完成开发。
0x003 小结
由于Goby暂时不支持IPv6扫描,不会导入IPv6地址。后续Goby支持IPv6扫描后再添加IPv6地址(RapidDNS网站本身支持IPv6)。开发过程中发现问题:1. 无法识别Readme文档中的项目符号。2. 扫描框高度只能显示两个目标太少。3. 窗口不能拖动也挺难受的。不过这些问题都不大。
在不了解太多信息以及缺乏相关基础知识的情况下,通过已有的插件,可以快速的实现插件编写,达到自己的需求和目的。通过拓展,也可以提升在渗透过程中的效率。
Happy Hacking!!!
如果表哥/表姐也想把自己上交给Goby社区,戳这里领取一份插件任务?
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**