如何在Burp Intruder的payload处理环节实现字符串反转?
Burp Intruder添加全字符串反转Payload处理流程的解决方案
方法1:调用外部脚本(快速实现,无需扩展开发)
- 第一步:新建一个Python脚本
reverse_payload.py,写入如下代码:
# 读取输入的payload,反转后输出,避免多余换行 print(input()[::-1], end='')
- 第二步:打开Burp Intruder的「Payloads」标签,找到「Payload Processing」模块,点击
Add按钮 - 第三步:在弹出的处理类型选择框中,选择「Invoke external process」,填入对应系统的执行命令:
- Windows:
python.exe 脚本存储的完整路径\reverse_payload.py - Mac/Linux:
python3 /脚本存储的完整路径/reverse_payload.py
- Windows:
- 第四步:调整处理器顺序,如果你需要先编码再反转,就把这个外部调用处理器拖拽到编码处理器的后方即可
- 注意:需确保系统已安装Python,且执行命令中的Python路径和脚本路径正确,避免Burp调用失败。
方法2:自定义Burp扩展(适合高频使用场景)
如果你经常需要用到反转payload的功能,可以开发一个轻量扩展,注册为内置的payload处理器:
- 新建扩展脚本
payload_reverser.py,写入如下核心代码:
from burp import IBurpExtender, IIntruderPayloadProcessor class BurpExtender(IBurpExtender, IIntruderPayloadProcessor): def registerExtenderCallbacks(self, callbacks): self._callbacks = callbacks self._helpers = callbacks.getHelpers() # 设置扩展名称 callbacks.setExtensionName("Full Payload Reverser") # 注册Intruder payload处理器 callbacks.registerIntruderPayloadProcessor(self) def getProcessorName(self): # 处理器在Burp菜单中显示的名称 return "Reverse full payload string" def processPayload(self, currentPayload, originalPayload, baseValue): # 转换字节为字符串 payload_str = self._helpers.bytesToString(currentPayload) # 反转字符串 reversed_str = payload_str[::-1] # 转换回字节返回 return self._helpers.stringToBytes(reversed_str)
- 打开Burp的「Extender」标签,点击「Add」,选择扩展类型为Python,加载上述脚本即可。
- 后续在Payload Processing的添加菜单中,就能直接选择名为
Reverse full payload string的自定义处理器,无需再调用外部脚本。
说明:Burp自带的
reverse substring功能仅支持固定偏移的子串反转,无法适配长度不固定的全payload反转需求,上述两种方法均支持任意长度的payload反转操作。
内容的提问来源于stack exchange,提问作者Power_tile
相关产品推荐
相关产品推荐

