The Burp Suite User Forum was discontinued on the 1st November 2024.

Burp Suite User Forum

For support requests, go to the Support Center. To discuss with other Burp users, head to our Discord page.

SUPPORT CENTER DISCORD

Headless BurpPro in Docker requires X11

Sven | Last updated: Mar 07, 2023 08:13AM UTC

Hi, I am trying to run Burp Pro within Docker using the following startup command: /usr/lib/jvm/jdk-17/bin/java -Djava.awt.headless=true -jar /home/user/burpsuite_pro.jar --data-dir=/home/user/ --project-file=/home/user/proj01.burp --auto-repair --unpause-spider-and-scanner --disable-auto-update This results into the following stacktrace: burp-burpy-1 | java.lang.InternalError: java.lang.reflect.InvocationTargetException burp-burpy-1 | at java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:87) burp-burpy-1 | at java.base/java.security.AccessController.doPrivileged(AccessController.java:318) burp-burpy-1 | at java.desktop/sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:75) burp-burpy-1 | at java.desktop/sun.font.SunFontManager.getInstance(SunFontManager.java:248) burp-burpy-1 | at java.desktop/sun.font.FontDesignMetrics.getMetrics(FontDesignMetrics.java:266) burp-burpy-1 | at java.desktop/sun.swing.SwingUtilities2.getFontMetrics(SwingUtilities2.java:1242) burp-burpy-1 | at java.desktop/javax.swing.JComponent.getFontMetrics(JComponent.java:1691) burp-burpy-1 | at java.desktop/javax.swing.plaf.basic.BasicLabelUI.getPreferredSize(BasicLabelUI.java:251) burp-burpy-1 | at java.desktop/javax.swing.JComponent.getPreferredSize(JComponent.java:1725) burp-burpy-1 | at java.desktop/javax.swing.plaf.basic.BasicListUI.updateLayoutState(BasicListUI.java:1446) burp-burpy-1 | at java.desktop/javax.swing.plaf.basic.BasicListUI.maybeUpdateLayoutState(BasicListUI.java:1394) burp-burpy-1 | at java.desktop/javax.swing.plaf.basic.BasicListUI$Handler.valueChanged(BasicListUI.java:2815) burp-burpy-1 | at java.desktop/javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:224) burp-burpy-1 | at java.desktop/javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:204) burp-burpy-1 | at java.desktop/javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:251) burp-burpy-1 | at java.desktop/javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:448) burp-burpy-1 | at java.desktop/javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:458) burp-burpy-1 | at java.desktop/javax.swing.DefaultListSelectionModel.setSelectionInterval(DefaultListSelectionModel.java:502) burp-burpy-1 | at java.desktop/javax.swing.JList.setSelectedIndex(JList.java:2232) burp-burpy-1 | at java.desktop/javax.swing.plaf.basic.BasicComboPopup.setListSelection(BasicComboPopup.java:1273) burp-burpy-1 | at java.desktop/javax.swing.plaf.basic.BasicComboPopup$Handler.itemStateChanged(BasicComboPopup.java:1097) burp-burpy-1 | at java.desktop/javax.swing.JComboBox.fireItemStateChanged(JComboBox.java:1257) burp-burpy-1 | at java.desktop/javax.swing.JComboBox.selectedItemChanged(JComboBox.java:1318) burp-burpy-1 | at java.desktop/javax.swing.JComboBox.contentsChanged(JComboBox.java:1365) burp-burpy-1 | at java.desktop/javax.swing.AbstractListModel.fireContentsChanged(AbstractListModel.java:127) burp-burpy-1 | at java.desktop/javax.swing.DefaultComboBoxModel.setSelectedItem(DefaultComboBoxModel.java:94) burp-burpy-1 | at java.desktop/javax.swing.DefaultComboBoxModel.addElement(DefaultComboBoxModel.java:132) burp-burpy-1 | at java.desktop/javax.swing.JComboBox.addItem(JComboBox.java:746) burp-burpy-1 | at burp.zlb.<init>(Unknown Source) burp-burpy-1 | at burp.t0f.L(Unknown Source) burp-burpy-1 | at burp.cx.X(Unknown Source) burp-burpy-1 | at burp.tql.lambda$new$2(Unknown Source) burp-burpy-1 | at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) burp-burpy-1 | at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:771) burp-burpy-1 | at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722) burp-burpy-1 | at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716) burp-burpy-1 | at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) burp-burpy-1 | at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) burp-burpy-1 | at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:741) burp-burpy-1 | at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) burp-burpy-1 | at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) burp-burpy-1 | at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) burp-burpy-1 | at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) burp-burpy-1 | at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) burp-burpy-1 | at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90) burp-burpy-1 | Caused by: java.lang.reflect.InvocationTargetException burp-burpy-1 | at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) burp-burpy-1 | at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) burp-burpy-1 | at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) burp-burpy-1 | at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) burp-burpy-1 | at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480) burp-burpy-1 | at java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:85) burp-burpy-1 | ... 44 more burp-burpy-1 | Caused by: java.lang.NullPointerException: Cannot load from short array because "sun.awt.FontConfiguration.head" is null burp-burpy-1 | at java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1262) burp-burpy-1 | at java.desktop/sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:224) burp-burpy-1 | at java.desktop/sun.awt.FontConfiguration.init(FontConfiguration.java:106) burp-burpy-1 | at java.desktop/sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:706) burp-burpy-1 | at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:358) burp-burpy-1 | at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:315) burp-burpy-1 | at java.base/java.security.AccessController.doPrivileged(AccessController.java:318) burp-burpy-1 | at java.desktop/sun.font.SunFontManager.<init>(SunFontManager.java:315) burp-burpy-1 | at java.desktop/sun.awt.FcFontManager.<init>(FcFontManager.java:35) burp-burpy-1 | at java.desktop/sun.awt.X11FontManager.<init>(X11FontManager.java:56) burp-burpy-1 | ... 50 more burp-burpy-1 | Failed to create Burp project: java.lang.reflect.InvocationTargetException When adding an X11 config for the container, Burp is starting as expected: environment: DISPLAY: $DISPLAY volumes: - /tmp/.X11-unix:/tmp/.X11-unix - /home/user/.Xauthority:/home/user/.Xauthority However, my requirement is to startup BurpPro with "-Djava.awt.headless=true" and not requiring an X11 socket. How could that be archived? Ta Sven

Michelle, PortSwigger Agent | Last updated: Mar 07, 2023 01:49PM UTC