MYSQL注入天書之伺服器(兩層)架構

2021-08-29 18:51:40 字數 922 閱讀 2071

首先介紹一下sqli-lab29,30,31這三關的基本情況:

伺服器端有兩個部分:第一部分為tomcat為引擎的jsp型伺服器,第二部分為apache為引擎的php伺服器,真正提供web服務的是php伺服器。工作流程為:client訪問伺服器,能直接訪問到tomcat伺服器,然後tomcat伺服器再向apache伺服器請求資料。資料返回路徑則相反。

重點: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可對伺服器和客戶端都能夠造成一定的威脅。

linux伺服器之Mysql安裝

系統 centos7 資料庫版本 mysql5.7 強調 若提示找不到wget命令,通過yum y install wget安裝該指令庫。wgetyum localinstall mysql57 community release el7 8.noarch.rpm3.安裝mysql伺服器 yum i...

MySQL伺服器變數 MySQL系列之八

注意 其中有些引數支援執行時修改,會立即生效 有些引數不支援,且只能通過修改配置檔案,並重啟伺服器程式生效 有些引數作用域是全域性的,且不可改變 有些可以為每個使用者提供單獨 會話 的設定 mysqld help verbose 獲取所有可以的選項 mysqld print defaults 獲取預...

學習手冊之MySQL伺服器功能

9mysql 伺服器功能 9.1mysql支援哪些語言?mysqld可以用下列語言發出錯誤訊息 捷克語 荷蘭語 英語 預設 愛沙尼亞語 法語 德語 匈牙利 義大利語 挪威語。啟動mysqld使用一種特定的語言,使用乙個 language lang或 llang選項。例如 shell mysqld l...