日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

条件竞争

發布時間:2024/6/3 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 条件竞争 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

“競爭條件”是什么?

競爭條件發生在多個線程同時訪問同一個共享代碼、變量、文件等沒有進行鎖操作或者同步操作的場景中。

開發者在進行代碼開發時常常傾向于認為代碼會以線性的方式執行,但他們忽視了并行服務器會并發執行多個線程,這就會導致意想不到的結果。

線程同步機制確保兩個及以上的并發進程或線程不同時執行某些特定的程序段,也被稱之為臨界區(critical section),如果沒有應用好同步技術則會發生“競爭條件”問題。

條件競爭漏洞其實也就是當同時并發多個線程去做同一件事,導致處理邏輯的代碼出錯,出現意想不到的結果。

條件競爭漏洞一般出現在與數據庫系統頻繁交互的位置,例如金額同步、支付等較敏感操作處。另外條件競爭漏洞也會出現在其他位置,例如文件的操作處理等。

例子1:銀行提現

假設現有一個用戶在系統中共有2000元可以提現,他想全部提現。于是該用戶同時發起兩次提現請求,第一次提交請求提現2000元,系統已經創建了提現訂單但還未來得及修改該用戶剩余金額,此時第二次提現請求同樣是提現2000元,于是程序在還未修改完上一次請求后的余額前就進行了余額判斷,顯然如果這里余額判斷速度快于上一次余額修改速度,將會產生成功提現的兩次訂單,而數據庫中余額也將變為-2000。而這產生的后果將會是平臺多向該用戶付出2000元。

實例:

這是upload-libs上面的一個題,題目代碼如下

  • <?php
  • $is_upload = false;
  • $msg = null;
  • if(isset($_POST['submit'])){
  • $ext_arr = array('jpg','png','gif');
  • $file_name = $_FILES['upload_file']['name'];
  • $temp_file = $_FILES['upload_file']['tmp_name'];
  • $file_ext = substr($file_name,strrpos($file_name,".")+1);
  • $upload_file = UPLOAD_PATH . '/' . $file_name;
  • if(move_uploaded_file($temp_file, $upload_file)){
  • if(in_array($file_ext,$ext_arr)){
  • $img_path = UPLOAD_PATH . '/'. rand(10, 99).date("YmdHis").".".$file_ext;
  • rename($upload_file, $img_path);
  • $is_upload = true;
  • }else{
  • $msg = "只允許上傳.jpg|.png|.gif類型文件!";
  • unlink($upload_file);
  • }
  • }else{
  • $msg = '上傳出錯!';
  • }
  • }
  • ?>
  • 這里是先move_uploaded_file函數將上傳文件臨時保存,再進行判斷,如果不在名單白里則unlink刪除,在的話就rename重命名,所以這里存在條件競爭。?

    我們可以如下進行繞過。

    用burp開啟兩個intruder模塊,一個用于重復上傳,另一個用于重復訪問。

    1:首先,上傳1.php文件,抓包,放到intruder模塊中

    2:然后訪問我們上傳文件后的路徑,抓包,也放到intruder模塊中

    3:設置這兩個intruder的payloads,Payload?type設置為Null?payloads,然后設置訪問次數,我這里設置的50000

    4:同時放兩個intruder模塊,可以看到,訪問了50000次,最后只有4次成功了。其他的訪問次數里,有小部分是狀態碼返回200,但執行出錯。大部分是返回404

    參考文章:測試Web應用程序中的競爭條件

    ? ? ? ? ? ? ? ? ??條件競爭漏洞

    ? ? ? ? ? ? ? ? ??條件競爭

    ?

    總結

    以上是生活随笔為你收集整理的条件竞争的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。