成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java利用技巧-通過反射修改屬性

開發(fā) 前端
本文介紹了通過反射枚舉JspServletWrapper實例的具體實現(xiàn),記錄思路和細(xì)節(jié),便于以此類推,修改其他內(nèi)容。

0x00 前言

在上篇文章《Zimbra漏洞調(diào)試環(huán)境搭建》提到了通過反射枚舉JspServletWrapper實例的實現(xiàn),本文將要以此為例,詳細(xì)介紹實現(xiàn)的思路和細(xì)節(jié),便于以此類推,實現(xiàn)其他功能。

0x01 簡介

本文將要介紹以下內(nèi)容:

?反射中的常用操作

?獲得類的所有字段

?獲得類的所有方法

?調(diào)用類的方法

?枚舉JspServletWrapper實例的實現(xiàn)細(xì)節(jié)

0x02 反射中的常用操作

1.獲得類的所有字段

getField():

能夠獲取本類以及父類中的public字段

getDeclaredField():

能夠獲取本類中的所有字段

這里以Zimbra環(huán)境為例,給出示例代碼

(1)獲取request對象的所有字段

(2)獲取request對象的父類的所有字段

2.獲得類的所有方法

getMethods():

能夠獲取本類以及父類或者父接口中的公共方法(public修飾符修飾的)

getDeclaredMethods():

能夠獲取本類中的所有方法,包括private、protected、默認(rèn)以及public的方法

這里以Zimbra環(huán)境為例,給出示例代碼

(1)獲取request對象的所有方法

(2)獲取request對象的父類的所有方法

3.調(diào)用類的指定方法

這里以Zimbra環(huán)境為例,給出示例代碼

搭建好Zimbra漏洞調(diào)試環(huán)境后,定位request對象的getHeader(String name)方法,代碼細(xì)節(jié)如下:

對照代碼細(xì)節(jié),參數(shù)類型為String

調(diào)用request對象的getHeader(String name)方法,參數(shù)為"User-Agent",實現(xiàn)代碼如下:

0x03 枚舉JspServletWrapper實例的實現(xiàn)細(xì)節(jié)

1.下斷點

選擇文件servlet-api-3.1.jar,依次選中javax.servlet->http->HttpServlet.class,在合適的位置下斷點,當(dāng)運行到斷點時,可以查看request對象的完整結(jié)構(gòu),如下圖

查看request對象的結(jié)構(gòu),我們最終定位到了JspServletWrapper實例的位置,直觀的映射為:request->_scope->_servlet->rctxt->jsps

接下來,我們需要按照這個映射,通過多次反射最終獲得JspServletWrapper實例

(1)讀取request對象的所有字段

在回顯的結(jié)果中能夠找到_scope

(2)從request對象獲得_scope實例并再次枚舉字段

在回顯的結(jié)果中能夠找到_servlet

(3)獲得_servlet實例并再次枚舉字段

回顯的結(jié)果為:serialVersionUID

這里沒有rctxt字段

嘗試尋找原因:開啟調(diào)試器,定位至關(guān)鍵位置,如下圖

從圖中可以看到,_servlet的類為JettyJspServlet

JettyJspServlet繼承自JspServlet,成員變量只有serialVersionUID,這與我們通過訪問jsp頁面得到的結(jié)果一致

查看JspServlet的相關(guān)實現(xiàn)代碼,如下圖

從圖中可以看到,rctxt為JspServlet的成員變量,屬性為private,所以子類JettyJspServlet無法繼承成員變量rctxt

這里我們可以直接選取_servlet實例的父類進(jìn)行枚舉字段

(4)選取_servlet實例的父類進(jìn)行枚舉字段

在回顯的結(jié)果中能夠找到j(luò)sps

(5)獲得jsps實例并枚舉字段

開啟調(diào)試器,查看jsps的類型,如下圖

從圖中可以看到,jsps的類為ConcurrentHashMap,這里只需要枚舉出所有Key即可

添加需要導(dǎo)入的包后,得出最終實現(xiàn)代碼:

補充:刪除指定JspServletWrapper的實例

只需要調(diào)用ConcurrentHashMap的remove方法即可

示例代碼:

0x04 小結(jié)

本文介紹了通過反射枚舉JspServletWrapper實例的具體實現(xiàn),記錄思路和細(xì)節(jié),便于以此類推,修改其他內(nèi)容。


責(zé)任編輯:武曉燕 來源: 嘶吼網(wǎng)
相關(guān)推薦

2022-05-06 18:55:29

Java技巧Shellcode

2010-06-24 16:22:26

Linux chatt

2017-09-28 15:07:37

全局字體反射

2024-09-23 21:00:57

C#反射

2023-04-06 10:26:25

Java內(nèi)存馬Jetty

2016-11-11 09:16:36

2023-11-09 09:28:09

Java代碼

2009-04-13 11:38:27

IBMdWWeb

2009-12-23 11:24:42

WCF附加屬性

2010-08-31 13:14:41

CSSoverflow

2019-11-14 14:30:10

Java類反射代碼

2019-02-25 15:15:44

Windows 10Windows技巧

2009-08-24 08:56:55

C#反射

2012-03-13 16:14:09

JavaJUnit

2016-03-01 14:37:38

iOSLLDB調(diào)試技巧

2009-07-03 13:56:21

JSP編程技巧

2011-09-01 10:31:16

ubuntuwindows

2015-03-02 11:08:02

2009-12-23 17:31:56

WPF Style

2010-01-15 13:52:42

VB.NET屬性設(shè)置
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产高清性xxxxxxxx | 中文精品一区二区 | 亚洲综合成人网 | 日韩一区二区三区在线观看 | 在线观看中文字幕一区二区 | 人人做人人澡人人爽欧美 | 懂色av一区二区三区在线播放 | 欧美一区免费在线观看 | 国产不卡一区 | 亚洲精品视频免费观看 | av网站免费看| 婷婷国产一区二区三区 | 国产色婷婷久久99精品91 | av手机在线看 | 日韩欧美在线观看视频网站 | 日韩精品视频在线免费观看 | 黄色一级特级片 | 欧美日韩成人在线观看 | 亚洲国产视频一区二区 | 国产精品一区二区福利视频 | 亚洲精品专区 | 久久久成人一区二区免费影院 | 久久精品一区二区三区四区 | 日韩亚洲一区二区 | 国产精品免费一区二区三区四区 | 在线观看免费高清av | 一区二区精品电影 | 日韩在线欧美 | 国产在线精品免费 | 在线一区二区三区 | 中文字幕 在线观看 | av在线播放网 | 国产成都精品91一区二区三 | 午夜影院在线观看视频 | 亚洲一区二区三区 | 五月婷婷导航 | 国产精品成人一区二区 | 久久久999精品 | 国产在线一区观看 | 日韩国产欧美一区 | 天堂中文在线观看 |