-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Problem Description
stickyburp
replacement values are only accessible within Proxy intercept & Repeater

Proposed Solution
Have stickyburp
replacement values available within Burp Intruder tab
Alternative Solutions
NA
Use Case
Same as repeater
Additional Context

class StickyBurpContextMenu(private val tab: StickyBurpTab, private val logging: Logging) : ContextMenuItemsProvider {
override fun provideMenuItems(event: ContextMenuEvent): List<JMenuItem> {
val messageEditor = event.messageEditorRequestResponse()
if (!messageEditor.isPresent) return emptyList() // <- This is likely the issue
Implementation Ideas
stickyburp/src/main/kotlin/com/ganggreentempertatum/stickyburp/StickyBurpContextMenu.kt
Lines 90 to 123 in ccda81d
val replaceMenu = JMenu("Replace with Sticky") tab.getVariables().forEach { variable -> val replaceItem = JMenuItem("${variable.name} (${variable.value})") replaceItem.addActionListener { val range = selection.get() val reqRes = editor.requestResponse() if (event.isFrom(MESSAGE_EDITOR_REQUEST, MESSAGE_VIEWER_REQUEST)) { val request = reqRes.request() val newRequest = HttpRequest.httpRequest( request.httpService(), request.toString().replaceRange( range.startIndexInclusive(), range.endIndexExclusive(), variable.value ) ) editor.setRequest(newRequest) } else { val response = reqRes.response() val newResponse = HttpResponse.httpResponse( response.toString().replaceRange( range.startIndexInclusive(), range.endIndexExclusive(), variable.value ) ) editor.setResponse(newResponse) } } replaceMenu.add(replaceItem) } mainMenu.add(replaceMenu) stickyburp/src/main/kotlin/com/ganggreentempertatum/stickyburp/StickyBurpHttpHandler.kt
Lines 6 to 23 in ccda81d
class StickyBurpHttpHandler(private val tab: StickyBurpTab) : HttpHandler { override fun handleHttpRequestToBeSent(requestToBeSent: HttpRequestToBeSent): RequestToBeSentAction { var modifiedRequest = requestToBeSent.toString() for (variable in tab.getVariables()) { modifiedRequest = modifiedRequest.replace("\${${variable.name}}", variable.value) } return if (modifiedRequest != requestToBeSent.toString()) { RequestToBeSentAction.continueWith(HttpRequest.httpRequest( requestToBeSent.httpService(), modifiedRequest )) } else { RequestToBeSentAction.continueWith(requestToBeSent) } }
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request