sqli-labs———伺服器(兩層)架構
首先介紹一下29,30,31這三關的基本情況:
伺服器端有兩個部分:第一部分為tomcat為引擎的jsp型伺服器,第二部分為apache為引擎的php伺服器,真正提供web服務的是php伺服器。工作流程為:client訪問伺服器,能直接訪問到tomcat伺服器,然後tomcat伺服器再向apache伺服器請求資料。資料返回路徑則相反。
此處簡單介紹一下相關環境的搭建。環境為ubuntu14.04。此處以我搭建的環境為例,我們需要下載三個東西:tomcat伺服器、jdk、mysql-connector-java.分別安裝,此處要注意jdk安裝後要export環境變數,mysql-connector-java需要將jar檔案複製到jdk的相關目錄中。接下來將tomcat-files.zip解壓到tomcat伺服器webapp/ROOT目錄下,此處需要說明的是需要修改原始碼中正確的路徑和mysql使用者名稱密碼。到這裡我們就可以正常訪問29-32關了。
重點:index.php?id=1&id=2,你猜猜到底是顯示id=1的資料還是顯示id=2的?
Explain:apache(php)解析最後一個引數,即顯示id=2的內容。Tomcat(jsp)解析第一個引數,即顯示id=1的內容。
以上圖片為大多數伺服器對於引數解析的介紹。
此處我們想一個問題:index.jsp?id=1&id=2請求,針對第一張圖中的伺服器配置情況,客戶端請求首先過tomcat,tomcat解析第一個引數,接下來tomcat去請求apache(php)伺服器,apache解析最後一個引數。那最終返回客戶端的應該是哪個引數?
Answer:此處應該是id=2的內容,應為時間上提供服務的是apache(php)伺服器,返回的資料也應該是apache處理的資料。而在我們實際應用中,也是有兩層伺服器的情況,那為什麼要這麼做?是因為我們往往在tomcat伺服器處做資料過濾和處理,功能類似為一個WAF。而正因為解析引數的不同,我們此處可以利用該原理繞過WAF的檢測。該用法就是HPP(HTTP Parameter Pollution),http引數汙染攻擊的一個應用。HPP可對伺服器和客戶端都能夠造成一定的威脅。
相關文章
- 三層架構理解架構
- NAS層架構03架構
- 層次式架構案例架構
- 分層架構和SOA架構
- MVC 與三層架構MVC架構
- 探索小程式底層架構原理架構
- 4+2 分層架構 - Ricardo架構
- 架構師之路-https底層原理架構HTTP
- 軟體架構分層方法論架構
- Vue底層架構及其應用Vue架構
- 前端架構思想:聚類分層前端架構聚類
- 區塊鏈的底層架構區塊鏈架構
- docker架構和底層技術Docker架構
- 單體架構、微服務和無伺服器架構架構微服務伺服器
- SpringBoot資料響應、分層解耦、三層架構Spring Boot解耦架構
- 無伺服器架構 - CodeCraft伺服器架構Raft
- 計算機的層次化架構計算機架構
- HashMap原理(一) 概念和底層架構HashMap架構
- 深度解析HashMap底層實現架構HashMap架構
- 統一接入層架構的演進架構
- MVC 三層架構案例詳細講解MVC架構
- SQL Server底層架構技術對比SQLServer架構
- 大資料的核心架構層是哪些?大資料架構
- 專車資料層「架構進化」往事架構
- EL&JSTL26_MVC&三層架構3JSMVC架構
- 你知道什麼是三層架構嗎?架構
- Abp vNext 基礎篇丨分層架構架構
- 資料倉儲架構分層設計架構
- 遊戲伺服器架構概要遊戲伺服器架構
- 庫存系統:應用層、領域層、對接層的架構設計架構
- 伺服器架構圖 伺服器登入方法伺服器架構
- 瞭解安卓架構(linux核心層、系統執行庫層、應用框架層、應用層)安卓架構Linux框架
- 接入層Nginx架構及模組介紹分享Nginx架構
- 網際網路分層架構的本質架構
- Android MVP架構改造~如何重用頂層業務AndroidMVP架構
- 架構分層的小糾結-層級該如何劃分與定位?架構
- 【知識分享】 伺服器的架構伺服器架構
- Serverless無伺服器架構詳解Server伺服器架構