繁体   English   中英

解释填充字符串

[英]Interpreting padded string

我对unicode字符串经验很少。 我什至不确定这是否符合标准。

无论如何,我都使用nmap并运行:

# nmap -sV -O 192.168.0.8 

在我的局域网中的一个盒子上。 Nmap在从开放端口返回的几行上生成了一个字符串,但是由于其格式,我无法理解很多输出。 例如,一个小片段如下所示:

-Port8081-TCP:V=6.00%I=7%D=10/20%Time=52642C3A%P=i686-pc-linux-gnu%r(FourOhFourRequest,37,"HTTP/1\.1\x20503\x20Service\x20Unavailable\r\nContent-Length:\x200\r\n\r\n")%r

我首先想到的是URL编码,需要解码,但这是不正确的。 看起来几乎像是从串行通信中填充? 能够阐明如何解释“ \\ x200”或“ \\ x20503”或经常显示的其他内容的任何人都是“ x \\ 20”。

我考虑过编写一个小的Python脚本来接收整个字符串并使用以下命令将其转换为ASCII:

>>> s = '<STRING>'
>>> eval('\x20"'+s.replace('"', r'"')+'"').encode('ascii')

我在正确的轨道上吗?

您看到的字符串是服务指纹。 它包含已收到的对Nmap发送的各种探测的响应。 如果您认为响应中包含识别信息,请将该指纹提交给Nmap项目,以改善将来的检测。

很有可能发生的情况是该服务未发送任何有用的信息。 例如,您提供的示例没有Server:标头,该标头可以标识HTTP服务器。

要回答有关如何转换此字符串的技术问题:

"HTTP/1\.1\x20503\x20Service\x20Unavailable\r\nContent-Length:\x200\r\n\r\n"

转换为未转义的版本,您可以执行以下操作:

>>> print mystring
"HTTP/1\.1\x20503\x20Service\x20Unavailable\r\nContent-Length:\x200\r\n\r\n"
>>> print mystring.decode('string-escape')
"HTTP/1\.1 503 Service Unavailable
Content-Length: 0

"

由于前面有“ x”,这些数字使人想到十六进制值。 我知道十六进制值实际上以'0x'开头,而不仅仅是x,但我认为值得将它们作为十六进制值并以'0x'开头。 我确实获得了一整页的搜索结果,其中似乎包含这三个值(可能不可避免地会在某个地方出现三个随机值,但又一次,也许不是):

0x200, 0x20503, 0x20

抱歉,这不是一个答案,但是我想我会提到它,因为您没有在您的帖子中提及尝试此问题。 我想发表此评论,但由于某些原因该选项不可用...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM