標籤:資料 request對象 xmlhttp 種類 部分 參數 any 滲透測試 機制
補充概念
AJAX(非同步javascript和XML)
Asynchronous javascript and xml
是一個概念,而非一種新的程式設計語言,是一組現有技術的組合
通過用戶端指令碼動態更新頁面部分內容,而非整個頁面
降低頻寬使用,提高速度
提升使用者體驗
後台非同步訪問
AJAX組件
Javascript:AJAX的核心組件,使用XMLHTTPRequest對象介面向伺服器發起請求,接受並處理伺服器響應資料
Dynamic HTML (DHTML)
早於AJAX出現,通過javascript、CSS等在用戶端修改HTML頁面element,缺點是完全依賴用戶端代碼修改頁面,與伺服器的互動由JavaScript applets完成,AJAX的XHR彌補了他的缺點(如:註冊使用者)
Document Object Model (DOM)
處理html、xml文檔對象的架構,DHTML是一個瀏覽器,DOM作為其一個 實現的介面,定義和管理每個頁面元素obj的Properties、method、event
基於AJAX的WEB應用工作流程
XMLHTTPRequest API建立對象xmlhttp進行訪問
返回內容:Xml、json、html、文本、圖片
多個非同步請求獨立通訊,互不依賴
AJAX架構
JQuery
Dojo Toolkit
Google web toolkit (GWT)
Microsoft AJAX library
目前沒有通用的AJAX安全最佳實務,其攻擊面不為大多數人所知
AJAX的安全問題
多種技術混合,增加了攻擊面,每個參數都可能形成獨立的攻擊過程
AJAX引擎是個全功能的指令碼解譯器,訪問惡意網站可能後果嚴重,雖然瀏覽器有沙箱和SOP,但可被繞過
伺服器、用戶端代碼結合使用產生混亂,伺服器存取控制不當,將資訊泄露
暴漏應用程式邏輯
AJAX對滲透測試的挑戰【不可忽視】
非同步請求數量多且隱蔽
觸發AJAX請求的條件無規律
手動和截斷代理耙梳可能產生大量遺漏
AJAX耙梳工具
ZAP
用戶端代碼審計
源碼 【不一定高效】
Firebug
WEB Service
一種面向服務的架構 (service oriented architecture),便於不同系統整合共用資料和功能
尤其適合不想暴漏資料模型和程式邏輯而訪問資料的情境
無頁面,只是一個web介面,通過http協議
兩種類型的WEB Service
Simple object access protocol (SOAP)
傳統的WEB Service開發方法,xml是唯一的資料交換格式
要求安全性的應用更多採用
RESTful (Representational State Transfer architecture—REST)
目前更多被採用的輕量web service,JSON是首選資料交換格式
WEB Service安全考慮
- 使用API key或session token實現和跟蹤身份認證
- 身份認證由伺服器完成,而非用戶端(因為用戶端源碼可查看)
- API key、使用者名稱、Session token永遠不要通過URL發送
- RESTful預設不提供任何安全機制,需要使用SSL/TLS保護傳輸資料安全
- SOAP提供強於HTTPS的WS-security機制
- 使用OAuth或HMAC進行身分識別驗證,HMAC身份認證使用C/S共用的祕密金鑰加密API key
- RESTful應只允許身份認證使用者使用PUT、DELETE方法
- 使用隨機token防止CSRF攻擊
- 對使用者提交參數過濾,建議部署基於嚴格白名單的方法
- 報錯資訊消毒
- 直接對象引用應嚴格身分識別驗證(電商公司以產品ID作為主索引)
小白日記54:kali滲透測試之Web滲透-補充概念(AJAX,WEB Service)