ss-panel-v3-mod中的%5m

最近免流势头自从wooyun的‘极客小白’(好像是叫这个名字)提交漏洞后越来越猖狂了(知道的人多了),更有甚者搭建云免卖,照成运营商的损失我觉得那些搭免流卖的保护好自己的隐私吧。不是不报时候未到啊。。。
扯远了。。。。
我自己也有用免流,后来跑外省了,电信3爱用不了了。。然后群里瞎玩听说ssr免流挺方便,就测试了下ssr的混淆有没有效果,电信成功识别成3爱。。看样子回本省了还可以玩玩。。。
再次扯远。。。。
后来玩着玩着就跑到ssr的mysql版本。但是ssr多人使用分配的端口是随机的,然后移动免流需要用到137,138端口,联通空中卡需要53端口,这就造成这些特殊端口只能供一个人用。。其实本来ssr的目的只有一个就是你懂的,后来不知怎么地变成免流的主流了。。。
后来听说魔改版本可以一个端口多个用户使用。。我就去测试搭建了。。测试后发现他利用混淆参数来识别每一位用户。。翻开.config.php文件可以看到

#多用户混淆参数后缀
$System_Config['mu_suffix']='baidu.com';

#多用户混淆参数表达式,%5m代表取用户特征 md5 的前五位,%id 代表用户id,%suffix 代表上面这个后缀。
$System_Config['mu_regex']='%5m%id.%suffix';

中文写得很明显了。。。最后的那个混淆参数是“取了用户特征的md5值的前5位+用户id+suffix值(就是上面设置的baidu.com)。。
本来是懒得去关这些屁事的。。后来日了一个免流站,为了不让站长发现,不说了,直接点就是我想要知道取了用户特征的md5值的前5位这个值是怎么来的。。去作者的github留言,作者爱鸟不鸟地回答也不明确告诉我,哎,不想说就明说嘛。。看样子只有靠自己---查源码。。。
终于在app\Models\User.php里找到了蛛丝马迹。

public function getMuMd5()
{
$str = str_replace("%id", $this->attributes['id'], Config::get('mu_regex'));
$str = str_replace("%suffix", Config::get('mu_suffix'), $str);
preg_match_all("|%-?[1-9]\d*m|U", $str, $matches, PREG_PATTERN_ORDER);
foreach($matches[0] as $key)
{
$key_match = str_replace("%", "",$key);
$key_match = str_replace("m", "",$key_match);
$md5 = substr(MD5($this->attributes['id'].$this->attributes['passwd'].$this->attributes['method'].$this->attributes['obfs'].$this->attributes['protocol']),
($key_match < 0 ? $key_match : 0),
abs($key_match));
$str = str_replace($key, $md5, $str);
}
return $str;
}

看见没有。。。$md5 =@^$^*@#^(p...一串。。。
这么简单也不说了。。。写完休

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注