我正在做一项任务,我们必须在我们创建的 dns 服务器上模拟 kaminski 攻击。我目前正在尝试生成伪造的 dns 响应数据包有效负载。使用 dnslib 我正在生成一个数据包,然后 pack() 结果。这给了我一个十六进制文字:
'\xcf\x90\x85\x80\x00\x01\x00\x01\x00\x00\x00\x00\x03abc\x03com\x00\x00\x01\x00\x01\xc0\x0c\x00\x01\x00\ x01\x00\x00\x00\x00\x00\x04\x01\x02\x03\x04'
我不相信这是有效载荷数据的正确格式。具体来说,我认为我需要放弃所有“\ x”,所以我的流将是 cf 90 85 80 ...
不幸的是,我似乎无法做到这一点。字符串操作工具似乎不适用于文字,并且通常的文字-> 字符串转换 (literal_eval) 失败并出现错误:
TypeError: compile() expected string without null bytes
我尝试过的其他转换 (int(packet,0)) 失败,因为部分文字是文本(导致奇数长度)。
可能有一个非常简单的解决方案,有什么帮助吗?