信息收集
whois是用来查询域名的IP以及所有者等信息的传输协议。简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)。
输入相关的域名即可进行查询。
(1)站长之家:whois域名查询
(2)爱站工具网:whois域名查询

(3)域名:域名查询
(1)kail查询:whois+域名

(2)kail查询:dnsenum+域名

不单单可以使用域名进行whois进行查询,同样可以使用手机号、邮箱、注册人等相关信息进行反查。

输入相关的网站域名、备案编号、主办单位等信息。
(1)天眼查:备案信息查询
(1)ICP备案查询网:备案信息查询
子域名是顶级域名的下一级,子域名主要指的是二级域名。当一个网站比较大的情况下,直接通过顶级域名进行入手可能会比较困难,但是对于比较大的网站都可能会存在相当多的二级域名,并且顶级域名相对来说防范也比较严格,而二级域名可能就会存在防范不是那么严格的情况。
(1)子域名在线查询:子域名查询网站

(2)子域名在线查询:子域名查询网站

(3)子域名在线查询:子域名查询网站

(1)Layer子域名挖掘机
子域名挖掘机,是否能够挖掘到关键不在于工具本身,而在于收到的字典,字典越好,收集到的信息就越多,所以在日常中,需要常收集相关的字典。
Layer子域名挖掘机5.0:网盘链接 提取码:76rc

(2)开源扫描器onlinetools
开源扫描器onlinetools,输入域名即可查询,至于怎么安装可以查询文档或者百度搜索。
开源地址:https://github.com/iceyhexman/onlinetools
site功能:搜索指定的域名网页内容,子网和网页相关的
site:网站 “想查询的信息”
site:baidu.com

通过ping收集相关的服务器IP地址,但是通过ping获取到的IP不一定是真实的。
语法:ping+域名
通过nslookup收集到的IP地址同样也不一定是真实的。并且命令也提示非权威答应。
语法:nslookup 进入后输入域名。
CDN的全称Content Delivery Network,即内容分发网络,CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问的网络中,在用户访问网站时,由距离最近的缓存服务器直接响应用户请求。
(1)超级ping:超级ping
(2)全球ping:全球ping
(3)查询网:查询网
(4)IP查询:IP查询

(1)站长之家:站长之家

C段旁注就是在对目标主机无计可施的时候,另辟蹊径从C段或旁注下手,C段也就是拿下同一C段也就是同一网段内其它服务器,然后从这台服务器对目标主机进行测试,旁注同服务器上的其它站点入手,进行相关的渗透获取权限,然后把服务器拿下,同理自然也就将目标主机拿下。
两者有着不同的区别,C段是同网段不同服务器,旁注是同服务器不同站点。
(1)C段旁注:同IP网站查询
(1)开源扫描器onlinetools
开源扫描器onlinetools,输入域名即可查询,至于怎么安装可以查询文档或者百度搜索。
开源地址:https://github.com/iceyhexman/onlinetools
针对整个网站架构进行信息收集:服务器操作系统、网站服务组件、脚本类型、CMS类型、WAF等信息。
(1)kail收集:nmap -sV ip地址

(2)kail收集:whatweb+域名
(3)御剑WEB指纹识别系统
下载链接:网盘链接: 提取码:uy9z

(1)Wappalyzer

(1)在线查询:在线cms指纹识别
(2)云悉:在线指纹识别

(3)潮汐:在线指纹识别

一个网站可能会开放多个不通的端口,而对一个网站进行测试的时候,一个端口不行可以换一个端口进行测试,多个端口就存在多个可能。
(1)端口收集:在线检测
(1)kail收集:nmap -sS 域名/ip

(2)kail收集:masscan ip地址 -p 端口(1-1000)

(3)御剑端口扫描
下载链接:网盘链接 提取码:l0kd

数据文件、配置信息、上传目录、后台登录目录、安装页面、数据库版本、PHP版本、后台压缩包、未授权访问等。
(1)Google语法
1)site:查找与指定的网站有联系的URL。
用法:site:网站名称
案例:site:XX.com //查找和XX.com网站相关的URL。
2)filetype:搜索指定类型的文件。
用法:filetype:文件类型
案例:site:XX.com filetype:pdf //在XX.com中寻找pdf文件。
3)intitle:搜索网页正文内容中的指定字符。
用法:intitle:关键字
案例:intitle:后台搜索 //搜索网址中有后台搜索关键字的网页
4)inurl:搜索包含有特定字符的URL
用法:inurl:关键词URL
案例: inurl:.php?id //搜索网址中有php?id的网页
(1)kail查询:dirb+URL链接

(2)御剑目录收集工具
下载链接:网盘链接 提取码:q1q3

(3)7KBwebpathBurute

可以通过各种方式获取相关信息,通过相关信息生成密码字典。
网站:https://www.bugku.com/mima/
其它一些在线信息收集网站,至于用法多数都能通过百度搜索到如何使用,这里就不一一介绍。
钟馗之眼:https://www.zoomeye.org/
shodan:https://www.shodan.io/
fofa:https://fofa.info/toLogin
很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当
我有一个围绕一些对象的包装类,我想将这些对象用作散列中的键。包装对象和解包装对象应映射到相同的键。一个简单的例子是这样的:classAattr_reader:xdefinitialize(inner)@inner=innerenddefx;@inner.x;enddef==(other)@inner.x==other.xendenda=A.new(o)#oisjustanyobjectthatallowso.xb=A.new(o)h={a=>5}ph[a]#5ph[b]#nil,shouldbe5ph[o]#nil,shouldbe5我试过==、===、eq?并散列所有无济于事。
我有一些Ruby代码,如下所示:Something.createdo|x|x.foo=barend我想编写一个测试,它使用double代替block参数x,这样我就可以调用:x_double.should_receive(:foo).with("whatever").这可能吗? 最佳答案 specify'something'dox=doublex.should_receive(:foo=).with("whatever")Something.should_receive(:create).and_yield(x)#callthere
Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/
我遵循MichaelHartl的“RubyonRails教程:学习Web开发”,并创建了检查用户名和电子邮件长度有效性的测试(名称最多50个字符,电子邮件最多255个字符)。test/helpers/application_helper_test.rb的内容是:require'test_helper'classApplicationHelperTest在运行bundleexecraketest时,所有测试都通过了,但我看到以下消息在最后被标记为错误:ERROR["test_full_title_helper",ApplicationHelperTest,1.820016791]test
我已经构建了一些serverspec代码来在多个主机上运行一组测试。问题是当任何测试失败时,测试会在当前主机停止。即使测试失败,我也希望它继续在所有主机上运行。Rakefile:namespace:specdotask:all=>hosts.map{|h|'spec:'+h.split('.')[0]}hosts.eachdo|host|begindesc"Runserverspecto#{host}"RSpec::Core::RakeTask.new(host)do|t|ENV['TARGET_HOST']=hostt.pattern="spec/cfengine3/*_spec.r
我在app/helpers/sessions_helper.rb中有一个帮助程序文件,其中包含一个方法my_preference,它返回当前登录用户的首选项。我想在集成测试中访问该方法。例如,这样我就可以在测试中使用getuser_path(my_preference)。在其他帖子中,我读到这可以通过在测试文件中包含requiresessions_helper来实现,但我仍然收到错误NameError:undefinedlocalvariableormethod'my_preference'.我做错了什么?require'test_helper'require'sessions_hel