{"id":17677683,"url":"https://github.com/christophe77/ssxss","last_synced_at":"2026-05-03T21:32:54.794Z","repository":{"id":113537037,"uuid":"452712379","full_name":"christophe77/ssXss","owner":"christophe77","description":"XSS scanner using puppeteer with nodeJS","archived":false,"fork":false,"pushed_at":"2022-02-01T12:46:59.000Z","size":163,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-30T12:39:30.007Z","etag":null,"topics":["express","javascript","puppeteer","xss","xss-detection"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/christophe77.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-27T14:21:53.000Z","updated_at":"2022-01-29T14:42:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"43a20fff-97a8-4d27-be5d-784aea436284","html_url":"https://github.com/christophe77/ssXss","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/christophe77/ssXss","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/christophe77%2FssXss","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/christophe77%2FssXss/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/christophe77%2FssXss/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/christophe77%2FssXss/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/christophe77","download_url":"https://codeload.github.com/christophe77/ssXss/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/christophe77%2FssXss/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32586187,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["express","javascript","puppeteer","xss","xss-detection"],"created_at":"2024-10-24T07:29:19.043Z","updated_at":"2026-05-03T21:32:54.779Z","avatar_url":"https://github.com/christophe77.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ssXss\n\nXSS scanner using pupetteer with nodeJS\u003cbr /\u003e\n\n## Install\n\nClone the project and install the dependencies :\u003cbr /\u003e\n\n    git clone https://github.com/christophe77/ssXss\n    cd ssXss\n    yarn install\n\n## How to use\n\n### From command line\n\nEdit _/src/index.js_ file and fill _url_ constant with the url you want to scan.\u003cbr /\u003e\nYou can also edit the default options.\u003cbr /\u003e\nI suggest you not to change the timeout values, they are a good compromise between speed and accuracy.\u003cbr /\u003e\nIf you want to scan and check all inputs inside all forms of the url, set _scanType: forms_\u003cbr/\u003e\nIf you want to check some specific inputs, set _scanType: inputs_\u003cbr/\u003e\nIf you want to test all payloads after an url parameter, set _scanType: urlParam_\u003cbr/\u003e\nIf you want to store the results inside a json file, set _result: file_\u003cbr/\u003e\nIf you want to receive the results in json stream, set _result: stream_\u003cbr/\u003e\nUse ssXss.scanForms(url, options) for full page scanning.\u003cbr /\u003e\nCreate a selector object if you want to scan specific inputs :\u003cbr /\u003e\n\n    const selectors = {\n        inputs: ['input[name=\"email\"]', 'input[name=\"username\"]'],\n        submit: 'input[type=\"submit\"]',\n    };\n\nYou can now start scanning.\u003cbr /\u003e\n\n    yarn start:cmd\n\n### From express\n\nEdit _/src/express/index.js_ file and set the port that you want.\u003cbr /\u003e\n\n    yarn start:web\n\n## Customization\n\nYou can add more xss payloads in _/scanner/payloads.js_ file. \u003cbr /\u003e\nPayload must execute console.log(\"ssxss\") or alert(\"ssxss\") and user action can be none or \"onmouseover\". \u003cbr /\u003e\n\n## Future\n\nThe current version of ssXss is working well but it needs improvements :\u003cbr/\u003e\n\n- Improve speed.\n- Improve DOM analysis to go deeper.\n- Make npm package.\n\n## Contribution\n\nAny contribution is accepted.\u003cbr /\u003e\n\n## Bugs\n\nIf you find any bugs, please feel an issue report.\u003cbr /\u003e\nIf you have a website with an XSS vulnerability that is not discovered by ssXss you can contact me.\u003cbr /\u003e\n\n## Demo\n\n[http://165.227.229.84:6969/](http://165.227.229.84:6969/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchristophe77%2Fssxss","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchristophe77%2Fssxss","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchristophe77%2Fssxss/lists"}