亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原創

熱部署獲取webshell相關方式

2023-07-07 09:04:55
55
0

0X01 熱(re)部(bu)署介紹

       顧名思義(yi)熱部署(shu)(shu)就(jiu)是在應(ying)用正在運(yun)行(xing)的(de)(de)時候升級軟(ruan)件,卻不(bu)需(xu)要(yao)(yao)重新(xin)啟動應(ying)用。總的(de)(de)來說,熱部署(shu)(shu)的(de)(de)本質(zhi)是讓jvm重新(xin)加(jia)載(zai)(zai)新(xin)的(de)(de)class文(wen)件。程序(xu)運(yun)行(xing)時,類(lei)(lei)加(jia)載(zai)(zai)器(qi)只會加(jia)載(zai)(zai)一次Java類(lei)(lei)文(wen)件,且不(bu)能(neng)卸載(zai)(zai),這(zhe)很明顯不(bu)符合熱部署(shu)(shu)的(de)(de)需(xu)要(yao)(yao)。但(dan)是,因為(wei)類(lei)(lei)加(jia)載(zai)(zai)器(qi)是可以進行(xing)更換的(de)(de),所以,我們(men)采取的(de)(de)方式(shi)是自(zi)定義(yi)類(lei)(lei)加(jia)載(zai)(zai)器(qi),在自(zi)定義(yi)的(de)(de)類(lei)(lei)加(jia)載(zai)(zai)器(qi)中,重寫findClass方法,從而實現(xian)熱部署(shu)(shu)。

在常用(yong)(yong)的(de)(de)中間(jian)件中都提供了相(xiang)關(guan)熱部(bu)署的(de)(de)方(fang)法(fa),如springboot和tomcat。在springboot中主要是通過(guo)devtools實(shi)現(xian)頁面(mian)熱部(bu)署(即頁面(mian)修(xiu)改后會立(li)即生效,這個(ge)可以直接在application.properties設置spring.thymeleaf.cache=false來(lai)實(shi)現(xian)),實(shi)現(xian)類文(wen)件熱部(bu)署(類文(wen)件修(xiu)改后不(bu)會立(li)即生效),實(shi)現(xian)對(dui)屬性文(wen)件的(de)(de)熱部(bu)署。即devtools會監聽classpath下的(de)(de)文(wen)件變(bian)動(dong), 并且會立(li)即重啟應用(yong)(yong)(發生在保存(cun)時機),但(dan)(dan)默(mo)認情況下,/META-INF/maven, /META-INF/resources, /resources, /static, /templates, /public這些文(wen)件夾下的(de)(de)文(wen)件修(xiu)改不(bu)會使應用(yong)(yong)重啟,但(dan)(dan)是會重新加載(devtools內嵌了 -個(ge)LiveReload server,當資源(yuan)發生改變(bian)時,瀏覽(lan)器刷新)。對(dui)于tomcat來(lai)說更(geng)加智能一點,其主要有三種(zhong)方(fang)式實(shi)現(xian),其檢查相(xiang)關(guan)的(de)(de)資源(yuan)變(bian)動(dong)如:

• /tomcat-7/webapps/應用名.war

• /tomcat-7/webapps/應用名

• /tomcat-7/webapps/應用名/META-INF/context.xml

• /tomcat-7/conf/Catalina/localhost/應用名.xml

• /tomcat-7/conf/context.xml

?	對于一個War部署的應用,會檢查以下資源是否發生變動:

• /tomcat-7/webapps/應用名.war

• /tomcat-7/conf/Catalina/localhost/應用名.xml

• /tomcat-7/conf/context.xml

?	對于一個描述符部署的應用,會檢查以下資源是否發生變動:

• /tomcat-7/conf/Catalina/localhost/應用名.xml

?	指定的DocBase目錄

• /tomcat-7/conf/context.xml

一(yi)旦這些文件或目錄發生(sheng)了變化,就會(hui)觸發熱部(bu)署,當然熱部(bu)署也是有開關的,在(zai)Host上,默(mo)認是開啟的。相關文件在(zai)conf目錄下中的server.xml中:

 

此處默認autoDeploy為true,即可(ke)實現熱(re)部署。

這(zhe)里(li)需要注意(yi)的是(shi)(shi)(shi),對于一個目(mu)錄(lu)是(shi)(shi)(shi)否發生了變(bian)化,Tomcat只判斷了這(zhe)個目(mu)錄(lu)的修(xiu)改時(shi)間是(shi)(shi)(shi)否發生了變(bian)化,所(suo)以和熱加載是(shi)(shi)(shi)不(bu)沖突(tu)的,因為熱加載監聽(ting)的是(shi)(shi)(shi)WEB-INF/classes和WEB-INF/lib目(mu)錄(lu),而熱部署監聽(ting)的是(shi)(shi)(shi)應(ying)用名(ming)那一層的目(mu)錄(lu)。

 

0X02 tomcat熱部(bu)署獲取(qu)shell

在(zai)滲透測試過程中(zhong)經常會遇到(dao)兩(liang)種情況,一種是webapps目錄下(xia)經常會遇到(dao)不允許被(bei)上傳文(wen)(wen)件,第二種文(wen)(wen)件夾可能會被(bei)防(fang)篡改監(jian)控,在(zai)這種情況下(xia)有兩(liang)種解決(jue)思路:

1、在\conf\server.xml中的<host></host>內部(bu)添加<context/>標簽:

<Context debug="0" docBase="D:\1" path="/demo" privileged="true" reloadable="true"/>

docBase:項目路徑,可以使(shi)用絕對路徑或(huo)相(xiang)對路徑,相(xiang)對路徑是相(xiang)對于webapps

path:訪問(wen)項目的路徑,如(ru)://127.0.0.1:8080/demo

reloadable:是(shi)否自動加載新增或改(gai)變的class文件.

即如下圖:

但是(shi)在此(ci)處有個缺點,修(xiu)改(gai)此(ci)文件時需要重(zhong)啟(qi)tomcat服務器,在實戰中不(bu)是(shi)很適用

2、在 \conf\Catalina\localhost中添(tian)加一個XML文件,如shell.xml,其內(nei)容如下:

<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="/tmp" reloadable="true" />

這種(zhong)方式服(fu)務器(qi)會使(shi)用(yong)xml文(wen)件(jian)(jian)名的(de)名字作為path屬性的(de)名字,如我在/tmp文(wen)件(jian)(jian)夾下建立(li)一個shell.jsp文(wen)件(jian)(jian),可(ke)訪(fang)問的(de)路(lu)徑即為:

//localhost:8080/shell/shell.jsp

此處(chu)的優點是不需要(yao)重新(xin)啟動tomcat服(fu)務器,直接(jie)上傳(chuan)相關(guan)文件即(ji)可,利用此方法(fa)可繞過(guo)相關(guan)滲透過(guo)程中的限(xian)制。

此時也(ye)可(ke)正(zheng)常解析:

可被成(cheng)功連接:

0條評論
作者已關閉評論
d****n
1文章數
0粉絲數
d****n
1 文章 | 0 粉絲
d****n
1文章數
0粉絲數
d****n
1 文章 | 0 粉絲(si)
原(yuan)創

熱部署獲取webshell相關方式

2023-07-07 09:04:55
55
0

0X01 熱部署介紹

       顧名(ming)思(si)義(yi)(yi)熱(re)部署(shu)就是(shi)在(zai)(zai)應用正在(zai)(zai)運行(xing)的(de)時(shi)候升級軟件(jian),卻(que)不(bu)需要重新啟(qi)動應用。總的(de)來說,熱(re)部署(shu)的(de)本質是(shi)讓jvm重新加載(zai)新的(de)class文件(jian)。程序運行(xing)時(shi),類加載(zai)器只會(hui)加載(zai)一(yi)次Java類文件(jian),且不(bu)能卸載(zai),這(zhe)很明顯(xian)不(bu)符合熱(re)部署(shu)的(de)需要。但(dan)是(shi),因為(wei)類加載(zai)器是(shi)可(ke)以進行(xing)更(geng)換(huan)的(de),所以,我們采(cai)取的(de)方式是(shi)自定義(yi)(yi)類加載(zai)器,在(zai)(zai)自定義(yi)(yi)的(de)類加載(zai)器中,重寫(xie)findClass方法,從而實現(xian)熱(re)部署(shu)。

在常用的(de)中(zhong)間件(jian)(jian)(jian)中(zhong)都提供了相關熱(re)部署的(de)方(fang)法,如springboot和tomcat。在springboot中(zhong)主(zhu)要(yao)是通過devtools實(shi)現(xian)頁面熱(re)部署(即(ji)(ji)(ji)頁面修(xiu)(xiu)改(gai)后(hou)會(hui)立(li)即(ji)(ji)(ji)生(sheng)效(xiao),這個(ge)(ge)可以直接(jie)在application.properties設置spring.thymeleaf.cache=false來(lai)實(shi)現(xian)),實(shi)現(xian)類(lei)文(wen)件(jian)(jian)(jian)熱(re)部署(類(lei)文(wen)件(jian)(jian)(jian)修(xiu)(xiu)改(gai)后(hou)不會(hui)立(li)即(ji)(ji)(ji)生(sheng)效(xiao)),實(shi)現(xian)對屬性文(wen)件(jian)(jian)(jian)的(de)熱(re)部署。即(ji)(ji)(ji)devtools會(hui)監聽classpath下(xia)的(de)文(wen)件(jian)(jian)(jian)變(bian)動, 并且會(hui)立(li)即(ji)(ji)(ji)重(zhong)啟應(ying)用(發生(sheng)在保存(cun)時機),但(dan)默認情況(kuang)下(xia),/META-INF/maven, /META-INF/resources, /resources, /static, /templates, /public這些文(wen)件(jian)(jian)(jian)夾下(xia)的(de)文(wen)件(jian)(jian)(jian)修(xiu)(xiu)改(gai)不會(hui)使應(ying)用重(zhong)啟,但(dan)是會(hui)重(zhong)新加(jia)載(devtools內嵌了 -個(ge)(ge)LiveReload server,當(dang)資(zi)源(yuan)發生(sheng)改(gai)變(bian)時,瀏覽器刷新)。對于tomcat來(lai)說更加(jia)智(zhi)能一點,其主(zhu)要(yao)有三種(zhong)方(fang)式實(shi)現(xian),其檢查相關的(de)資(zi)源(yuan)變(bian)動如:

• /tomcat-7/webapps/應用名.war

• /tomcat-7/webapps/應用名

• /tomcat-7/webapps/應用名/META-INF/context.xml

• /tomcat-7/conf/Catalina/localhost/應用名.xml

• /tomcat-7/conf/context.xml

?	對于一個War部署的應用,會檢查以下資源是否發生變動:

• /tomcat-7/webapps/應用名.war

• /tomcat-7/conf/Catalina/localhost/應用名.xml

• /tomcat-7/conf/context.xml

?	對于一個描述符部署的應用,會檢查以下資源是否發生變動:

• /tomcat-7/conf/Catalina/localhost/應用名.xml

?	指定的DocBase目錄

• /tomcat-7/conf/context.xml

一旦這(zhe)些文(wen)件或目錄發(fa)生(sheng)了變化,就會觸發(fa)熱部(bu)署(shu),當然熱部(bu)署(shu)也(ye)是(shi)有(you)開(kai)關的,在(zai)(zai)Host上,默認是(shi)開(kai)啟的。相關文(wen)件在(zai)(zai)conf目錄下中的server.xml中:

 

此處默認autoDeploy為(wei)true,即可實現熱部署。

這(zhe)里需(xu)要注(zhu)意的是(shi)(shi),對于一(yi)個(ge)目(mu)(mu)錄是(shi)(shi)否(fou)發生了(le)變化,Tomcat只判斷了(le)這(zhe)個(ge)目(mu)(mu)錄的修改(gai)時間是(shi)(shi)否(fou)發生了(le)變化,所以和熱加載是(shi)(shi)不沖突的,因(yin)為熱加載監聽的是(shi)(shi)WEB-INF/classes和WEB-INF/lib目(mu)(mu)錄,而熱部(bu)署(shu)監聽的是(shi)(shi)應用名(ming)那一(yi)層的目(mu)(mu)錄。

 

0X02 tomcat熱部署獲(huo)取shell

在(zai)滲透(tou)測(ce)試過程中經常(chang)會遇到(dao)兩種情況(kuang)(kuang),一種是webapps目錄下經常(chang)會遇到(dao)不允許被(bei)上傳(chuan)文件,第二種文件夾可能會被(bei)防篡改監控,在(zai)這種情況(kuang)(kuang)下有兩種解決(jue)思路:

1、在(zai)\conf\server.xml中的<host></host>內部添加<context/>標簽:

<Context debug="0" docBase="D:\1" path="/demo" privileged="true" reloadable="true"/>

docBase:項目路(lu)徑(jing),可以使用(yong)絕對路(lu)徑(jing)或(huo)相對路(lu)徑(jing),相對路(lu)徑(jing)是相對于webapps

path:訪(fang)問項目的路徑(jing),如(ru)://127.0.0.1:8080/demo

reloadable:是否自動加載新增或(huo)改變的class文件.

即(ji)如(ru)下圖(tu):

但是(shi)在此處有個缺點,修改此文件(jian)時需要(yao)重啟tomcat服(fu)務器,在實戰(zhan)中不是(shi)很適用(yong)

2、在 \conf\Catalina\localhost中(zhong)添加(jia)一個XML文(wen)件,如shell.xml,其內容如下:

<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="/tmp" reloadable="true" />

這種方式服務(wu)器會(hui)使用xml文件(jian)名的(de)(de)名字作為path屬(shu)性的(de)(de)名字,如(ru)我在/tmp文件(jian)夾(jia)下建(jian)立一個shell.jsp文件(jian),可訪問的(de)(de)路徑(jing)即為:

//localhost:8080/shell/shell.jsp

此處的優點是不需要重新(xin)啟動(dong)tomcat服務器,直接上傳相關文件即可,利用此方法可繞過相關滲透(tou)過程中的限制。

此時(shi)也(ye)可正常解析:

可(ke)被成功連接:

文章來自個人專欄
文章 | 訂閱(yue)
0條評論
作者已關閉評論
作者已關閉評論
0
0