v0.92.1无法正常通过动态IP校验
Opened this issue · 5 comments
BoringCat commented
当锐捷SAM服务器设定需要校验用户IP为动态IP时,dhcp-type选项0,2,3均无法通过。
已知:
- 学校服务器未设置二次认证,官方客户端也无需二次认证
- MentoHUST能成功通过IP校验(但是无法通过客户端校验)
- 服务器认证日志提示:“用户动态IP地址类型绑定错误”
另外,当锐捷服务名为中文时,发送的字符串是UTF-8,但是服务器是GBK。导致命令行无法认证,需要使用iconv转换配置文件编码
nature2608 commented
服务器认证日志提示:“用户动态IP地址类型绑定错误”
这个是因为在start,id,MD5包里面有第二段的mac地址,找出来把这段mac地址覆盖掉就可以。
若提示非法客户端,请使用管理员指定的客户端等。把checkv4.c里面两个长数组替换下,具体参考
https://github.com/shanzhaozhen/mentohust_for_zqu/blob/master/src/checkV4.c
关于服务名的问题,程序应该是直接复制字符串转换成16进制填进去的,没有考虑gbk编码问题,我也在思考这个问题,最简单的就是直接把发送服务名那直接用准确的gbk编码直接覆盖。
你也可以直接使用此项目测试。
rote66 commented
@nature2608 大佬,请问第二段mac地址具体在哪呢
nature2608 commented
@rote66 你可以直接抓包查找看,在v4校验值前面,很好找的。
updateing commented
关于原 issue 所说问题:
- 动态 IP 地址类型绑定错误:请尝试用 master 分支的代码重新编译。其中包含了一个 DHCP 状态位错误的修复。
- 服务类型编码:目前认定属于外部输入问题,请使用
--service "$(echo -n 服务 | iconv -f utf8 -t gbk)"
,后续可考虑加一个类似于--service-as-gbk
的选项来自动转换。