iT邦幫忙

2023 iThome 鐵人賽

DAY 20
0

爭用條件漏洞(Race conditions)

當網站同時處理請求而沒有足夠的保護措施時,就會發生這種情況。
可能導致多個不同的執行緒同時與相同的資料互動,導致網站中的意外行為。爭用條件攻擊使用精確的時序請求引起有意的碰撞,並利用這種意外行為進行惡意操作。
考慮一個簡單的例子:在線商店允許用戶在結帳時輸入優惠碼以獲得一次性的折扣。應用可能會進行以下步驟:
https://ithelp.ithome.com.tw/upload/images/20231005/2016249128WxbDw4YI.png

  1. 檢查您是否已經使用過此程式碼。
  2. 將折扣應用到訂單總額。
  3. 更新數據庫記錄,以反映您現在已經使用了此程式碼。

https://ithelp.ithome.com.tw/upload/images/20231005/201624918RRH5aUUhb.png

如果用戶試圖在幾乎同一時間內兩次使用此程式碼,可能會出現問題。由於爭用條件,第二個請求可能在數據庫更新之前被處理,導致用戶得到兩次折扣。

為了避免這種情況,開發者需要確保在任何時候只有一個請求可以訪問或修改特定資源。

Lab time

登入之後
https://ithelp.ithome.com.tw/upload/images/20231005/20162491aBFPZfXeaG.png
把一個東西加入購物車,輸入折扣獲取資料
https://ithelp.ithome.com.tw/upload/images/20231005/20162491vqUVyPQ2t3.png
https://ithelp.ithome.com.tw/upload/images/20231005/20162491SFDcQf2gev.png
request 複製很多在一個 Group
點選 Send group(parallel)
https://ithelp.ithome.com.tw/upload/images/20231005/20162491Pcyfb7CTGU.png
https://ithelp.ithome.com.tw/upload/images/20231005/20162491pWzUrqtsJe.png


上一篇
[Day 19]OAuth 漏洞
下一篇
[Day 21]點擊劫持攻擊
系列文
從 Moblie Development 主題被損友洗腦鬼轉 Security 的我真的可以完賽嗎?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言