jq を使う

JSON収集編

集めてみる

  • 技術書典のサークル情報を収集
    • for _NUM_ in $(seq 2 9); do curl -Lso- "https://techbookfest.org/api/circle?eventID=tbf0${_NUM_}&visibility=site&limit=999&onlyAdoption=true" | ./jq-osx-amd64 -c '.' ; done | tee techbookfest.circlelist.json

集めたリストを再加工して使う

  • 技術書典のサークル情報JSONCSVにする
    • cat techbookfest.circlelist.json | ./jq-osx-amd64 -r '.list[] | [.event.id, .id, .name, .nameRuby, .penName, .webSiteURL, .genre, .genreFreeFormat] | @csv'

WPScan.com から WordPress 脆弱性情報をJSONで取得する

WordPress脆弱性情報を収集してみる

wpscan.com から収集してみる

User-agent: *
Disallow: /api/
Disallow: /users/
Sitemap: https://sitemap.wpscan.com/sitemap.xml.gz

Plugins

  1. すべての脆弱性情報をリストとして取得する(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
  2. 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
  3. 脆弱性情報の詳細をすべて取得する
    • 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'

参考

WordPress 脆弱性情報を扱う WPScan サービスについて

 wpvulndbでGAされて以降のサービスプラン

 サービスが始まった頃の試用版的なサービスでは、新しい脆弱性が登録される度にメールでの通知があっただが、現在は Enterprise契約以外は日次のお知らせしか配信されないようである。
 
以前は、無課金プランでも脆弱性情報が登録される度にメールで新規脆弱性情報が送り付けられていたが、サービスがGAされてプランの見直しがあったらしい。サイトも wpvulndb.com は閉鎖されて、wpscan.com に統一された。とわいえ、プラン設計が中々厳しくて単なる有料プランまででは、俯瞰的にwpvulndbを使うことが出来ない。
 
脆弱性情報詳細を知るためには wpvuln id を指定して参照する必要がある。もしくは、WPプラグイン名やテーマ名を指定する。
CVSS値が「緊急」相当のものをリストアップしたい、というような視点では使えない。
 
俯瞰的にコレクションしたい場合は、要問い合わせな Enterprise 契約が必要になる。Professionalで €25/Month なので、極端に高いことはないとは思うのだが、手を出しづらい...。
 
とはいえ詳細情報が取れても公開ページと同等なので €5/Month の Starter プランでも十分なのだなぁ...。

WPScanの脆弱性情報サブスクリプションサービスの契約プラン

WPScanの脆弱性情報サブスクリプションサービスの契約プラン

wpscan.com

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 Team
Upgrade your account via your profile page to receive instant or daily email notifications!

 

サイバーセキュリティーまとめレポート

公機関系アナウンス

特定の脅威情報に関してのアナウンス

インフラ事業者

金融系事業者

法令、規定、ガイドライン

セキュリティベンダー

特定の脅威情報に関してのレポート

サイバーセキュリティーのエヴァンジェリストのメモ

ポッドキャスのネタ

rhel系のメモ

URLのみ

SELinux URLのみ

細々コマンド