【问题标题】:HTTP Packets, Whats Happening?HTTP 数据包,发生了什么?
【发布时间】:2011-01-21 14:24:59
【问题描述】:

基本上,我在查看 Motorstorm 排行榜时在我的 PS3 上共享数据包。排行榜以 XML 格式发送到我的 ps3,但只有在我获得授权之后。那么有人可以告诉我这三个数据包之间发生了什么以及我如何在浏览器中复制它吗?

从我的 PS3 到 Sony 服务器的数据包 1

POST /ranking_view/func/get_player_rank HTTP/1.1
Host: ranking-view-a01.u0.np.community.playstation.net
Connection: Keep-Alive
Content-Length: 213
Authorization: Digest username="c7y-ranking01", realm="c7y-ranking", nonce="2SpsV4WABAA=47a2b36030cd94de1190f6b9f05db1bd5584bc2a", uri="/ranking_view/func/get_player_rank", qop="auth", nc="00000001", cnonce="d4eb1eb60ab4efaea1476869d83a6e0b", response="96b55c6e79f84dd41b46eb66bed1c167"
Accept-Encoding: identity
User-Agent: PS3Community-agent/1.0.0 libhttp/1.0.0

<?xml version="1.0" encoding="utf-8"?><ranking platform="ps3" sv="3.15"><titleid>NPWR00012_00</titleid><board>7</board><jid>Panzerborn@a5.gb.np.playstation.net</jid><option message="false" info="false"/></ranking>

数据包 2 索尼服务器对我的 PS3 的响应

Date: Fri, 26 Feb 2010 19:06:12 GMT
WWW-Authenticate: Digest realm="c7y-ranking", nonce="a3PFl4WABAA=6d375259676ec79641448a8032a795b8e12ccae4", algorithm=MD5, stale=true, qop="auth"
Content-Length: 401
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>401 Authorization Required</title>
</head><body>
<h1>Authorization Required</h1>
<p>This server could not verify that you
are authorized to access the document
requested.  Either you supplied the wrong
credentials (e.g., bad password), or your
browser doesn't understand how to supply
the credentials required.</p>
</body></html>

数据包 3 PS3 对索尼服务器最后一个数据包的响应

POST /ranking_view/func/get_player_rank HTTP/1.1
Host: ranking-view-a01.u0.np.community.playstation.net
Connection: Keep-Alive
Authorization: Digest username="c7y-ranking01", realm="c7y-ranking", nonce="a3PFl4WABAA=6d375259676ec79641448a8032a795b8e12ccae4", uri="/ranking_view/func/get_player_rank", qop="auth", nc="00000001", cnonce="58869490a891002d8c56573496274a3a", response="ca3d6f252d4e398b8f751c201a3f8f08"
Accept-Encoding: identity
User-Agent: PS3Community-agent/1.0.0 libhttp/1.0.0

<?xml version="1.0" encoding="utf-8"?><ranking platform="ps3" sv="3.15"><titleid>NPWR00012_00</titleid><board>7</board><jid>Panzerborn@a5.gb.np.playstation.net</jid><option message="false" info="false"/></ranking>

我试图在 Firefox 和篡改标头以及 PHP cURL 中复制它,但我一无所获。我认为这与不断变化的随机数、随机数和响应变量有关 >

【问题讨论】:

  • 对于初学者来说,它们不是 HTTP 数据包——“数据包”是一个 IP 级别的概念。这些是完整的 HTTP 请求/响应。
  • 哎呀,我的错然后 XD 我真的不习惯所有这些数据包嗅探>

标签: http authentication encryption header packet


【解决方案1】:

Nonce、cnonce等与HTTP Digest Authentication相关,HTTP Digest Authentication是一种认证机制,无需发送明文密码即可实现认证。所以如果你想在你的 PS3 游戏中作弊,我猜你首先必须从 MD5 哈希中破解密码。

而且它不叫 HTTPpackets,在第 7 层你通常会说 request/response 或类似的。

【讨论】:

  • 我想我没有说清楚大声笑,我不想作弊。我只想在浏览器中获取 xml 格式的游戏排行榜。这些请求/响应(:))只要求排行榜。没有分数发送到索尼服务器
  • 您可以尝试暴力破解摘要密码 - 它要求您对每个测试密码执行两次 MD5 操作(可以预先计算 HA2),这意味着您可以在每个测试密码中测试数千万个密码第二。如果密码不是太长,您可以通过这种方式找到它。
【解决方案2】:

noncecnonce 的 nonce 看起来像哈希码。

针对作弊者的一种可能的防御机制可能是这样的:

def ps3client_send_score():
    score = "bazillion points"
    nonce = md5(score + "something you don't know about")
    send_to_server(score, nonce)

在服务器端:

def get_client_score(score, nonce):
    if md5(score+"something you don't know about")==nonce:
        accept_score(score)
    else:
        reject_score_and_ban_the_fool_if_he_continues_this()

因此,除非您想花费数周时间尝试在游戏中找到 salt,否则请忘记它。

【讨论】:

  • 这会很有意义,除了那些数据包只接收排行榜数据。所以我不明白为什么会有很多身份验证。我的意思是第二个风暴游戏甚至没有验证排行榜。我只是想要一种方法来刮排行榜,因为第一次风暴没有在线排行榜>
猜你喜欢
  • 2019-04-21
  • 2016-08-06
  • 2021-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多