【问题标题】:Reverse Engineering HTTP request逆向工程 HTTP 请求
【发布时间】:2018-05-16 19:39:16
【问题描述】:

我正在尝试解码 Android instagram 应用发送到 graph.instagram.com 的帖子数据。这个问题与此处发现的问题相似:

Reverse Engineer HTTP request

似乎 iPhone 应用程序处理此问题的方式与 Android 应用程序不同,或者自提出该问题以来发生了一些变化。我已经使用 Burp 捕获了流量,似乎主要数据现在以 .gz 文件的形式发送到 IG:

POST /logging_client_events HTTP/1.1
X-IG-Connection-Type: WIFI
X-IG-Capabilities: 3brTAw==
X-IG-App-ID: 567067343352427
User-Agent: Instagram 24.0.0.11.201 Android (23/6.0; 240dpi; 480x854; LENOVO/Lenovo; Lenovo A2016a40; A2016a40; mt6735; en_GB)
Accept-Language: en-GB, en-US
Content-Type: multipart/form-data; boundary=EuG_-5FMs7IwTX7eBzBDIJ9VEteYsO
Accept-Encoding: gzip, deflate
Host: graph.instagram.com
X-FB-HTTP-Engine: Liger
Connection: close
Content-Length: 4206

--EuG_-5FMs7IwTX7eBzBDIJ9VEteYsO
Content-Disposition: form-data; name="access_token"

567067343352427|f249176f09e26ce54212b472dbab8fa8
--EuG_-5FMs7IwTX7eBzBDIJ9VEteYsO
Content-Disposition: form-data; name="format"

json
--EuG_-5FMs7IwTX7eBzBDIJ9VEteYsO
Content-Disposition: form-data; name="cmsg"; filename="a24cc6f3-23f1-438f-aecb-3f201d312c90_1.batch.gz"
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary

í][sÚHý/<ÇÞ¾ª»]µÎÈÎâZ‰M›H[[*!HHÀ"0—©ùïûµ„mƒ2v‚�ÎTRCß/ç|§ïú½VÄÿ«�áµp<’Ní¬Æ-�,A¥œ0"j•×m<?ÂNü‡ñ)A|Ú³$ëÃY~IŽ  ¶À¹ß&Q\%GÛ(–�=a´‹NÕ‰dqû$Ʋ’�Ðn‡B”n˜'Ù2øŽ˜E\ÉhXÅ       ‹"«KOÀCDÙ= ã¨}B»PàÅ$RâÌÊÀúÿ¢Ñ°›ô‚¨Gƒ¢¬G[p£H°PѸ2L¥$¡âmÊCÅ"ò  ÚDçqnK×~8ÆüœÄ½YNtK„Ó°vöŸßkÃ0�Á'Ó°7    ó`4é…Ã$
n“xw‚$OªŠ@¬iRÆÐžÄ„óSiqpÏG�Y¦}º1DÑ¡²dƒG¼˜N Ÿßky0蘖…±Dq‚1—J   p�âŒa]í°
÷È-¦@AgÊ¢¢t©�(Ï$ŒÉ°LGƒX×7^^ÿëÕ*l©Y=áþv5÷¾fE›\êéXÔólõ•\μւw>ei„ŠòË4$7Ú?÷•ÿïyÒùz3ö«[õô*÷Ó‹¥×tæ�OW©Ÿ~IœfÄ\;Kò7šYæÚ7™ÛúÌ�¦Gœæs싹۬/œæ5k4Ôýw½¨Ý,úY”)Ô&Ó¬�è´/°Ó¬/Ý4ZºÍÏ�æ¥Ü™Æ×9qÓkÔ°ÏWŽ}Í»ö€9«Næ§uÒ«ÔI=ä¥ýÄùt½tí/    ¤Gv6ðs¿ïÚ×Ôµ¯ò†}™5Z/ÿOnâØ=î~ºÊtÞN³ŸøÍÏIê‘lØÎ/QçëUm˜Ô‡èïΣÙ0êa4­ÐõmowGY6š€¤é¬Ðþåo蟲“Eí}

--EuG_-5FMs7IwTX7eBzBDIJ9VEteYsO
Content-Disposition: form-data; name="sent_time"

1512267283.408
--EuG_-5FMs7IwTX7eBzBDIJ9VEteYsO
Content-Disposition: form-data; name="cmethod"

deflate
--EuG_-5FMs7IwTX7eBzBDIJ9VEteYsO--

由于某种原因,我无法将“乱码”完全粘贴到二进制文件下方,并且它会在几行后中断。

知道这是如何编码的吗?它应该是 .gz 但 Burp 的输出看起来并不像它。无论如何我可以保存文件以便检查它吗? Burp 和 fiddler 似乎都不支持这样的东西。

【问题讨论】:

  • 您可以使用 fiddler 轻松保存文件!!
  • 我是一个提琴手用户,不知道如何将字节保存到 burp 中的文件中。但是如果你关心的是只获取文件而不管你从哪个软件获得它,我可以帮你!!
  • Any idea how this is encoded? 。正如你已经说过的那样.gz。 filename="a24cc6f3-23f1-438f-aecb-3f201d312c90_1.batch.gz"。还有Content-Transfer-Encoding: binary
  • unable to paste the 'gibberish' below binary fully 。不清楚您如何复制/粘贴。这不是文本吗?
  • @ArsalImam 我将如何使用提琴手检索该文件。我花了几个小时摆弄,但找不到任何东西。

标签: android instagram reverse-engineering


【解决方案1】:

要对其进行解压缩,请使用省略标头检查的充气机

Zlib::Inflate.new(-Zlib::MAX_WBITS).inflate(File.read("*.batch.gz"))

在 ruby​​ 文档中我们可能会读到这个

Zlib::Inflate.new(window_bits = Zlib::MAX_WBITS)

为解压创建一个新的膨胀流。 window_bits 设置历史缓冲区的大小,可以有以下值:

  • 0 - 让 inflate 使用 zlib 标头中的窗口大小 压缩流。

  • (8..15) - 覆盖压缩流中膨胀标头的窗口大小。窗口大小必须大于等于压缩流的窗口大小。

  • 大于 15 将 32 - 添加到 window_bits 以启用 zlib 和 gzip 使用自动标头检测进行解码,或添加 16 以仅解码 gzip 格式(非 gzip 会引发 Zlib::DataError 流)。

  • (-8..-15) - 启用不会生成检查的原始放气模式 值,并且不会在 流结束。

这适用于使用 deflate 压缩数据格式的其他格式,例如 zip,它们提供自己的检查值。

https://ruby-doc.org/stdlib-2.6.3/libdoc/zlib/rdoc/Zlib/Inflate.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-13
    • 2019-02-02
    • 2012-08-26
    • 1970-01-01
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-15
    相关资源
    最近更新 更多