Skip to content

[FEATURE] stickyburp replacement values available within Burp Intruder tab #6

@GangGreenTemperTatum

Description

@GangGreenTemperTatum

Problem Description

stickyburp replacement values are only accessible within Proxy intercept & Repeater

image

Proposed Solution

Have stickyburp replacement values available within Burp Intruder tab

Alternative Solutions

NA

Use Case

Same as repeater

Additional Context

image

code

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

  • 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)
  • 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

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions