0.0.4 • Published 5 years ago
pentesterland-writeups-scraper v0.0.4
Installation
npm install -S pentesterland-writeups-scraperUsage
ES6
import load from 'pentesterland-writeups-scraper'
const options = { year: '2020' } // see details below
const getWriteups = async () => await load(options)
const writeups = getWriteups()
// do something with writeups
console.log(writeups)CommonJS
const load = require('pentesterland-writeups-scraper')
const options = { group: true } // see details below
load(options).then(function (writeups) {
// do something with writeups
console.log(writeups)
})Options
group-trueorfalse- returns writeups grouped by year (objectinstead ofarray)
{
'2020': [...],
'2019': [...],
'2018': [...],
...
'2012': [...],
unknown: [...]
}year-YYYY- returns list of writeups for specified year. Can beunknown, to get all writeups without date.month-MM- returns list of writeups for specified month (yearoption is required)order-ascordesc- returns list of writeups inascordescorder
Schema
{
url: 'https://blog.assetnote.io/bug-bounty/2019/03/19/rce-on-mozilla-zero-day-webpagetest/',
domain: 'blog.assetnote.io',
title: 'Discovering a zero day and getting code execution on Mozilla’s AWS Network',
hackers: [
{ name: 'Shubham Shah', twitter_handle: 'infosec_au' },
{ name: 'Mathias Karlsson', twitter_handle: 'avlidienbrunn' }
],
programs: [ 'Mozilla' ],
weaknesses: [ 'RCE' ],
bounty: 500,
published: { year: '2019', month: '03', day: '19' },
published_at: '2019-03-19'
}In some cases there's a few programs, hackers and weaknesses attached to a single writeup, so i decided to go with array type for field, to have consistent format across all writeups.
Each writeup may also have additional properties, such as:
status-informative,not_applicable,duplicateorout_of_scopeswag-trueorfalsevdp-trueorfalsehall_of_fame-trueorfalse
hacker object may also have website property.