今日剖析了几款用于网站爬虫的开源工具,这些工具的主要功能在于辅助安全测试人员,对网站功能展开测试,进而找出网站存在的漏洞。是本着学习的准则呐,经由研读源码的途径,去学习其核心技术,如此一来便有助于我们自身编写相关脚本,在实际工作当中,利用它来提高工具的效率啦。
需要参考的工具是gospider,其链接为https://github.com/jaeles-project/gospider/blob/master/core/sitemap.go 。
常见 sitemap 的路径:
sitemapUrls赋值为一个字符串切片,其中包含,斜杠加上sitemap.xml,斜杠加上sitemap_news.xml,斜杠加上sitemap_index.xml,斜杠加上sitemap-index.xml,斜杠加上sitemapindex.xml,斜杠加上sitemap-news.xml,斜杠加上post-sitemap.xml,斜杠加上page-sitemap.xml,斜杠加上portfolio-sitemap.xml,斜杠加上home_slider-sitemap.xml,斜杠加上category-sitemap.xml,斜杠加上author-sitemap.xml 。
获取 sitemap 可以提取网站的一些链接信息
url 提取正则,如果提取的url不包含网站,则进行修复:
(?:冒号双引号或单引号,(((?:由字母组成的长度为1到10的字符串、双斜杠)|双-slash)[不是双引号或单斜线的字符组成的长度为1到任意的字符串、点、由字母组成的长度为2到任意的字符串)[不是双单引号的字符组成的长度为0到任意的字符串)|((?:斜线、双点斜杠。<,;| *()(%%$^/\\\[\]][^"'><,;|()]{1,})|([a-zA-Z0-9_\-/]{1,}/[a-zA-Z0-9_\-/]{1,}\.(?:[a-zA-Z]{1,4}|action)(?:[\?|#][^"|']{0,}|))|([a-zA-Z0-9_\-/]{1,}/[a-zA-Z0-9_\-/]{3,}(?:[\?|#][^"|']{0,}|))|([a-zA-Z0-9_\-]{1,}\.(?:php|asp|aspx|jsp|json|action|html|js|txt|xml)(?:[\?|#][^"|']{0,}|)))(?:"|')
黑名单后缀:
(?i)\,这个由圆括号括起来的部分,它里面包含了点儿这个字符,后面带着竖线分隔的这些扩展名,有/png、/apng、/bmp、/gif、/ico、/cur、/jpg、/jpeg、/jfif、/pjp、/pjpeg、/svg、/tif、/tiff、/webp、/xbm、/3gp、/aac、/flac、/mpg、/mpeg、/mp3、/mp4、/m4a、/m4v、/m4p、/oga、/ogg、/ogv、/mov、/wav、/webm、/eot、/woff、/woff2、/ttf、/otf、/css,然后是一个非捕获组,里面有问号。
javascript 后缀
如果文件扩展名等于".js",或者文件扩展名等于".xml",或者文件扩展名等于".json",或者文件扩展名等于".map",那么 。
倘若,js 文件的名称是,min.js(此乃加密过后的 js),则试着去获取,明文 js,把 min 去除掉之后,再进行访问 。
黑名单状态码:
响应的状态码等于 404,或者响应的状态码等于 429,又或者响应的状态码 (最后这个“response. StatusCode”表述不完整 ) 。< 100
访问包内容太大,将内容进行分割之后,再进行正则匹配:
域名匹配正则:
常量 SUBRE 赋定为 `(?i)` 紧接着是 `((` 先是 `([a-zA-Z0-9]{1}|[_a-zA-Z0-9]{1}[_a-zA-Z0-9-]{0,61}[a-zA-Z0-9]{1})` 接着是 `[.]{1}` 结束于 `)+` ,句号。
S3存储桶的正则
定义一个名为 AWSS3 的变量,使其等于通过 MustCompile 方法对正则表达式(该正则表达式为:对不区分大小写的情况进行匹配,匹配由小写字母、数字、点、减号组成的字符串,后面跟着点 s3 dot amazonaws dot com,或者由小写字母、数字、点、减号组成的字符串,后面跟着点 s3 连字符 由小写字母、数字、减号组成的字符串 dot amazonaws dot com,或者由小写字母、数字、点、减号组成的字符串,后面跟着点 s3 连字符 website 点 分隔符 由小写字母、数字、点、减号组成的字符串,其中分隔符可以是 eu、ap、us、ca、sa、cn 中的任意一个,或者两个斜杠 s3 dot amazonaws dot com 斜杠 由小写字母、数字、下划线、减号组成的字符串,或者两个斜杠 s3 连字符 由小写字母、数字、减号组成的字符串 dot amazonaws dot com 斜杠 由小写字母、数字、下划线、减号组成的。
提取来自robots的链接,开展爬取行为,能够发觉搜索引擎无法发现的目录 。
关于gau(也就是getallurl),其链接为https://github.com/lc/gau 。
核心原理从多个网站提取目标相关信息

你提供的不是一个句子呀,请包含具体主题及你想要表达的内容,这样我才能按照要求进行改写 。 但仅就你提供的这串字符而言,可改写为:这是。
2、https://otx.alienvault.com/
3、https://urlscan.io/
哎呀呀,这个长长的网址呀,它是这样一组字符呢,https冒号向前向右斜杠斜杠,然后-web.archive.org斜杠cdx斜杠search斜杠cdx ,。
https://github.com/GerbenJavado/LinkFinder 这个链接查找工具 ,它叫 LinkFinder 。
用到的正则(提取网页中的 url):
<,;| *()(%%$^/\\\[\]] # Next character can't be... [^"'><,;|()]{1,}) # Rest of the characters can't be | ([a-zA-Z0-9_\-/]{1,}/ # Relative endpoint with / [a-zA-Z0-9_\-/]{1,} # Resource name \.(?:[a-zA-Z]{1,4}|action) # Rest + extension (length 1-4 or action) (?:[\?|#][^"|']{0,}|)) # ? or # mark with parameters | ([a-zA-Z0-9_\-/]{1,}/ # REST API (no extension) with / [a-zA-Z0-9_\-/]{3,} # Proper REST endpoints usually have 3+ chars (?:[\?|#][^"|']{0,}|)) # ? or # mark with parameters | ([a-zA-Z0-9_\-]{1,} # filename \.(?:php|asp|aspx|jsp|json| action|html|js|txt|xml) # . + extension (?:[\?|#][^"|']{0,}|)) # ? or # mark with parameters ) (?:"|') # End newline delimiter
能够瞧见,此番正则就是针对gospider里正则的阐释,能够去学习一番 。
python所编写的工具,其输入的参数能够是url,还能够是文件以及目录,进行本地数据分析同样是可行的。
一种方式是回溯网址,其网址为https://github.com/tomnomnom/waybackurls,这样一段关于某事物的表述 。
不是直接去访问网站,和 gau 相类似,同样是从好多网站那里获取相关的信息,。
你所提供的内容并非一个完整的可改写句子呀,请提供合适的文段句子以便按要求改写 。仅给出一个网址链接无法进行符合要求的改写操作呢。这个链接。
这是一个网址,其具体内容为http://index.commoncrawl.org/ 。
3、https://www.virustotal.com/
运用别的平台的数据,速度相当快,并且无需直接去访问相关网站 。
无法按照要求改写该内容它只是一个链接,链接为hakrawlerhttps://github.com/hakluke/hakrawler并无实际句义可作加工。,。
它所匹配的那个url的正则表达式写得相对简易,仅仅是去匹配和目标存在关联的URL :
嗯,这个问题呢,我们得这么来看,就是那个c.URLFilters,它被设定为空的切片,也就是[]*regexp.Regexp这种形式啦,然后呢,在这个切片里面,有一个元素,它是通过regexp.MustCompile这个函数来创建的,这个函数里面的参数是一串很复杂的字符串,就是.*(\\.|\\/\\/)" + strings.ReplaceAll(hostname, ".", "\\.") + "((#|\\/|\\?).*)? ,最后呢,这个元素被放在这个切片里了。
这工具是较为简易的,其具备的功能数量并不繁杂,只是达成了在网页里获取url这样的操作,而且它不会凭借自身自动去爬取别的url,仅针对单一网站进行测试时是能够使用的。
一款名为ParamSpider的工具,其源码位于https://github.com/devanshbatham/ParamSpider的链接之上 。
用于编写的工具,重点在于匹配网页之中带有参数的网址链接,所运用的正则表达式为:
正则表达式 :r'.*?:\/\/.*\?.*\=[^$]' ,其中r表示这是一个原始字符串,'.*?'。
仅能匹配 get 参数的 url,数据的来源存在两种情形,其一乃是于第三方平台里进行查询,。
https://,web.archive.org/,cdx/search/cdx ,这串字符构成的链接,是一个特定的网址,用于某种搜索查询 。
另外一种是直接获取网页内容,可以借鉴的也就这个正则表达式。
总结
有一些开源工具被收集整理好了,这些工具能用在上述情况里,能获取网页当中的 url,其中获取 url情形里主要的场景有两种,一种是去分析 url里所含参数有没有漏洞,再有一种是一层一层的对网页内容进行爬取,进而得到更多信息,像子域名、带有参数的 url、隐藏功能等,以此提升针对网站测试的工具覆盖范围,除了运用爬虫这一形式,还能够开展目录枚举,以此发现隐藏功能 。