首先,我说说几个早已存在的奇迹私服GS漏洞:
<<早已存在的漏洞>>
1.ASP后台漏洞,ASP植入式指令攻击可以饶过密码验证部分
2.后台config.asp漏洞,用网页小偷可以把整个存放在IIS目录下的网页下载回去,再打开你的config.asp看,就知道你的操作SQL的帐号密码了
3.远程SQL连接漏洞,在查询分析器中输入指定IP,帐号以及密码,就可以进去指定IP的SQL中
4.奇迹私服服务端的公版帐号密码漏洞,帐号/密码:admin/thdzlqhem, MuOnlineAdmin/wkfwkRnfRnf
5.远程仓库编辑器,用公版帐号密码可以登陆
6.专用登陆器隐藏端口漏洞,启动本地防火墙,设置一切进出数据进行日志纪录,使用登陆器连接到对方的服务器,再退出,就可以在日志文件找到端口了,用窗口软件登陆到对方服务器,返回windows在CMD界面下输入netstat,可以查看跟游戏服务器的连接情况
7.美亚公版登陆器式反外挂系统漏洞,2台机器,其中一台登陆解锁,再用另一台使用外挂连接(1.05已修正,以下再详细说明用其他方法使用该漏洞)
8.奇迹私服复制BUG漏洞:(复制出来的东西只要不在同一个身上就算开了复制物品检测是不起作用的!)先一个角色和卡隆说话~然后另一个角色和那和卡隆说话的角色交易1次~等自动取消交易了再交易1次!和卡隆说话的角色按OK~还有个选择OK或取消在上面~把身上的东西放1件上去,再拿下来~和卡隆说话的角色按取消!那个有需要复制的人走开 把东西全放仓库~再去交易他一次(和卡隆说话的人按OK)然后有需要复制东西的人按取消,东西就有了(卡隆可以为其他会弹出对话框的NPC)
9.建立相同账号的漏洞
10.中文帐号共用相同仓库的漏洞
以下内容为重点,也就是近期用来黑SF所使用的手段(并非一般的后台漏洞,ASP漏洞)
★GS端连接漏洞★:
首先详细了解MU服务器端的其中几个服务端的作用:
(1)CS端:开放用户与游戏服务器进行连接,CSdataserverlist.dat的内容为
0 "服务器名" "所连接的服务器IP" 55901 "SHOW"
端口55901为游戏服务器连接端口
(2)Gameserver端:读取data的所有关于主配置,商店,刷怪文件,奇迹私服客服端就是与其进行通讯
(3)Dateserver端:数据服务器,默认IP为55960/55962,与SQL数据库连接,与Gameserver端通讯
下面将详细解释如何利用这2个端进入指定SF数据库的方法:(模拟演示)
首先,H国开发人员并没有预料到服务器端会泄露的事件,因此,Gameserver端与Dateserver端之间的通讯并没有加密,就是说,不需要使用任何帐号/密码就可以互相通讯,OK,那就本地打开Gameserver去连别人的Dateserver吧:
〓准备工作〓
<1>假设找到一个SF的,其IP为mu.com,用X-SCAN扫描对方服务器端口40000-60000,知道对方使用默认的Dateserver端口55960
<2>打开本地服务器端目录datacommonserver.cfg,在里面找到
ChaosEventServer = 127.0.0.1 ; 游戏事件对应服务器
DevilSquareEventServer = 127.0.0.1 ; 恶魔广场事件服务器
EventChipServerIp = 127.0.0.1 ; 天空宝箱事件对应服务器
由于Gameserver启动会寻找这3个指定IP的服务器,但是现在只需要开启Gameserver,那就把127.0.0.1改为对方的ip:mu.com吧,对方开SF的无理由不启动这3个服务器端,所以借来用用就OK了,自己不用开,再来看看Gameserver的快捷方式是如何写:(一般都是这样写的)
D:MuServerGameServerGameServer.exe 127.0.0.1 55970 127.0.0.1 55960 55901
一般来说开SF的都是这样写就OK了,因为所有服务器都是本地运行,所以只需要把IP都指向本机IP,现在要进入mu.com的数据库,必须改一下
D:MuServerGameServerGameServer.exe mu.com 55970 mu.com 55960 55901
在这里有朋友会问55960是Dateserver端口,55901是Gameserver连接端口,55970是什么端口?
忘记了吗?D:MuServerJoinserverJoinServer.exe /p55970 /ca127.0.0.1 /cp55557
看到了吧,这个55970就是Joinserver的连接验证端口,用来在SQL数据库中验证帐号和密码!把Gameserver的快捷方式中的也指向对方的验证服务端Joinserver吧,因为你的帐号是注册在对方的数据库中的
好了,现在启动修改后的Gameserver吧!
数据库与游戏主服务端接驳成功了吧,好,怎么进入自己的Gameserver呢?这样来,打开你的CS目录,找到serverlist.dat文件,把其中的内容
0 "服务器名" "所连接的服务器IP" 55901 "SHOW"
改为:
0 "服务器名" "127.0.0.1" 55901 "SHOW"
保存!为什么要改为127.0.0.1?那是因为你的Gameserver是在本地运行的!你要连自己的Gameserver端,而不是别人的!
接着把修改好的CS也打开吧,好了,运行MU客服端,连接127.0.0.1吧!连接的Joinserver既然是对方的,那么必须使用在对方注册了的帐号登陆,但是你的Gameserver读取的是本地data中设置的内容,那就改个经验10000倍吧,不用太多,商店喜欢出售什么就出售什么,把自己全部搞好后,再连接过去别人的SF上就可以威风了!
有些SF用GS连出来会卡在读取对方战盟数那里,反复再试多次,这个是由于对方服务器的网络资源紧张,卡在那里了;另外有些SF用GS连过去是显示白屏,那就证明已经做好了IP安全策略,GS连不过去--_--0
【GS端漏洞利用的瑕疵】
由于只是本地运行Gameserver,其他服务器端
Joinserver(帐号验证服务端)
WZ_MU2003_EVENT_SERVER(游戏娱乐事件服务端)
DevilSqure_EventServer(恶魔广场服务端)
都是借对方的,
因此在对方的Joinserver端中会出现额外的Gameserver在连接中,而且对方的Gameserver中会有出现额外的连接信息
解决办法:
本地再运行Joinserver,WZ_MU2003_EVENT_SERVER,DevilSqure_EventServer这3个端吧!
那么Gameserver的对应配置文件(datacommonserver.cfg)里面的内容就必须修正一下:
ChaosEventServer = 127.0.0.1 ; 游戏事件对应服务器
DevilSquareEventServer = 127.0.0.1 ; 恶魔广场事件服务器
EventChipServerIp = 127.0.0.1 ; 天空宝箱事件对应服务器
由于WZ_MU2003_EVENT_SERVER,DevilSqure_EventServer为本地运行,所以IP都改为127.0.0.1
另外Joinserver也采用本地运行,那么Gameserver的快捷方式的内容也必须改为:
D:MuServerGameServerGameServer.exe 127.0.0.1 55970 mu.com 55960 55901
前面的55970对应的是本地的Joinserver,所以必须指向127.0.0.1
而后面的55960是对方Dateserver端口,所以就必须指向对方的IP
好了,再次运行,总共运行5个服务器端,就可以很隐蔽地连接到对方数据库端Dateserver了!
这样对方的Joinserver就不会出现额外的连接信息了!而且,还可以修改CS中serverlist.dat的内容为
0 "服务器名" "自己的公网IP" 55901 "SHOW"
这样保存后,还可以开放外网给朋友进来一起爽!
■GS端漏洞利用的扩展■
扩展1.只要知道某帐号就可以登陆:
Joinserver的作用只是单纯地对登陆的帐号跟指向的SQL数据库进行对比验证,而且Joinserver是在本地运行的,数据库是指向自己的SQL数据库,那么只要在你的数据库中注册一个帐号,账号名字跟对方服务器要黑的那个帐号是一致的,密码用在本地注册的那个就可以通过验证!通过验证后,进入的却是对方服务器上的Dateserver数据端指向的数据库!
扩展2.复制物品(非利用MU漏洞复制)
由于Joinserver分别有2个:一个是对方的,一个是本地运行的;并且Joinserver只是起了单纯的认证作用,那么就意味着可以同时通过2边的Joinserver来进入一个Dateserver了!假设本地进入的为人物A,通过对方进入的为人物B,人物A/B把身上东西取下,存放进仓库,2个人物谁最后退出游戏,数据就保留谁的,那只要身上空了的那个首先退出,身上还有装备,仓库又多了一套的那个最后退出,复制就成功了!但是,服务器端开了复制物品检测功能怎么办?别忘记了,还有本地的Gameserver呢?本地的服务器端主配置文件可以把复制物品检测功能关了,再登陆进本地的Gameserver,从容地把复制物品拿出来,分给其他人,只要复制物品不碰到一起,就不会出现断线的情况!
扩展3.突破美亚公版登陆器式反外挂系统漏洞1.05
只要理解了上面复制物品的原理后就知道了吧?1.05加了再多的验证也没有用,还是利用2个人同时上同一个帐号的方法,这样一个上了对方服务器先解封帐号,那么另一个本地上就是了,外挂随便用,因为CS也是本地启动的,CS内置的端口没改的话就是44405对不?
★GS端漏洞利用的解决办法★
能看完全文的就知道其实MU的服务器端是如此的脆弱吧,但是其实知道原理了吧,那解决方法也还是有的首先,Dateserver端口是不能用防火墙阻挡的,否则玩家的正常读写数据库也被拒绝了,但是可以用防火墙限制只能本地IP连接;还有设置内外网连接,把Dateserver数据服务端放入内网也是个很好的办法!最简单的方法,打开路由功能,映射Dateserver端口给Gameserver连接就行了;9C之所以不能用这个方法给攻陷,就是因为他的几个服务器端都是分开放不同服务器组的,另外有硬件防火墙,路由器更是自带防火墙功能的...就是知道了他的数据端IP也给路由限制得死死的,不能从外部连接进入,设置IP策略禁止外部IP连接这几个端口也是可行的。
关于防止GS被黑的方法是:开启你的TCP/IP端口筛选,只开放以下这些端口增加安全性,(开设其他服务,端口自己再加入)
TCP/IP筛选端口-> TCP断口
端口80 .... WEB 端口
端口21 .... FTP 端口
端口44405 .... Gameserver 连接端口
端口55901 .... Gameserver连接端口
网上邻居>属性>本地连接>属性>internet 协议(tcp/ip)>属性>高级>选项>tcp/ip筛选>属性 打开tcp/ip筛选,添加需要的tcp,协议,最后设定拒绝除127.0.0.1外的所有IP通讯。
最后补充说明,单纯的更改Dateserver端口是没有意义的,只要使用Xscan就可以把你的所有端口扫描出来
这个漏洞的好处还是有的,异地开个双线服务器组,来协调分流一下在线人数,毕竟单线的话,能进恶魔广场的人实在有限得很。
补充一下,用了GS漏洞连过去如何做个N多人物属性点的改人出来!
datalangchsQuest(chs).txt
这个文本是控制转职任务的一切内容,找到以下内容:
// 任务编号(Quest Type) (Item Type) (Item SubType) 物品数量 (Item Number) 丢弃怪物最低等级(Target Monster) 掉落 怪物最高等级 怪物掉落机率 (1~1000) 任务补场(补偿Type) (补偿 SubType) 补偿物品 数量 (要求条件初期化) 任务初期版本编号 (登入前) 准许执行任务後的版本编号 (登入後) 任务条件完毕後版本编号 任务执行完成後版本编号 (黑魔法师) (黑骑师) (妖精) (魔剑士)
1 14 23 1 45 60 10 200 0 10 0 52 54 55 56 1 1 1 0
1 14 23 1 45 60 10 200 0 10 1 52 54 55 56 0 0 0 1
end
//执行条件 固定值(Type) 任务编号 (Quest Index) 任务条件 (1.升级/2.物品/3.其他 ) NPC编号 (任务 开始 SubType ) 任务名称(Quest Name)
0 1 2 235 "奇迹大陆的3种宝物"
// 转职任务1 任务初期化 任务完成补偿
//任务编号(Quest Type) (Item Type) (Item SubType) 物品数量 (Item Number) 丢弃怪物最低等级(Target Monster) 弃怪物最高等级 怪物丢弃机率 (1~1000) 任务补场(补偿Type) (补偿 SubType) 补偿物品 数量 (要求条件初期化) 任务初期版本编号 (登入前) 准许任
1 14 24 1 62 76 10 201 0 10 0 60 61 62 72 0 1 0 0
1 14 25 1 62 76 10 201 0 10 0 64 65 66 72 0 0 1 0
1 14 26 1 62 76 10 201 0 10 0 67 68 69 72 1 0 0 0
end
看蓝色那个数字10,大家应该都知道上面内容是转职总共获得10+10点的任务吧,把所有的10全部改为需要的数字,例如:改为4000点,那么转职完成后,人物就多出4000+4000点,就是8000点了,够BT了吧!
由于这个控制任务文件也是本地GS所使用的,因此改后在本地GS中成功转职就会得到实际效果--获得N多人物点数,但是如果在经验倍数不高,没开转生的不BTSF,其实很容易看出来是改人,因为登陆会出现(属性点错误)的GS提示!