钉钉の Bluetooth 打刻システムでは、管理者は通常、特定の打刻範囲を設定し、ユーザーはその範囲内でのみ打刻できます。しかし、最近、可能性のある脆弱性が発見されました:実際の打刻位置は、ユーザーが打刻をクリックした瞬間ではなく、それ以前のある時点で決定されます。この発見は、2 つの実際のシナリオによって検証されました:1 つは、ユーザーがオフィスエリアを離れた後、打刻範囲外での成功した打刻です。もう 1 つは、打刻に失敗した後、ユーザーが打刻機から離れる途中で再試行し、成功した打刻です。これは、DingTalk の打刻位置の取得ロジックにタイミングの問題がある可能性があり、ユーザーが指定されたエリア外で打刻に成功することを許可していることを示しています。
钉钉の Bluetooth 打刻のバグ分析#
通常の打刻フロー:#
- 管理者は特定の打刻範囲を設定します。
- ユーザーはその範囲内でのみ打刻できます。
問題の発見:#
- DingTalk の打刻位置の取得ロジックに問題があります:実際の打刻位置は、ユーザーが打刻をクリックした瞬間ではなく、それ以前のある時点で決まります。
シナリオの再現:#
-
退勤シーン:
- 時間:午後 6 時半、退勤。
- 操作:
- パソコンをシャットダウンし、オフィスエリアを出る。
- 階段の近くに到着したときに DingTalk を開き、打刻のリマインダーポップアップが表示されますが、すぐに打刻しません。
- 続けて、近くのマンションの周辺まで歩きます。この時点で、以前の打刻のリマインダーポップアップをクリックします。
- 結果:打刻に成功しました。
- 注意:この時点での位置は打刻範囲外です。
- 対照実験:同僚が同じ位置で手動で打刻を試みましたが、勤怠機に接続できませんでした。
-
再度打刻を試みる:
- 操作:
- 打刻機の前に来て、再度打刻を試みます。
- 顔認識ステージで意図的に顔を見せず、打刻に失敗しましたが、打刻失敗のポップアップが表示されました。
- ポップアップを閉じずに、交差点まで歩きます。
- 交差点でポップアップの「再試行」ボタンをクリックします。
- 結果:打刻に成功しました。
- 位置は指定された打刻範囲内ではありません。
- 操作:
結論:#
- DingTalk の Bluetooth 打刻機能には、位置情報の取得タイミングのバグがある可能性があり、実際の打刻位置とユーザーの操作時間が同期していないため、ユーザーが指定されたエリア外でも打刻に成功することがあります。
この記事はMix Spaceからの同期更新であり、xLog にも掲載されています。
元のリンクはhttps://www.laogou666.com/posts/BUG/dingtalkです。