├── .travis.yml ├── .gitignore ├── BappManifest.bmf ├── BappDescription.html ├── src ├── test │ ├── resources │ │ └── burp │ │ │ ├── falsePositives.txt │ │ │ └── testResponse.txt │ └── java │ │ └── burp │ │ └── RegexTest.java ├── burp │ └── match-rules.tab └── main │ ├── resources │ └── burp │ │ └── match-rules.tab │ └── java │ └── burp │ └── BurpExtender.java ├── README.md └── pom.xml /.travis.yml: -------------------------------------------------------------------------------- 1 | language: java 2 | jdk: 3 | - openjdk8 4 | - openjdk11 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /nbproject/private/ 2 | /build/ 3 | /dist/ 4 | /target/ 5 | .idea 6 | *.iml 7 | *~ 8 | .DS_Store 9 | -------------------------------------------------------------------------------- /BappManifest.bmf: -------------------------------------------------------------------------------- 1 | Uuid: 4f01db4b668c4126a68e4673df796f0f 2 | ExtensionType: 1 3 | Name: Error Message Checks 4 | RepoName: error-message-checks 5 | ScreenVersion: 2.0.5 6 | SerialVersion: 13 7 | MinPlatformVersion: 0 8 | ProOnly: True 9 | Author: August Detlefsen 10 | ShortDescription: Passively detects detailed server error messages. 11 | EntryPoint: target/burp-suite-error-message-checks-2.0.0.jar 12 | BuildCommand: mvn package -DskipTests=true -Dmaven.javadoc.skip=true -B 13 | SupportedProducts: Pro 14 | -------------------------------------------------------------------------------- /BappDescription.html: -------------------------------------------------------------------------------- 1 |

This extension passively reports detailed server error messages.

2 | 3 |

Detailed error messages are often not visible during the normal course of testing. Some examples are:

4 | 10 | 11 |

New in version 2.0.1:

12 | 17 | 18 | -------------------------------------------------------------------------------- /src/test/resources/burp/falsePositives.txt: -------------------------------------------------------------------------------- 1 | !function(e){function t(n){if(a[n])return a[n].exports;var i=a[n]={exports:{},id:n,loaded:!1};return e[n].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n=window.atwpjp;window.atwpjp=function(a,o){for(var r,s,d=0,u=[];d on line [0-9]+ 0 PHP Low Certain 3 | Fatal error: 0 PHP Low Certain 4 | \.php:[0-9]+ 0 PHP Low Certain 5 | \[(ODBC SQL Server Driver|SQL Server|ODBC Driver Manager)\] 0 Microsoft SQL Server Low Certain 6 | You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 0 MySQL Medium Certain 7 | \.java:[0-9]+ 0 Java Low Certain 8 | \.java\((Inlined )?Compiled Code\) 0 Java Low Certain 9 | [A-Za-z\.]+\(([A-Za-z0-9, ]+)?\) \+[0-9]+ 0 ASP.Net Low Certain 10 | at (\/[A-Za-z0-9\.]+)*\.pm line [0-9]+ 0 Perl Low Certain 11 | File \"[A-Za-z0-9\-_\./]*\", line [0-9]+, in 0 Python Low Certain 12 | \.rb:[0-9]+:in 0 Ruby Low Certain 13 | Exception of type 0 ASP.Net Low Certain 14 | --- End of inner exception stack trace --- 0 ASP.Net Low Certain 15 | Microsoft OLE DB Provider 0 ASP.Net Low Certain 16 | Error ([\d-]+) \([\dA-F]+\) 0 ASP.Net Low Certain 17 | at ([a-zA-Z0-9]*\.)*([a-zA-Z0-9]*)\([a-zA-Z0-9, ]*\) 0 ASP.Net Low Certain -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Build Status](https://travis-ci.org/augustd/burp-suite-error-message-checks.svg?branch=master)](https://travis-ci.org/augustd/burp-suite-error-message-checks) 2 | [![Known Vulnerabilities](https://snyk.io/test/github/augustd/burp-suite-error-message-checks/badge.svg)](https://snyk.io/test/github/augustd/burp-suite-error-message-checks) 3 | 4 | # burp-suite-error-message-checks 5 | This Burp Suite 1.5+ extension passively detects server error messages in running applications. Some examples: 6 | 7 | - Fatal error: Call to a member function getId() on a non-object in /var/www/docroot/application/modules/controllers/ModalController.php on line 609 8 | - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax 9 | - [SEVERE] at net.minecraft.server.World.tickEntities(World.java:1146) 10 | - System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint) +2071 11 | - c() called at [/tmp/include.php:10] 12 | - Use of uninitialized value in string eq at /Library/Perl/5.8.6/WWW/Mechanize.pm line 695 13 | 14 | Often error messages may go unnoticed by a tester who is only looking at the application UI. This extension is designed to passively detect error messages, even during scanning, spidering, etc. 15 | 16 | Match rules are loaded from a [remote tab-delimited file](https://github.com/augustd/burp-suite-error-message-checks/blob/master/src/main/resources/burp/match-rules.tab) at extension startup. Users can also load their own match rules from a local file or using the BApp GUI. 17 | 18 | ## Building: 19 | `mvn clean install` 20 | -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | com.codemagi 5 | burp-suite-error-message-checks 6 | 2.0.0 7 | jar 8 | 9 | 10 | com.codemagi 11 | burp-suite-utils 12 | 1.2.5 13 | 14 | 15 | junit 16 | junit 17 | 4.13.2 18 | test 19 | 20 | 21 | 22 | UTF-8 23 | 1.8 24 | 1.8 25 | 26 | 27 | 28 | 29 | org.apache.maven.plugins 30 | maven-shade-plugin 31 | 3.1.0 32 | 33 | 34 | package 35 | 36 | shade 37 | 38 | 39 | false 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /src/main/resources/burp/match-rules.tab: -------------------------------------------------------------------------------- 1 | AH[0-9]{5}: 0 Apache Server Low Firm 2 | mod_[\w]+: 0 Apache Server Low Firm 3 | ([A-Za-z]{1,32}\.)+[A-Za-z]{0,32}\(([A-Za-z0-9]+\s+[A-Za-z0-9]+[,\s]*)*\)\s+\+{1}\d+ 0 ASP.Net Low Certain 3 4 | "Message":"Invalid web service call 0 ASP.Net Low Certain 5 | Exception of type 0 ASP.Net Low Certain 6 | --- End of inner exception stack trace --- 0 ASP.Net Low Certain 7 | Microsoft OLE DB Provider 0 ASP.Net Low Certain 8 | Error ([\d-]+) \([\dA-Fa-f]+\) 0 ASP.Net Low Certain 9 | \bat ([a-zA-Z0-9_]*\.)*([a-zA-Z0-9_]+)\([a-zA-Z0-9, \[\]\&\;]*\) 0 ASP.Net Low Certain 4 10 | System.([A-Za-z]{1,32}\.)*[A-Za-z]{0,32}Exception: 0 ASP.Net Low Certain 6 11 | in [A-Za-z]:\\([A-Za-z0-9_]+\\)+[A-Za-z0-9_\-]+(\.aspx)?\.cs:line [\d]+ 0 ASP.Net Low Certain 2 12 | [A-Za-z\.]+\(([A-Za-z0-9, ]+)?\) \+[0-9]+ 0 ASP.Net Low Certain 3 13 | Syntax error in string in query expression 0 ASP.Net Medium Certain 14 | CLI Driver.*DB2 0 DB2 Low Certain 0 15 | DB2 SQL error 0 DB2 Low Certain 0 16 | db2_\w+\( 0 DB2 Low Certain 0 17 | \bdb2_\w+\( 0 DB2 Low Certain 0 18 | \[function.ibase.query\] 0 Firebird Low Certain 0 19 | Dynamic SQL Error 0 Firebird Low Certain 0 20 | Warning.*ibase_.* 0 Firebird Low Certain 0 21 | \.groovy:[0-9]+ 0 Groovy High Certain 22 | org\.hsqldb\.jdbc 0 HyperSQL Low Certain 0 23 | Exception.*Informix 0 Informix Low Certain 0 24 | Warning.*ingre_ 0 Ingres DB Low Certain 0 25 | Ingres SQLSTATE 0 Ingres DB Low Certain 0 26 | Ingres\W.*Driver 0 Ingres DB Low Certain 0 27 | HSQLDB 0 Ingres DB Low Certain 0 28 | \.java:[0-9]+ 0 Java Low Certain 29 | \.java\((Inlined )?Compiled Code\) 0 Java Low Certain 2 30 | \.invoke\(Unknown Source\) 0 Java Low Certain 31 | nested exception is 0 Java Low Firm 32 | java\.lang\.([A-Za-z0-9_]*)Exception 0 Java Medium Firm 5 33 | java.io.FileNotFoundException: 0 Java Low Certain 34 | \.js:[0-9]+:[0-9]+ 0 Javascript Low Certain 35 | JBWEB[0-9]{6}: 0 JBoss Low Firm 36 | ((dn|dc|cn|ou|uid|o|c)=[\w\d]*,\s?){2,} 0 LDAP Low Firm 37 | DB Error: 0 Maria Low Certain 0 38 | \[(ODBC SQL Server Driver|SQL Server|ODBC Driver Manager)\] 0 Microsoft SQL Server Low Certain 39 | Unclosed quotation mark 0 Microsoft SQL Server Low Certain 1 40 | warning.*mssql_.* 0 Microsoft SQL Server Low Certain 0 41 | Driver.* SQL[-_]*Server 0 Microsoft SQL Server Low Certain 0 42 | (\W|\A)SQL Server.*Driver 0 Microsoft SQL Server Low Certain 0 43 | Conversion failed when converting the 0 Microsoft SQL Server Low Certain 0 44 | Cannot initialize the data source object of OLE DB provider "[\w]*" for linked server "[\w]*" 0 Microsoft SQL Server Low Certain 45 | E QUERY\s+\[thread1\] SyntaxError: 0 MongoDB Low Certain 2 46 | uncaught exception: 0 MongoDB Low Certain 47 | You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 0 MySQL Medium Certain 48 | Illegal mix of collations \([\w\s\,]+\) and \([\w\s\,]+\) for operation 0 MySQL Medium Certain 49 | Error: Unknown column 0 MySQL Low Certain 0 50 | Warning.*mysql_.* 0 MySQL Low Certain 0 51 | valid MySQL result 0 MySQL Low Certain 0 52 | MySqlClient\. 0 MySQL Low Certain 0 53 | com\.mysql\.jdbc\.exceptions 0 MySQL Low Certain 0 54 | warning mysql_ 0 MySQL Low Certain 0 55 | 1062 Duplicate entry 0 MYSQL Low Certain 0 56 | client intended to address 0 NGINX Server Low Firm 57 | could not build optimal proxy_headers_hash 0 NGINX Server Low Firm 58 | ReferenceError: 0 Node.js Low Certain 59 | TypeError: 0 Node.js Low Certain 60 | UnhandledPromiseRejectionWarning: 0 Node.js Low Certain 61 | quoted string not properly terminated 0 Oracle Low Certain 1 62 | \bORA-[0-9]{5} 0 Oracle Low Certain 63 | Oracle.*Driver] 0 Oracle Low Certain 0 64 | Warning.*\Woci_.* 0 Oracle Low Certain 0 65 | Warning.*\Wora_.* 0 Oracle Low Certain 0 66 | Warning: oci_parse() 0 Oracle Low Certain 0 67 | at (\/[A-Za-z0-9\.]+)*\.pm line [0-9]+ 0 Perl Low Certain 68 | \.php on line [0-9]+ 0 PHP Low Certain 4 69 | \.php on line [0-9]+ 0 PHP Low Certain 70 | Fatal error: 0 PHP Low Certain 2 71 | \.php:[0-9]+ 0 PHP Low Certain 72 | Undefined (index|variable|offset): 0 PHP Low Certain 3 73 | PostgreSQL.*ERROR 0 PostgreSQL Low Certain 0 74 | Warning.*\Wpg_.* 0 PostgreSQL Low Certain 0 75 | valid PostgreSQL result 0 PostgreSQL Low Certain 0 76 | Npgsql\. 0 PostgreSQL Low Certain 0 77 | org\.postgresql\.util\.PSQLException 0 PostgreSQL Low Certain 0 78 | Traceback \(most recent call last\): 0 Python Low Certain 79 | File \"[A-Za-z0-9\-_\./]*\", line [0-9]+, in 0 Python Low Certain 80 | NameError: 0 Python Low Certain 81 | ImportError: 0 Python Low Certain 82 | IndentationError: 0 Python Low Certain 83 | \.rb:[0-9]+:in 0 Ruby Low Certain 84 | SQL error.*POS([0-9]+).* 0 SAP MaxDB Low Certain 0 85 | Warning.*maxdb.* 0 SAP MaxDB Low Certain 0 86 | \.scala:[0-9]+ 0 Scala Low Certain 87 | SQLite/JDBCDriver 0 SQLite Low Certain 0 88 | SQLite.Exception 0 SQLite Low Certain 0 89 | System.Data.SQLite.SQLiteException 0 SQLite Low Certain 0 90 | Warning.*sqlite_.* 0 SQLite Low Certain 0 91 | Warning.*SQLite3:: 0 SQLite Low Certain 0 92 | \[SQLITE_ERROR\] 0 SQLite Low Certain 0 93 | (?i)Warning.*sybase.* 0 Sybase Low Certain 0 94 | Sybase message 0 Sybase Low Certain 0 95 | Sybase.*Server message.* 0 Sybase Low Certain 0 96 | \(generated by waitress\) 0 Waitress Python server Information Certain 97 | 132120c8|38ad52fa|38cf013d|38cf0259|38cf025a|38cf025b|38cf025c|38cf025d|38cf025e|38cf025f|38cf0421|38cf0424|38cf0425|38cf0427|38cf0428|38cf0432|38cf0434|38cf0437|38cf0439|38cf0442|38cf07aa|38cf08cc|38cf04d7|38cf04c6|websealerror 0 WebSEAL Low Certain 2 -------------------------------------------------------------------------------- /src/test/resources/burp/testResponse.txt: -------------------------------------------------------------------------------- 1 | Fatal error: Call to a member function getId() on a non-object in /var/www/docroot/application/modules/controllers/ModalController.php on line 609 2 | Warning: Invalid argument supplied for foreach() in /home/content/.../admin/model/report/sale.php on line 87 3 | Fatal error: Undefined class constant 'PRODUCT' in 4 | OLE DB provider "MSDASQL" for linked server "INFORMIX_LIBRARY" returned message "[Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed". 5 | Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "INFORMIX_LIBRARY". 6 | You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Details (title, first, last, NRIC, po' at line 1 7 |

Illegal mix of collations (latin1_swedish_ci ,IMPLICIT) and (utf8_general_ci ,COERCIBLE) for operation ’=’

8 | [SEVERE] at net.minecraft.server.World.tickEntities(World.java:1146) 9 | at com.aptrix.pluto.cmpnt.FormatterCmpnt.applyMicroTemplate(FormatterCmpnt.java(Compiled Code)) 10 | at com.aptrix.pluto.cmpnt.FormatterCmpnt.resolveNode(FormatterCmpnt.java(Inlined Compiled Code)) 11 | at sun.reflect.GeneratedMethodAccessor3159.invoke(Unknown Source) 12 | Failed to convert property value of type [java.lang.String] to required type [boolean] for property order; nested exception is java.lang.IllegalArgumentException 13 | SyntaxError: Unexpected token & in JSON at position 52
   at JSON.parse (<anonymous>)
   at parse (/app/node_modules/body-parser/lib/types/json.js:88:17)
    14 | JBoss Web/7.4.10.Final-redhat-1 - JBWEB000064: Error report