<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    從開源工具中汲取知識之網頁爬蟲工具

    一顆小胡椒2022-05-07 16:46:04

    今天分析了幾款網站爬蟲開源工具,其主要作用是輔助安全測試人員,測試網站功能,發現網站漏洞,本著學習的原則,通過閱讀源碼的方式來學習其核心技術,從而有助于我們自身編寫相關腳本,在實際的工作中應用它來提升工具效率。

    參考工具

    gospider

    https://github.com/jaeles-project/gospider/blob/master/core/sitemap.go

    常見 sitemap 的路徑:

    sitemapUrls := []string{"/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不包含網站,則進行修復:


    (?:"|')(((?:[a-zA-Z]{1,10}://|//)[^"'/]{1,}\.[a-zA-Z]{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 后綴


    if fileExt == ".js" || fileExt == ".xml" || fileExt == ".json" || fileExt == ".map" {
    

    如果 js 文件名為 min.js(加密后的 js),嘗試獲取明文 js,將 min 去掉然后訪問

    黑名單狀態碼:


    response.StatusCode == 404 || response.StatusCode == 429 || response.StatusCode < 100
    


    訪問包內容太大,將內容進行分割之后,再進行正則匹配:


    if len(source) > 1000000 {    source = strings.ReplaceAll(source, ";", ";\r")    source = strings.ReplaceAll(source, ",", ",\r")  }
    

    域名匹配正則:


    const 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存儲桶的正則


    var AWSS3 = regexp.MustCompile(`(?i)[a-z0-9.-]+\.s3\.amazonaws\.com|[a-z0-9.-]+\.s3-[a-z0-9-]\.amazonaws\.com|[a-z0-9.-]+\.s3-website[.-](eu|ap|us|ca|sa|cn)|//s3\.amazonaws\.com/[a-z0-9._-]+|//s3-[a-z0-9-]+\.amazonaws\.com/[a-z0-9._-]+`)
    

    從 robots 中提取鏈接,進行爬取,可以發現搜索引擎發現不了的目錄

    gau(getallurl)

    https://github.com/lc/gau

    核心原理從多個網站提取目標相關信息

    1、http://index.commoncrawl.org/collinfo.json

    2、https://otx.alienvault.com/

    3、https://urlscan.io/

    4、https://web.archive.org/cdx/search/cdx

    linkfinder

    https://github.com/GerbenJavado/LinkFinder

    用到的正則(提取網頁中的 url):


      (?:"|')                               # Start newline delimiter  (    ((?:[a-zA-Z]{1,10}://|//)           # Match a scheme [a-Z]*1-10 or //    [^"'/]{1,}\.                        # Match a domainname (any character + dot)    [a-zA-Z]{2,}[^"']{0,})              # The domainextension and/or path    |    ((?:/|\.\./|\./)                    # Start with /,../,./    [^"'><,;| *()(%%$^/\\\[\]]          # 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,也可以是文件和目錄,做本地數據分析也是可以的。

    waybackurls

    https://github.com/tomnomnom/waybackurls

    不直接訪問網站,與 gau 類似,也是從多個網站獲取相關信息:

    1、http://web.archive.org/cdx/search/cdx

    2、http://index.commoncrawl.org/

    3、https://www.virustotal.com/

    直接使用其他平臺的數據,速度是比較快的,而且不用直接訪問相關網站

    hakrawler

    https://github.com/hakluke/hakrawler

    其匹配 url 的正則寫的比較簡單,只匹配跟目標相關的 URL:


    c.URLFilters = []*regexp.Regexp{regexp.MustCompile(".*(\\.|\\/\\/)" + strings.ReplaceAll(hostname, ".", "\\.") + "((#|\\/|\\?).*)?")}
    

    工具比較簡單,功能也不多,僅僅做到了獲取網頁中的 url,也不會自動爬取其他 url,單網站測試可用。

    paramspider

    https://github.com/devanshbatham/ParamSpider

    python 寫的工具,主要匹配網頁中帶參數的 url,正則:


     regexp : r'.*?:\/\/.*\?.*\=[^$]'
    

    只能匹配 get 參數的 url,數據來源有兩種,一種是從第三方平臺查詢:

    https://web.archive.org/cdx/search/cdx

    另外一種是直接獲取網頁內容,可以借鑒的也就這個正則表達式。

    總結

    以上就是收集整理了一些開源工具,可以獲取網頁中的 url,而獲取 url 的主要場景是,分析 url 中的參數是否存在漏洞,另一種是一層一層的爬取內容,從而獲得更多信息,比如子域名、帶參數的 url、隱藏功能等,提升網站測試的工具面,除了爬蟲的方式,還可以進行目錄枚舉,發現隱藏功能。

    js獲取url參數python爬蟲
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    今天分析了幾款網站爬蟲開源工具,其主要作用是輔助安全測試人員,測試網站功能,發現網站漏洞,本著學習的原則,通過閱讀源碼的方式來學習其核心技術,從而有助于我們自身編寫相關腳本,在實際的工作中應用它來提升工具效率。
    crawlergo是一個使用chrome headless模式進行URL收集的瀏覽器爬蟲。它對整個網頁的關鍵位置與DOM渲染階段進行HOOK,自動進行表單填充并提交,配合智能的JS事件觸發,盡可能的收集網站暴露出的入口。內置URL去重模塊,過濾掉了大量偽靜態URL,對于大型網站仍保持較快的解析與抓取速度,最后得到高質量的請求結果集合。調研1.
    半個月前發布了xscan掃描器,這期間又針對很多場景進行了優化,本文來做一個總結。基于dom相似度的爬蟲獲取數據集的一個重要方式就是爬蟲,開源爬蟲中比較好的有projectdiscovery的katana和 crawlergo。此時在之前payload基礎上加一個引號,就能破壞原有結構,此時asdsda經過語義分析后,屬性為 Attribute的name,語義發生了改變,則說明可以XSS了。對url每層路徑也進行一下檢測,也能發現很多XSS。真實世界有趣的XSS國外也有個xss掃描器叫knoxss,它的測試用例不錯,覆蓋了很多場景。
    Arsenal是一個功能強大且使用簡單的Shell腳本,該工具專為漏洞賞金獵人設計,在該工具的幫助下,我們可以輕松在自己環境中安裝并部署目前社區中功能最為強大的網絡偵查工具、漏洞掃描工具和其他安全研究工具。
    網上安全滲透測試工具整理全集,部分鏈接可能失效,但可以搜索到
    Web Hacking 101 中文版:https://wizardforcel.gitbooks.io/web-hacking-101/content/ 淺入淺出Android安全 中文版:https://wizardforcel.gitbooks.io/asani/content/ Android 滲透測試學習手冊 中文
    分目錄站點 ?形如: www.xxx.com www.xxx.com/bbs www.xxx.com/old ?滲透思路:網站可能有多個cms或框架組成,那么對于滲透而言,相當于滲透目標是多個(一個cms一個思路) 分端口站點 ?形如:www.zzz.com www.zzz.com:8080 www.zzz.com:8888 ?滲透思路:網站可能有多個端口或框架組成,那么對于滲透而言,相當
    摘 要:互聯網開源信息處理是指從互聯網上的公開信息源獲取數據并分析處理,進而獲得有價值的開源信息的過程。為充分了解國外互聯網開源信息處理的研究現狀,從開源數據采集、預處理、信息分析、決策支撐、相關系統等角度對近年來國外有關研究進行梳理,總結現有研究存在的普遍性問題,對未來研究進行展望。
    用戶名:加密密碼:密碼最后一次修改日期:兩次密碼的修改時間間隔:密碼有效期:密碼修改到期到的警告天數:密碼過期之后的寬限天數:賬號失效時間:保留。查看下pid所對應的進程文件路徑,
    一顆小胡椒
    暫無描述
      亚洲 欧美 自拍 唯美 另类