记一个SHELL捡漏

admin 2024年5月18日23:59:07评论20 views字数 1026阅读3分25秒阅读模式
文章来源: https://bbs.zkaq.cn/t/31157.html

Jenkins - println绕过到shell命令执行

语法

  1. org="China Education and Research Network Center"&& icon_hash="81586312"

记一个SHELL捡漏

语法说明:两个部分

org表示筛选的目标为edu组织

icon_hash筛选的是图标,特定Jenkins系列中的某一个图标

Jenkins未授权访问(捡漏失败)

熟悉Jenkins的应该清楚,若配置不当可直接未授权访问

记一个SHELL捡漏

通常来说该类的标题可以搜索title="Dashboard"

记一个SHELL捡漏

在挖掘的过程中发现很明显的是,这类漏洞交上去逃脱不了重复的命运

记一个SHELL捡漏

Jenkins捡漏

弱口令

在浏览信息收集的过程中发现如下登录框

记一个SHELL捡漏

浅浅试了一下弱口令,进去了~

脚本执行(println失败)

进入之后我们会来到/script端点下的命令行,执行groovy script脚本做到类命令执行的操作

  1. Groovy脚本是一种基于Java语法的动态编程语言。它在Java平台上运行,并且与Java语言高度兼容。Groovy提供了许多特性和语法糖,使得编写代码更加简洁和易读。

由于基于Java语法,因此可以用以下语句测试进行执行验证

  1. println "whoami".execute().text
  1. 在Groovy脚本中,println是用于在控制台输出消息的方法。而execute().text是用于在执行命令时获取命令输出的方式。

案例如下

记一个SHELL捡漏

但是在实际测试过程中输入println发现直接未响应,而输入其他的未发生

因此发现了过滤(这边漏洞已修,忘记截图ing)

CHATGPT调教绕过

通过测试清楚了是println被过滤之后,直接使用CHATGPT进行漫长的调教

记一个SHELL捡漏

由于是之前进行调教的,这里放出结果,最终找到的替代方法

  1. def command =["whoami"]
  2. def process =newProcessBuilder(command).start()
  3. def inputStream = process.getInputStream()
  4. def result =newScanner(inputStream).useDelimiter("\A").next()
  5. print(result)

记一个SHELL捡漏

声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。

原文始发于微信公众号(白帽子左一):记一个SHELL捡漏

 

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月18日23:59:07
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   记一个SHELL捡漏https://cn-sec.com/archives/2754234.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息