BIG-IP / 网络工程 · 3月 16, 2021 0

从ASM设置来学习几种基于HTTP协议的攻击方式

Multiple host headers

请求头插入多个Host值,让web服务器不知道该用户具体要访问哪个。
※这玩意儿怎么模拟啊?Python的字典/JSON都要去除重复key……

多头部/参数请求

当请求中头部/参数过多时有可能导致web服务器难以处理导致崩溃。

Bad host header value

有些智障的web服务器在返回报错html页面时会把请求的Host值加到页面里。如果Host的值是JS代码的话……

Unparsable request content

在HTTP请求中插入奇怪的(不符合格式的)内容。弱鸡的web服务器解析不了,原地爆炸。

High ASCII characters in headers

为了防止请求中用来搞破坏的内容被发现,有些人会拿一些打不出来的字符做伪装。(英语以外的语言感觉受到了歧视)

Null in request

除了在二进制中,请求中任何地方的空值(null byte)都可以被拿来干坏事。当后端有处理字符串的app时,把空值(\0)传递给这些app会导致app认为字符串已经结束从而中止处理。

Bad HTTP version

版本小于0.9的HTTP漏洞较多,坏人很喜欢。

奇怪的Content length

请求的内容长度最起码也应该是个正数。如果是什么别的东西,弱鸡服务器解析不了,原地爆炸。

Host header contains IP address

如果一个请求的Host的值是IP地址,说明请求的发起方不知道域名→地址是随机/按规则生成的→发起方是机器人,可能是在随机传播蠕虫病毒。

No Host header in HTTP/1.1 request

没有Host属性的请求很可能不是人类发起的。

Several Content-Length headers

在请求中插多个Content-Length肯定是想干坏事。

Header name with no header value

没有value的header name可能会搞崩一些弱鸡应用。