可以直接向服务器写入文件,文件名和内容可自定义;

影响版本未知,大概是6.X吧,收费的家伙也没条件一一测试;

是否通用未知,网上搜索了几个,都存在这问题。

详细说明:TRS WCM的Web Service提供了向服务器写入文件的方式,可以直接写jsp文件获取webshell。

Web Service路径:~/wcm/services,web service信息大概是这个样子的:

trswcm:ImportService (wsdl)

importDocuments 

urn:FileService (wsdl)

sendFileBase64 

trswcm:GetChannelInfoService (wsdl)

getAllChannelXML

getChannelXML 

trswcm:GetSOAPInfoService (wsdl)

getMajorVersion 

trswcm:SOAPService (wsdl)

getMajorVersion

importDocuments

uploadFile

importDocumentsByLocalFile

getAllChannelXML

getChannelChildrenXML

getChannelXML

getSiteXML

sendFileBase64 

...

trs:templateservicefacade (wsdl)

logout

login

writeFile

preview

checkin

checkout

getAllSettings

getSettingByType

confirm

getSettingTypeList

getAllSites

writeSpecFile

makeTemplateFolder 

trswcm:UploadService (wsdl)

uploadFile

sendFileBase64

经测试其中trs:templateservicefacade服务的writeFile和writeSpecFile两个操作都可以向服务器写入文件,其它还有些sendFileBase64、uploadFile之类的没试过了。

1.writeFile和writeSpecFile两个操作参数差不多,第一个参数都是base64加密后的文件内容;

2.writeFile方式会返回物理路径,使用writeSpecFile前需要用writeFile获取路径;

3.writeFile第二参数是文件后缀名,在windows版本下可以利用../跳转目录;

4.writeSpecFile第二个参数是文件绝对路径,这个就随便搞了;

5.访问大部分JSP页面时系统经常会验证是否登陆,否则跳转,一般写这几个地方就OK(这几个默认是没有的):

~/wcm/index.jsp

~/wcm/demo/index.jsp

~/wcm/include/login.jsp

...more...

6.注意:writeSpecFile会覆盖原文件,writeFile则会返回失败,不会覆盖原文件;

7....

这个我没试过,图片是别人发给我的,我不大清楚咧。

TRS WCM 6.X系统任意文件写入