在rfc1928中,首先,客户端必须向服务器发送消息:
client send to server:
+----+----------+----------+
|VER | NMETHODS | METHODS |
+----+----------+----------+
| 1 | 1 | 1 to 255 |
+----+----------+----------+
,然后服务器应返回以下消息:
+----+--------+
|VER | METHOD |
+----+--------+
| 1 | 1 |
+----+--------+
所以我正在使用命令行进行测试:
$ echo -e '0x01''0x01''0x01' | nc test.com 30
此命令应该返回给我
0x01 0x01
但是我什么也没给我
答案 0 :(得分:0)
数据包格式图中出现的十进制数字代表相应字段的长度(以八位字节为单位),而不是您应该使用的值。
socks5代理的版本字段应为0x05
。 NMETHODS和METHODS的值取决于您要检查的方法。
最后,响应消息的原始输出由不可打印的字符组成,因此,即使它在那里,通常也看不到它,并且显然您需要以CR-结尾netcat的输入LF或永远等待,以便它实际上发送邮件。
因此,总而言之,要检查方法0x00
(不进行身份验证),您可以执行类似的操作
printf "\x05\x01\x00\r\n" | nc test.com 30 | hd
并获得
00000000 05 00 |..|
00000002
成功。