WPScan.com から WordPress 脆弱性情報をJSONで取得する
WordPress の脆弱性情報を収集してみる
wpscan.com から収集してみる
User-agent: * Disallow: /api/ Disallow: /users/ Sitemap: https://sitemap.wpscan.com/sitemap.xml.gz
Plugins
- すべての脆弱性情報をリストとして取得する(Plugins)
PAGE_COUNT=$(curl -Lso- "https://wpscan.com/plugins" -H 'user-agent: ' | xmllint --xpath '//*[@id="__NEXT_DATA__"]/text()' --html - 2>/dev/null | sed -e 's/^<\!\[CDATA\[//' -e 's/\]\]>$//' | jq -r '.props.pageProps.metadata.pageCount') ; for _PAGE_NUMBER_ in $(seq 1 ${PAGE_COUNT}); do curl -Lso- "https://wpscan.com/plugins?page=${_PAGE_NUMBER_}" -H 'user-agent: ' | xmllint --xpath '//*[@id="__NEXT_DATA__"]/text()' --html - 2>/dev/null | sed -e 's/^<\!\[CDATA\[//' -e 's/\]\]>$//' | jq -c '.props.pageProps.data[]' ; done | tee wpvulndb.vlunlist.plugins.$(date '+%F').json
- Plugin毎にまとめた脆弱性情報の取得
for _PLUGIN_ in $(cat wpvulndb.vlunlist.plugins.$(date +%F).json | jq -r '.name' | sort | uniq); do curl -Lso- "https://wpscan.com/plugin/${_PLUGIN_}" -H 'user-agent: ' | xmllint --xpath '//*[@id="__NEXT_DATA__"]/text()' --html - 2>/dev/null | sed -e 's/^<\!\[CDATA\[//' -e 's/\]\]>$//' | jq -c '.props.pageProps' ; done | tee wpvulndb.vlunlist.plugins.groupByPlugin.$(date +%F).json
- 脆弱性情報の詳細をすべて取得する
for _VULN_ID_ in $(cat wpvulndb.vlunlist.plugins.groupByPlugin.$(date +%F).json | jq -r '.data.vulnerabilities[].id' | sort -n | uniq); do curl -Lso- "https://wpscan.com/vulnerability/${_VULN_ID_}" -H 'user-agent: ' | xmllint --xpath '//*[@id="__NEXT_DATA__"]/text()' --html - 2>/dev/null | sed -e 's/^<\!\[CDATA\[//' -e 's/\]\]>$//' | jq -c '.props.pageProps' ; done | tee wpvulndb.vlundetail.plugins.$(date +%F).json
カテゴリ指定
- 例えば、RCE(remote code execution)脆弱性の一覧
curl -Lso- 'https://wpscan.com/search?vuln_type=7&page=2' -H 'user-agent: ' | xmllint --xpath '//*[@id="__NEXT_DATA__"]/text()' --html - 2>/dev/null | sed -e 's/^<\!\[CDATA\[//' -e 's/\]\]>$//' | jq -c '.props.pageProps'
参考
- qiita.com
- xmllint を使って xpathを使ってDOM要素を指定しています。
- platform.kobot.jp
WordPress 脆弱性情報を扱う WPScan サービスについて
wpvulndbでGAされて以降のサービスプラン
サービスが始まった頃の試用版的なサービスでは、新しい脆弱性が登録される度にメールでの通知があっただが、現在は Enterprise契約以外は日次のお知らせしか配信されないようである。
以前は、無課金プランでも脆弱性情報が登録される度にメールで新規脆弱性情報が送り付けられていたが、サービスがGAされてプランの見直しがあったらしい。サイトも wpvulndb.com は閉鎖されて、wpscan.com に統一された。とわいえ、プラン設計が中々厳しくて単なる有料プランまででは、俯瞰的にwpvulndbを使うことが出来ない。
CVSS値が「緊急」相当のものをリストアップしたい、というような視点では使えない。
俯瞰的にコレクションしたい場合は、要問い合わせな Enterprise 契約が必要になる。Professionalで €25/Month なので、極端に高いことはないとは思うのだが、手を出しづらい...。
とはいえ詳細情報が取れても公開ページと同等なので €5/Month の Starter プランでも十分なのだなぁ...。
wpvulndb.com の WordPress ぜい弱性情報マンスリーまとめ
This is your WPScan Vulnerabilities Monthly Digest for October 2020.WordPress Core Vulnerabilities
WordPress Plugin Vulnerabilities
WordPress Theme Vulnerabilities
Thank you, The WPScan TeamUpgrade your account via your profile page to receive instant or daily email notifications!
サイバーセキュリティーまとめレポート
サイバーセキュリティーのエヴァンジェリストのメモ
ポッドキャスのネタ
- 第43回 COCOA!DDOS!EXCEL!ちばしがさが!スペシャル! « podcast - #セキュリティのアレ
- 辻さんがウォッチしているランサム被害ネタの話。
- Excelでまとめているよという話で、どのようにネタを集めているかをここ起点に調べてみる。
- LinkedIn の業種をベースに80業種に分けて分類して集計している。
- Top5: 1位 12件、2位 9件、(偏りは余りなくて、たまたまピークがある感じ)
- 弁護士、会計税務、不動産 がちょっと目立つ、気になる
- Top5: 1位 12件、2位 9件、(偏りは余りなくて、たまたまピークがある感じ)
- 辻さんがウォッチしているランサム被害ネタの話。