nuclei
nuclei copied to clipboard
Nuclei REST API Layer
trafficstars
Please describe your feature request:
A REST API Layer for Nuclei
Resources
Nuclei v3 REST API
List of Resources
A list of the resource URLs to be supported by the API.
| Resource URL | Data Type |
|---|---|
| /templates | Templates Data |
| /targets | Targets Data |
| /scans | Scans Data |
| /issues | Issues Data |
| /dashboard | Dashboard Data |
| /settings | Settings Data |
Resource Routes Details
List of resources by their path and options they support. We follow REST-ful specification so Methods are used to distinguish between different operations of the API.
/templates
Templates can be either template or workflows or any other group user desires to add.
| Resource | GET | POST | PUT | DELETE |
|---|---|---|---|---|
| /templates (param=search) | Get all templates | Add template | Update template | Delete template |
| /templates/:path | Get template | None | None | None |
| /templates/:path/execute | None | Execute templates | None | None |
/targets
| Resource | GET | POST | PUT | DELETE |
|---|---|---|---|---|
| /targets (param=search) | Get targets | Add new target | None | None |
| /targets/:id | Get raw target list | None | Update target | Delete target |
/scans
| Resource | GET | POST | PUT | DELETE |
|---|---|---|---|---|
| /scans | Get scans | Add new scan | None | None |
| /scans/:id | Get scan | None | Update scan | Delete scan |
/issues
| Resource | GET | POST | PUT | DELETE |
|---|---|---|---|---|
| /issues | Get issues | Add new issue | None | None |
| /issues/:id | Get issue id | None | Update issue | Delete issue |
/dashboard
| Resource | GET | POST | PUT | DELETE |
|---|---|---|---|---|
| /dashboard | Get dashbaord | None | None | None |
/settings
| Resource | GET | POST | PUT | DELETE |
|---|---|---|---|---|
| /settings | Get settings | None | Update Settings | None |
Points to consider of the current implementation:
- Targets can’t be manipulated at runtime
- Scans are atomic, cannot be altered at runtime besides recently introduced stop/resume
- issues are not kept in memory
- settings can’t be manipulated at runtime as goflags is meant for single threaded main app
- issue deduplication for the stored issues
- global way to rate-limit scans based on available resources
cc @ehsandeep @Ice3man543
https://github.com/projectdiscovery/nuclei/pull/1558#issuecomment-1256111568