Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 一个色综合网站,天堂网www在线资源链接,久久免费国产视频

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          Etherpad文本編輯器中的代碼執行漏洞

          Etherpad文本編輯器中的代碼執行漏洞

          Etherpad是一個開源的,基于Web的在線文本編輯器,它允許實時協作處理文檔。Etherpad擁有250多個可用插件并具有版本歷史記錄和在線聊天功能,用戶可以使用插件進行自定義。Etherpad非常受歡迎,在全球擁有數百萬活躍用戶。

          研究人員在Etherpad 1.8.13中發現了兩個關鍵漏洞。其中一個是XSS跨站腳本漏洞(CVE-2021-34817),另一個是參數注入漏洞(CVE-2021-34816)。攻擊者可以組合利用這兩個漏洞,以完全接管Etherpad實例及其數據。


          影響

          XSS跨站腳本漏洞(CVE-2021-34817)允許攻擊者接管Etherpad用戶(包括管理員),可被用于竊取或操縱敏感數據。參數注入漏洞(CVE-2021-34816)允許攻擊者在服務器上執行任意代碼,攻擊者可以竊取、修改或刪除所有數據,或針對可從服務器訪問的其他內部系統。

          攻擊者可以在默認配置的Etherpad實例上,利用XSS漏洞獲得管理員權限。之后結合利用參數注入漏洞(CVE-2021-34816),從而在服務器上執行任意代碼。

          聊天消息中的持久性XSS(CVE-2021-34817)

          Etherpad支持在線聊天功能,用戶可以在每個群聊中交換消息。消息存儲在服務器上,每個人都可以查看聊天記錄。

          當用戶打開鍵盤時,聊天消息會在前端渲染,這涉及從該數據創建HTML元素。在渲染期間,聊天消息的userId屬性被插入到DOM中,特殊字符沒有被正確轉義:

          src/static/js/chat.js

          173    const html =174        `<p data-authorId='${msg.userId}' …> …` +
          175        `<span …`;
          176    if (isHistoryAdd) $(html).insertAfter('#chatloadmessagesbutton');
          177    else $('#chattext').append(html);

          在第174行,userId值被用于構建一個HTML標記字符串,隨后該字符串在第176和177行被插入到DOM中。如果攻擊者成功控制了聊天者的用戶ID,那么他們將能夠插入XSS有效載荷,并以受害者用戶身份執行操作。那么攻擊者如何才能控制用戶 ID呢?

          Etherpad還具有處理多種格式的導出/導入功能,包括基于JSON的自定義格式。這種格式的文件可以包含鍵盤內容、它的修訂歷史和所有相關的聊天消息。然后可以通過導入這樣的文件來創建鍵盤的副本。示例導出文件如下所示:

          example.etherpad

          {    
                  "pad:1": {        
                       "chatHead": 0    
                  },    
                  "pad:1:chat:0": {        
                      "text": "Hello World!",        
                      "userId": "aE45C6209"    
                  }
          }

          某些值在導入期間會被驗證,但聊天消息的用戶ID將按原樣使用。由于導入功能默認啟用,攻擊者可以使用該功能創建一個帶有用戶ID的聊天消息鍵盤,用戶ID由任意數據組成。

          當該數據包含HTML標記時,然后將標記插入到DOM中,DOM將執行任何內聯 JavaScript代碼。因此,攻擊者能夠將惡意JavaScript代碼注入聊天記錄,然后在訪問鍵盤時在管理員的瀏覽器中執行該代碼。這使攻擊者能夠在管理員的瀏覽器上下文中發起進一步的攻擊請求。

          插件管理中的參數注入 (CVE-2021-34816)

          Etherpad還具有一個管理區域,可供管理員用戶使用。它允許他們管理插件、編輯設置和查看系統信息。

          管理員安裝插件時,帶有插件名稱的消息會通過WebSocket連接發送到后端。后端然后安裝與該名稱對應的NPM包:

          src/static/js/pluginfw/installer.js

          49    exports.install = async (pluginName, cb = null) => { 
           …      // ...
          52      try { 
           …        // ...
          56        await runCmd(['npm', 'install', /* ... */ pluginName]);
          57      } catch (err) { 
           …        // ...
          61      } 
           …      // ...
          66    };

          在第56行,插件名稱直接被用作npm install系統命令的參數,沒有進行任何驗證或過濾。這使得攻擊者可以從NPM存儲庫中指定惡意包,或者僅使用指向攻擊者服務器上包的URL。

          攻擊者可以制作一個掛接到Etherpad內部的插件,例如創建一個后門API端點,或者只使用一個帶有post-install腳本的包,該腳本將在安裝包后立即執行。因此,攻擊者可以執行任意代碼和系統命令來完全破壞Etherpad實例及其數據。


          總結

          總而言之,當這兩個漏洞被組合利用時,攻擊者可以先使用XSS接管管理員的客戶端,然后通過安裝其所控制的插件來訪問服務器。

          自動化##Python#

          遇到的需求是這樣的,需要頻繁將htm類型的數據轉為Excel表格,這是一個重復性的工作,極大程度上浪費時間和人力,所以我找到了一個解決方案。用Python開發一個桌面的自動化的小工具,雖然實現起來簡單,但是真心好用。今天特意寫篇文章分享給大家。希望你從獲得的是這個思路,里面的功能你可以換成你工作中重復的工作。

          一、背景介紹

          首先 htm 數據是如下這樣的,一個網址。內容在網頁中,這里需要寫爬蟲,獲取網頁中的信息,自動保存到excel ,并輸出excel格式的文件。

          1、需求結果

          2、解析htm里的內容,并保存到excel

          from bs4 import BeautifulSoup
          import pandas as pd
          
          
          class htmToExcel(object):
              def __init__(self, file_name, file_path):
                  self.file_name=file_name
                  self.file_path=file_path
          
          
              def htm_to_excel(self):
                  print(self.file_path)
                  soup=BeautifulSoup(open(self.file_path), features='html.parser')
                  table=soup.find("table")
                  tr_list=table.find_all("tr")
                  th=tr_list.pop(0)
                  title=th.find_all("th")
                  lis=[]
                  for tr in tr_list:
                      data={}
                      td=tr.find_all("td")
                      for i in range(len(td)):
                          data[title[i].text]=td[i].text
                      lis.append(data)
                  df=pd.DataFrame(lis)
                  df.to_excel('{}.xlsx'.format(str(self.file_name).split('.')[0]), index=False)
                  return '轉換成功!'
          
          
          
          
          if __name__=='__main__':
              file_name=input("請輸入文件名字:")
              path='C:/Users/cherich/Desktop/' + file_name
              pross=htmToExcel(file_name, path)
              print(pross.htm_to_excel())

          二、設計窗口

          創建桌面窗口,這里使用tkinter,它是Python 自帶的gui庫,安裝后即可使用。

          1、安裝命令:

          pip install tkinter

          2、利用tkinter完成可視化窗口上傳文件功能:

          from tkinter import Tk, Entry, Button, mainloop
          import tkinter.filedialog
          import htm_to_excel
          from tkinter import messagebox
          
          
          
          def Upload():
              try:
                  selectFileName=tkinter.filedialog.askopenfilename(title='選擇文件')
                  pross=htm_to_excel.htmToExcel(str(selectFileName).split('/')[-1], selectFileName)
                  pross.htm_to_excel()
                  messagebox.showinfo('Info', '轉換成功!')
                  root.destroy()
              except Exception as e:
                  print(e)
                  messagebox.showinfo('Info', '轉換失敗!')
          
          
          
          
          root=Tk()
          root.title('HTM轉Excel小工具')
          root.geometry('+500+300')
          
          
          e1=Entry(root, width=50)
          e1.grid(row=0, column=0)
          btn1=Button(root, text=' 上傳 ', command=Upload).grid(row=1, column=0, pady=5)
          mainloop()

          三、打包exe

          本功能打包成exe的好處是不需要將代碼部署到服務器,直接將打包好的exe發給對方,就能直接使用。對于這種小而輕的功能非常友好。

          1、安裝命令:

          pip install pyinstaller

          2、 打開DOS窗口并切換到demo.py文件的目錄,注意路徑不要有中文:





          在當前目錄下,會生成兩個文件夾:build和dist。dist里面就是所有可執行exe文件,發送快捷方式到桌面,點擊demo.exe就能運行了。

          3、pyinstaller指令的常見可選參數:

          -i 給應用程序添加圖標
          -F 指定打包后只生成一個exe格式的文件
          -D –onedir 創建一個目錄,包含exe文件,但會依賴很多文件(默認選項)
          -c –console, –nowindowed 使用控制臺,無界面(默認)
          -w –windowed, –noconsole 使用窗口,無控制臺
          -p 添加搜索路徑

          四、該注意的坑!

          如果生成exe之后,你發現你的程序異常的慢,請檢查你的導包代碼,盡量不要出現 from ··· import * ,否則每次啟動程序,都會導入大量函數占用大量時間,親測有效。


          今天的文章寫到這里,如果你覺得對你有幫助,歡迎點贊哦~

          用Object.prototype.toString.call()方法,檢證JS參數對象的類型,輸出和用戶交互的信息。


          主站蜘蛛池模板: 亚洲日韩一区精品射精| 国产一区二区三区内射高清| 在线精品亚洲一区二区小说| 丰满岳妇乱一区二区三区| 波多野结衣在线观看一区| 亚洲一区日韩高清中文字幕亚洲 | 精品国产福利一区二区| 无码播放一区二区三区| 国产一区二区精品久久岳√| 爆乳熟妇一区二区三区霸乳 | 日本伊人精品一区二区三区| 亚洲视频一区在线| 波多野结衣中文一区| 国产午夜精品一区理论片| 亚洲一区中文字幕在线观看| 日本精品啪啪一区二区三区| 成人区人妻精品一区二区不卡网站| 水蜜桃av无码一区二区| 国产一区二区草草影院| 中文字幕一区二区三区日韩精品| 日韩精品无码一区二区三区不卡| 国产视频一区二区| 亚洲国产成人一区二区三区| 在线不卡一区二区三区日韩| 精品aⅴ一区二区三区| 狠狠综合久久av一区二区| 亚洲一区二区三区影院| 无码乱码av天堂一区二区| 色婷婷香蕉在线一区二区| 久久久久女教师免费一区| 亚洲一区二区三区高清视频| 一区二区三区四区无限乱码 | 亚洲av永久无码一区二区三区| 卡通动漫中文字幕第一区| 亚洲一区中文字幕在线观看| 在线观看免费视频一区| 国产一区二区三区在线观看免费| 91视频国产一区| 亚洲av无码一区二区三区乱子伦| 国产伦精品一区二区三区免费下载| 精品无码国产一区二区三区AV |