Introducing HTTP Anomaly Rank
嗯,用户让我帮忙总结一篇文章,控制在100字以内,而且不需要特定的开头。首先,我需要快速浏览文章内容,抓住主要信息。 文章讲的是HTTP Anomaly Rank算法,它被集成到Turbo Intruder和Burp Suite中。这个算法能自动排序异常响应,帮助用户快速找到有用的测试结果。看起来这对安全测试很有帮助。 用户可能是一位网络安全专家或者开发人员,他们可能在使用这些工具时遇到了手动筛选响应的问题。所以他们需要一个高效的方法来处理大量数据。 总结的时候,要突出算法的功能、集成的工具以及带来的好处。确保语言简洁明了,不超过100字。 </think> HTTP Anomaly Rank是一种算法,用于自动排序HTTP响应中的异常结果。该算法通过分析响应属性(如状态码、内容长度等)的稳定性来计算每个响应的得分,并将最异常的结果置于顶部。它已集成到Turbo Intruder和Burp Suite中,帮助用户快速发现潜在漏洞或异常情况。 2025-11-11 14:41:53 Author: portswigger.net(查看原文) 阅读量:17 收藏

James Kettle

  • Published: 11 November 2025 at 14:41 UTC

  • Updated: 11 November 2025 at 14:41 UTC

If you've ever used Burp Intruder or Turbo Intruder, you'll be familiar with the ritual of manually digging through thousands of responses by repeatedly sorting the table via length, status code, etc. I've developed an algorithm called HTTP Anomaly Rank which can efficiently pick out the most interesting responses for you.

HTTP Anomaly Rank is now integrated into Turbo Intruder and automatically places the most anomalous findings at the top of the results table without you needing to lift a finger.

We've also integrated this algorithm into Burp Suite's API in release 2025.10, so you can easily use it in your own tools. Since it can efficiently sift through massive result sets, it's particularly useful for anyone who wants to build AI based features.

In this post I'll explain how the algorithm works in depth but first, here's a quick demo:

HTTP Anomaly Rank

HTTP Anomaly Rank evolved from the diffing logic I developed during my Backslash Powered Scanner: Automating Human Intuition research back in 2016. I built Backslash Powered Scanner to discover unknown injection vulnerability classes by recognising subtle differences in responses to payload pairs such as " vs ". Accurately diffing HTTP responses is a notoriously difficult problem as they're often very noisy, but I eventually found a reliable approach based on calculating a large number of response attributes (think status code, line count, exact byte sequence...), identifying which ones are stable, and using these for response comparison. This let me answer the question "Are the responses to these two payloads consistently different", and automate discovery of some really nice vulnerabilities. Check out the whitepaper and presentation for the full details.

HTTP Anomaly Rank scores every response based on how different it is from the others. First, it calculates a weight for every attribute based on how stable it is.

Payload Status Content-Type Word-count CRC32
administrator 403 text/html 812 d753916d
admin 403 text/html 812 5129f3bd
sales 503 text/html 97 710639db
accounting 200 text/html 812 3978f20f
ADMIN 403 text/html 811 9fa1cbc1
root 503 text/html 97 27df2486
test 403 text/html 812 e45449e7

For example, consider the response set above.

  • Status only has two unique values so it gets a high weighting.
  • Content-Type never changes so it's useless
  • CRC32 is unique on every response so it's useless (perhaps the username is reflected)
  • Word-count has three unique values so it's useful but weighted lower than status

The algorithm then looks at every response, and assigns it a score based on how unique the attribute values seen on that response are, combined with how unique it is. In this example, ADMIN ends up with the highest score because it has a unique word-count.

This approach means it can detect and flag responses with tiny discrepancies, even when the overall response content is very noisy - check the video above for an example.

The score increases in accuracy as we collect more responses. The calculation is quite computationally heavy but the algorithmic complexity is O(N) so it scales well. In Turbo Intruder, I made the score only get calculated when the attack is completed to minimise wasted CPU cycles.

Turbo Intruder Integration

Part of my vision for Turbo Intruder is to require as few user clicks as possible. To help achieve this, it will now automatically sort the results table by the anomaly rank column when the attack completes. Hopefully this strategy works for you but if not, you can override it and automatically sort by any column of your choice using table.setSortOrder()

I'm looking forward to announcing some more quality of life updates for Turbo Intruder soon!

If you see the "Anomaly Rank" column but it's always set to 0, that means you need to update Burp Suite. This feature is available in 2025.10 and later.

Let me know how you find it, and if you'd like this feature in Burp Intruder too.

Enjoy!

Back to all articles


文章来源: https://portswigger.net/research/introducing-http-anomaly-rank
如有侵权请联系:admin#unsafe.sh