我有一个15岁的网络游戏,当它打开时,你可以输入你的用户名和密码来连接游戏服务器。在游戏的网站上,您始终可以看到哪些用户已连接。
我想在我的应用或网站上设置一个按钮,让用户无需先启动游戏即可与服务器连接。
在Wireshark的帮助下,我知道HTTP请求:
POST http://registry.mygame.com/userverification_web.php HTTP/1.0
Accept: \*/*
Accept-Language: sv
Content-type: application/x-www-form-urlencoded
Accept-encoding: gzip, deflate
User-Agent: mygame
Host: registry.mygame.com
Proxy-Connection: close
Pragma: No-Cache
data=0AQ7aA0iQQQQQQZSKOds1ZX280kW2lCznNUD9wjIInF2pX114v8E0bdRZtVMzkkdCiQeSTysCJYUjVGMYTzdMlOe0x2uhE30<MmnhP5ZZYQQ
以下链接将完全符合我的要求
但我需要知道如何使用用户名和密码动态构建链接或请求。
我发现数据参数总是会改变,当用户名和密码总是相同时。
以下是un = 用户和pw = 传递的10个示例:
0AQ7aA0iQQQQQQZSKOds1ZX280kW2lCznNUD9wjIInF2pX114v8E0bdRZtVMzkkdCiQeSTysCJYUjVGMYTzdMlOe0x2uhE30<MmnhP5ZZYQQ
eA0QQAiAQQQQQQZSdt3B>u7K9HLkiqtNF5yfaJdi2wO>BeyE4kh>lGJY58wWDspycSu>HXckytHjk2CmNuiWgd0vH2>yJkkf3kApwCtikQQQ
eaV<eVilQQQQQQZSdV7m148ZQPHlPqol4H>CMbMAx>wi7LPv0z29zQh2QPpSuot0ivEPYtJmvkjJG9iMc3mNo3xz24<rx9v01PptOa<ILYQQ
SSo00l<iQQQQQQZSzwpUPC7moyJnbnBwhBwvFWSmdbIYDcTmD9aA2Nt46Ahz>SAdUpR2fsp5EuXyTZXSxKQUZ3DKHAJ1xU>Az9kEtBi7fjQQ
oCoCa<e>QQQQQQZSb7rDbY6m2WqZiq0>VdIUPQ37XlnPL1Hx27EKalQL2eh9qHEXjKZm4UCNdCMrXtcw>LVnw0jquYSXI53fMwsXnWJOgQQQ
V77l0Qa1QQQQQQZSM0GEa2KWpXmIlxnkmdThdy7XpTsbKiqKsRNGqzzUVS<Xkk1yk9xvIUHXogcZTalOtCS6N0MrIsrtDlPdy5fkD355xYQQ
VQQle7ZVQQQQQQZSW09bHYjoICZ>ma1G1AYQk34P5aozsb6Q7WAcu5wr2pwa6gWACx0x8hC6rmysq6S2AkYehy<w4JOsW<cJP8gruWROxYQQ
Zi7oeZeQQQQQQQZSan<g9HK74Ap4pAatxM6GPxIv3MYc4byvtBo6D5W7X7iCtVh377NabGBOPlAPrdUh5<dgKaxFKxBbr3Du4NwicGvvXTQQ
eQAiS7o>QQQQQQZSwqZCtiR1>G>FE0hdkye>ywjpe2D6Q>6dxZWrj5Szx0F4KikHdA3hGS8BZuakyD4Ya8OX7poOe1fDaqMmKqcoZiAZsjQQ
QlCZeZSSQQQQQQZSXOKdnNFTDy2Y9Ip5qHBiKJKuZjOReSn3xrC8AX1td41dWnDMM1RJSi6eK9NpHqWFq6PfTU7dgNM6Cj9iOWNg>BE<<TQQ
以下是un = 用户名和pw = 密码的5个示例:
a>ViQe>lQQQQQQZ1LgSTcziSVG4vzpOrs7aK90X8NVtDYvCjzZiDd<KsldGgCVRGABKEHf5YMYKb4jL6CMmbGZdxbZS<FTdmrhewdQkGP0ng9xFXBnt>
eiSlSi0SQQQQQQZ1AAoSDC2d8DERRoAaDmEup>ApqrSmBfVGNoZ8IZLBkkFk5VBt0dI5S<985fgvu<sY0uD1VcFno5bYIBWm<1wPOe2je>f9yq2AWH2E
ZoCSS<1CQQQQQQZ1xGPeYGqe7Vmz1puFNGMQdHmU7IRI9sNjOcSha0uW>XKrGfp5c2PcfquV>7x>WTWpRBVBa4A4eiB7GXchw53>UV9Ss6p2QE5paL4a
QiZVoi>AQQQQQQZ1BGDGltDMqisnMzMYnUjysh5iXoNo<5<7AU5rkoVgUPrCVqigjkAK6wbLpo4hVNsO<ORk96LYYZhswqz1vRwSFfsC7DP3JTdyjqBw
aQa1eli1QQQQQQZ15EclRMTZooyBgFp1VHiX8NsoKZjdH6jEVWZ63mCbC2Rd8o2fcscp1WiFhtK9HZvjJHYdpX2xu2adYMgQseHa83a3ycnOo7WiikaB
以下是un = username12345678 和pw = password12345678 的10个示例(两者的最大长度):
Ql>ZaClQQQQQQQe12js2OuA7Xxt04qIIF<tVTqxYmfkBYv7Yl3UAykQiGeMB4Yl9XQUnisQ<DmDlIKK9JDbsjet2K>LbqJrH3jvb3lmt24fxLs5S6oZQRqh13P28xwAGXUvENIBLlQQQ
0aAZo07iQQQQQQe1C>asdqcRlEBTsMfp9<1ntl90myrvvHTlVRZt9HpbHUDp5mBHBjYUjcKORGL38N0GmEtaxH7CxglgH78m72Qd7b3NuwMMJwIlm3zV>FiAIOvT4vHDLRP4W<<MQYQQ
eZAAaQloQQQQQQe19HAT284ZfwNL6piwZ1Vjn>6QL0Rx81Xw1X>barJLavfjmU3PMO1Z<VwheSTmiCbyZ2IQjSt0n6hxKoawYsC2BUCiJUVDPBbD40yN0hknqBiDV2DmcBuIHAU1RQQQ
S>A>ei>>QQQQQQe1WQT2gv511HIyf79uihupoGcDC0rWgV332Q9lTc>Icu5fXrIT5MKBAKgIEJjLRaT1i7JsSUsF<H>tf<pL7d5pX1WLxLV0R7D<aXps1IxCQ<NSE40idMN>IwqaMjQQ
o1V<07<0QQQQQQe18Ie6goKPVT9AUWInpsmCeEnErAOwLxSJOe3FKhkbXwzR3zMTVTMk7sXGBPZsyb7YfgSq19XgwmMFW8HN>8PSsOSPFYA5YqUiPNYGygt5rtg09JWEkb<VGyI>XYQQ
aSAl0<Q0QQQQQQe1I>DpHYNFIkn58DiGpd9C7SQDk<I3u>q24PTG05XUZm3JM>GKbX2qBw9dEjFU17HSiM3WGkqqn6MnF3ondonZ85eubUPp5qof3DKX35RvIABudO6oFM5uA4pYUQQQ
eSola>a0QQQQQQe1kVT<jAANyYlT0G8i6nNg>bRAyERU0BMjZqn9MlPQUcNfN0GKQzHrsikxPSZUWJfMD7okYAu85UVK0CjEc9FU4Fo2bxt07hYu<jqX6Gpf4R5jpRO6ukU6ziDIOQQQ
ZZ<<QCV7QQQQQQe1lYukgPlKXDS9Se1KvoNd3JK9RRZ05pVPobowZupMwXEdGeSH6rEYLORfAbJujIHnjsItw4geLH5Hm7bgpyFmx0MTbqKKF87Rr5IdezDRkcXRYpAF9ZEIBG4cpTQQ
oiQlZZZaQQQQQQe12EmQbyfnlYxJ8<36>cNo4>C1Lp2qJB2gSiCieytdXBZaBId0MA3WbANmh<VLZqIqy0AOhf1QZnEuk7cYAh0Rrs45unuB12BBz4inJgpZ4grtTsV<1CS91eKi3YQQ
QCo<a<eQQQQQQQe11hkx90MGMJtvzUx2JiyOQUyHwPnN03QxZ7FULKnOkPAvb>38psB1RWc8uadYSWkbNraTw5XUxcD0RpT3f7vbu4nfPfoIt7no>XyHpaRwjUvdv<LmvhdT2xbFpTQQ
任何人都知道这里发生了什么?我是否必须关心&#34; gzip&#34;和&#34; deflate&#34;或者这不是解决&#34;代码&#34;?我想知道的是,显然用户名和密码是编码的,服务器必须知道如何解码它。由于&#34;代码&#34;对于相同的凭证似乎永远不会相同我认为在&#34;代码&#34;也必须是一把钥匙。
知道开发人员用于算法的内容吗?也许关键是在QQQQQQ&#34;之前是什么。
我已经用编辑器打开了game.exe文件。游戏似乎是用Visual Studio 6.0编译的,用c ++编写。大多数东西都不可读,但HTTP请求定义是。但这与我在Wireshark看到的相同。我无法看到参数的结果。我所能读到的只是&#34; data =%s&#34;。
答案 0 :(得分:0)
任何人都知道这里发生了什么?
登录数据可能正在进行哈希/加密。解读它的唯一方法是查看网站的原始源代码,或者从游戏的编译机器代码中对算法进行反向工程。
我是否必须关心&#34; gzip&#34;和&#34; deflate&#34;或者这不是解决&#34;代码&#34;?
的兴趣
不,你不必关心那个。所做的就是告诉服务器允许使用gzip或deflate算法压缩HTTP响应。这与手头的问题无关。
我想知道的是,显然用户名和密码是编码的,服务器必须知道如何解码它。由于&#34;代码&#34;对于相同的凭证似乎永远不会相同我认为在&#34;代码&#34;也必须是一把钥匙。
很有可能,是的。另一方面,&#34;键&#34;也可以使用只有游戏和服务器知道的私人秘密进行哈希/加密。
知道开发人员用于算法的内容吗?
仅通过查看编码数据无法知道。
也许关键在于&#34; QQQQQQ&#34;之前的事情。
可能。这可能是分隔密钥和有效负载的分隔符。但是,这仍然没有告诉你实际的关键是什么或如何使用它。
我已经用编辑器打开了game.exe文件。游戏似乎是用Visual Studio 6.0编译的,用c ++编写。大多数事情都不可读
你必须使用像IDA这样的反汇编程序。
但HTTP请求定义是。但这与我在Wireshark看到的相同。我无法看到参数的结果。我所能读到的只是&#34; data =%s&#34;。
使用IDA或其他调试器/反汇编程序工具链,您可以找出传递给%s
参数的内存指针,并向后工作以了解如何分配和格式化该内存。但现在你正在进入低级黑客攻击。