免責事項:この記事は学習とコミュニケーションのみを目的としており、違法な目的、商業活動などに使用することを禁止します。それ以外の場合は、ご自身の責任で行ってください。侵害がある場合は、通知して削除してください。ありがとうございます。このチュートリアルは、特定の Web サイト向けに特別に書かれたものではなく、純粋に技術的な研究を目的としています。
事例分析
対象ケース: aHR0cHM6Ly93d3cuY2VhaXIuY29tLw==
1. 対応インターフェースと難易度
注:フライト検索インターフェース
パラメトリック分析
アプリケーションの Cookie を通じていくつかの Cookie を削除したところ、
acw_tc: set-cookie returns
HMF_CI: set-cookie returns
inter: この値が変更されない場合、データは要求できません。
私たちが入ったとき、彼は最初に 2 回リクエストし、2 つの Cookie 値を返したことがわかります。inter
Cookie は newCheckToken を通じて返されました。
これで終わりです。引き続き見てみましょう
copycurl のコードが実行できないことがわかります。何度も試してみましたが、ブラウザから再試行することは可能です。 request で送信されたリクエストは通過できません。最初は
、ページのめくり方がわかりません
。パケット キャプチャの比較により、この値が毎回変更されていることがわかりました。前半は変更されていないことがわかります。コピーして再度リクエストできます。どのように変更されるかを見てみましょ
うここで He がタイムスタンプを 1e9 で割ったことがわかります
ので、それを修正し、
Cookie から返された値を加算することでタイムスタンプを渡すことができることがわかりましたが、
送信されたデータには上海からのデータが含まれていないことがわかりました。北京。分析により、それがリファラーであることが判明しました。この値は上で送信されたことがわかりましたが、searchKey 値は暗号化されています。検索を続けたところ、メインのブレークポイントにあることがわかりました。キャンセルできます
。
設定でこの設定を変更することで、ソースを介して main.js をフォーマットします
。次のブレークポイントでダウンロードおよびアップロードできることがわかります。ブレークポイントを通じて、選択した都市とチケットのデータであることがわかり、変換は次のようになります。エンコードを介して実行されます.base64, そして r を結合します
. r の値は先頭で固定されているため、それも修正できます. 実行を続けると、
shakehand の値が kill されるとデータがなくなることがわかりますが、インターフェイスが異なることを除いて、常に同じであるため、直接確認する必要があります。インターネットで Dafa を検索すると、リンクの後半が値で接続されていることがわかります
。は結合されたデータの md5 です。オンラインで試すことができます。ネイティブであれば、Python で直接復元できます。ネイティブであることがオンラインでわかり、Python で呼び出され、関数として書きまし
た
def get_md5(data):
md5 = hashlib.md5()
md5.update(data.encode('utf-8'))
return md5.hexdigest()
md5 で暗号化した後、完全に実現可能であることが判明したため、この問題はここで終了です。!!
バイバイ!!!
結果を示す
コード分析
備考:簡単すぎるのでコードは公開しません、主にこのような問題に遭遇した時の考え方について話します