training.import
Import training data from HTB or PortSwigger labs to enhance vulnerability detection capabilities in security testing workflows.
Instructions
Import training data from HTB or PortSwigger labs
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Source of training data | |
| sourceId | No | ID from source (e.g., lab name) | |
| vulnerabilityType | Yes | Type of vulnerability (XSS, SQLi, IDOR, etc.) | |
| targetPattern | Yes | Pattern to match target URLs | |
| payloadPattern | Yes | Pattern for successful payloads | |
| successPattern | No | Pattern indicating success in response | |
| failurePattern | No | Pattern indicating failure in response | |
| contextData | No | Additional context data | |
| score | No | Score for this training example (0-10) |
Implementation Reference
- src/tools/training.ts:75-132 (registration)Primary registration of the 'training.import' tool, including input schema and execution handler function that saves data to database and updates pattern matcher.'training.import', { description: 'Import training data from HTB or PortSwigger labs', inputSchema: { type: 'object', properties: { source: { type: 'string', enum: ['htb', 'portswigger', 'custom'], description: 'Source of training data', }, sourceId: { type: 'string', description: 'ID from source (e.g., lab name)' }, vulnerabilityType: { type: 'string', description: 'Type of vulnerability (XSS, SQLi, IDOR, etc.)', }, targetPattern: { type: 'string', description: 'Pattern to match target URLs' }, payloadPattern: { type: 'string', description: 'Pattern for successful payloads' }, successPattern: { type: 'string', description: 'Pattern indicating success in response' }, failurePattern: { type: 'string', description: 'Pattern indicating failure in response' }, contextData: { type: 'object', description: 'Additional context data' }, score: { type: 'number', description: 'Score for this training example (0-10)' }, }, required: ['source', 'vulnerabilityType', 'targetPattern', 'payloadPattern'], }, }, async (params: any): Promise<ToolResult> => { try { const id = await saveTrainingData( params.source, params.sourceId || '', params.vulnerabilityType, params.targetPattern, params.payloadPattern, params.successPattern || '', params.failurePattern || '', params.contextData, params.score || 5 ); // Learn the pattern patternMatcher.learnPattern( params.vulnerabilityType, params.targetPattern, params.payloadPattern, params.successPattern || '', params.failurePattern || '' ); return formatToolResult(true, { id, message: 'Training data imported successfully', }); } catch (error: any) { return formatToolResult(false, null, error.message); } } );
- src/tools/training.ts:101-131 (handler)The handler function for 'training.import' that processes input parameters, saves training data using saveTrainingData, learns patterns via PatternMatcher, and returns formatted result.async (params: any): Promise<ToolResult> => { try { const id = await saveTrainingData( params.source, params.sourceId || '', params.vulnerabilityType, params.targetPattern, params.payloadPattern, params.successPattern || '', params.failurePattern || '', params.contextData, params.score || 5 ); // Learn the pattern patternMatcher.learnPattern( params.vulnerabilityType, params.targetPattern, params.payloadPattern, params.successPattern || '', params.failurePattern || '' ); return formatToolResult(true, { id, message: 'Training data imported successfully', }); } catch (error: any) { return formatToolResult(false, null, error.message); } }
- src/tools/training.ts:79-99 (schema)Input schema for 'training.import' tool defining parameters like source, vulnerabilityType, patterns, and score.type: 'object', properties: { source: { type: 'string', enum: ['htb', 'portswigger', 'custom'], description: 'Source of training data', }, sourceId: { type: 'string', description: 'ID from source (e.g., lab name)' }, vulnerabilityType: { type: 'string', description: 'Type of vulnerability (XSS, SQLi, IDOR, etc.)', }, targetPattern: { type: 'string', description: 'Pattern to match target URLs' }, payloadPattern: { type: 'string', description: 'Pattern for successful payloads' }, successPattern: { type: 'string', description: 'Pattern indicating success in response' }, failurePattern: { type: 'string', description: 'Pattern indicating failure in response' }, contextData: { type: 'object', description: 'Additional context data' }, score: { type: 'number', description: 'Score for this training example (0-10)' }, }, required: ['source', 'vulnerabilityType', 'targetPattern', 'payloadPattern'], },
- src/index.ts:47-47 (registration)Top-level registration call that invokes registerTrainingTools(server), which includes the 'training.import' tool registration.registerTrainingTools(server);
- src/tools/training.ts:14-30 (helper)PatternMatcher.learnPattern method used by the handler to store learned patterns from imported training data.learnPattern( vulnType: string, targetPattern: string, payloadPattern: string, successPattern: string, failurePattern: string ) { if (!this.patterns.has(vulnType)) { this.patterns.set(vulnType, []); } this.patterns.get(vulnType)!.push({ targetPattern, payloadPattern, successPattern, failurePattern, }); }