Обнаружение нестандартных заголовков в API с помощью фильтров Burp Bambdas

Что, если я скажу вам, что многие API используют нестандартные пользовательские HTTP-заголовки для управления бизнес-логикой и поведением?

Одним из простых способов увидеть такие заголовки в Burp, является применение шаблона для Bambdas:

if( !requestResponse.hasResponse() )
{
return false;
}

String[] standardHeaders = {
"accept-patch",
"accept-ranges",
"access-control-allow-credentials",
"access-control-allow-headers",
"access-control-allow-methods",
"access-control-allow-origin",
"access-control-expose-headers",
"access-control-max-age",
"age",
"allow",
"alt-svc",
"cache-control",
"clear-site-data",
"connection",
"content-disposition",
"content-encoding",
"content-language",
"content-length",
"content-location",
"content-range",
"content-security-policy",
"content-transfer-encoding",
"content-type",
"cross-origin-embedder-policy",
"cross-origin-opener-policy",
"cross-origin-resource-policy",
"date",
"delta-base",
"etag",
"expect-ct",
"expires",
"feature-policy",
"host",
"im",
"keep-alive",
"last-modified",
"link",
"location",
"pragma",
"proxy-authenticate",
"public-key-pins",
"referrer-policy",
"retry-after",
"server",
"set-cookie",
"strict-transport-security",
"tk",
"trailer",
"transfer-encoding",
"upgrade",
"vary",
"via",
"warning",
"www-authenticate",
"x-content-type-options",
"x-frame-options",
"x-permitted-cross-domain-policies",
"x-xss-protection"
};

List headersList = Arrays.asList(standardHeaders);

var headers = requestResponse.response().headers();

List unexpectedHeaders = new ArrayList();

for( var header : headers ) {
var headerName = header.name().toLowerCase();
if( !headersList.contains( headerName ) ) {
unexpectedHeaders.add( headerName );
}
}

if( unexpectedHeaders.size() > 0 ) {
requestResponse.annotations().setHighlightColor( HighlightColor.GRAY );
requestResponse.annotations().setNotes(
"Non-standard Headers: " + String.join( ",", unexpectedHeaders )
);
}
else {
// Maybe don't trample on existing Notes in the future??
requestResponse.annotations().setHighlightColor( HighlightColor.NONE );
requestResponse.annotations().setNotes("");
}

return true;


Подробнее про составление этого шаблона и возможности по его кастомизации читайте тут.

А если вы ничего не знаете о фильтрах Bambdas, то рекомендую вам ознакомиться со статьей о написании фильтров Bambda Like a Boss. В ней подробно описано, что это такое, почему вас это должно заинтересовать и как начать с этим работать.

#web #tools #burp
👍 22
😢 1
2 230 6.9K

Обсуждение 2

Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.

Обсудить в Telegram