关闭 More 保存 重做 撤销 预览

   
关闭   当前为简洁模式,您可以更新模块,修改模块属性和数据,要使用完整的拖拽功能,请点击进入高级模式
招商专员 ,电销专员 ,客服专员 信誉平台长期招各大代理合作共赢 OD体育 OD体育

上一主題 下一主題
»
tenYseo
LV1 初心者
帖子    4
新博币    0 提现
提现    0
     
    4398 4 | 显示全部楼层 |倒序浏览

    本平台仅提供商务合作信息发布服务,禁止发布虚假或误导性信息。平台不参与具体合作过程,所有合作事项与本平台无关。请用户在达成合作前,仔细核实合作方的资质和信誉,并确保签署合法有效的合同以保护自身权益。对于因合作引发的任何纠纷或损失,本平台不承担责任。如发现异常或纠纷,请及时向相关部门举报或寻求法律帮助。

    文件读写漏洞,是黑帽SEO技术、web渗透测试中广泛应用的基本漏洞,利用好,可以威力无穷。
    对这个漏洞不熟悉的,可看看基础介绍:[纯干货]揭秘黑帽SEO

    原理:某个文件目录对用户权限没有进行降权或者限制,通过将精心构造的文件放置在目录下,利用R/W/E权限进行渗透。
    精华:
    (1)利用上传文件后缀名不过滤漏洞上传执行文件;
    (2)利用执行权限漏洞执行文件;
    (3)利用读取权限漏洞回溯上级目录;
    (4)利用php弱类型语言特点,得到关键源码,并进行分析推出项目结构;
    (5)利用.svn和php业务信息推出源码项目名称和svn外网路径。
    案例如下:
    团队在做个JavaEE项目,上头要我们参考一个电商erp系统,目标www.demo.com的业务流程,分配模块设计电商erp系统功能流程、数据表结构等文档了,整天就写文档了。。。这表关联有点多呀,就想着如果能拿到源码或者数据库表设计,有了现成那就不用辛苦的建表了。


    首页有个登录页面,不过下面算叫社工了吧,假装成要买软件的顾客来考察,让客服开了一个帐号出来,这步就跳过了。
    有了帐号,登录进去大概浏览了下那个网站,功能比较杂,前台用户并没有管理员权限。因为看到有商品图片了,想着会不会没有过滤直接能上传webshell,看来看去,就找到个图片管理。

    里面有个上传文件的功能,可是图片没有回显绝对地址,而且变成个文件服务器,到另一个子域名去了。

    访问的图片链接如下,不是直接访问文件地址。
    http://tupian.demo.com/index.php?xxxxxxx&image=xxxxxxxxxxxxxxxxx.jpg
    考虑这个子域名上(Server)会不会解析脚本,能不能顺利上传,也不知道绝对路径,再说也不是主站。

    就先尝试下,抓包后改后缀为php,此时发现php文件是能够上传的,但仅有Response的数据并不能获知文件的web地址。


    但是仔细观察这个image参数,感觉会不会能读取文件,测试后的确存在任意文件读取漏洞,00截断不管用,但是用../跳到上一层,可读出index.php代码。


    又根据这个源码继续读出几个文件出来,比较关键的有数据库的配置信息,可惜这个还不能外连。

    为了知道上传的绝对路径,看了index.php的逻辑,找到controller层的目录

    传递进$m变量,进而加上m前缀就可以读出上传和读取图片功能的源码,如下图所示。其中显示图片只是简单的处理url参数并拼接固定的上传目录xxx,调用file_get_contents来echo输出

    根据参数裁剪几位 再跟编号组合,取得最终的地址字符串。

    浏览器访问下计算出来的路径,还好不像之前遇到的,这个能解析,接下来很轻松就能getshell了。

    (前面两个请求500错误的是因为shell代码出错,本还以为不能用的,自己另外写了个php一句话就行了)

    然后在shell上先做好一些清理工作,接下来想直接连mysql,看出当前用户权限不算大,但能看一堆看起来能外连的帐号,有部分的mysql5密码能解出,只有部分库有访问权限,这种情况下必要时候可以收集。

    在服务器上找到nginx.conf,看了里面的虚拟路径映射,也确定主站不在这台服务器上



    翻了翻也没什么好看的。
    主站一堆增删查改的操作,也没明显的注入什么的,旁站查询了下也就多了些wiki站,没多少功能
    简单扫下主站目录得出几个文件

    但是后面在webshell中居然看到了那个图片服务器上存在.svn,进而猜想主站会不会也有。

    可是无法访问svn文件,用源码泄漏工具也下载不了

    然而在webshell打开svn文件,发现了一个可连外网的svn仓库地址。。。里面只有帐号名,不过配合之前的mysql.user等也好猜密码。

    这个地址似乎是共用的,但尝试跳转上一级去访问svn根目录就会拒绝访问,也就是说要想获得主站的svn源码也许得猜对目录名

    思索了一会目录命名规则,主站总猜不到,倒是猜到一些其他的web项目。

    先把svn中能导出来导出来研究下

    看了之后研究了下命名规则,辛运的是之前在主站扫描目录出来info.php就派上用场了,这个文件正好是phpinfo
    能获取到主站的web路径,这样配合就猜解到svn目录了,顺利导出主站全部源码。

    虽然已经导出源码了,不过抱着学习的态度,可以继续尝试getshell下。

    手上有了源码就稍微审计了下php,就项目结构来看,另有一套admin管理系统也在一个子域名,web项目分出多个文件夹,这个后台上传文件功能,有效验后缀,白名单验证重名,短时间也没找到包含、文件处理什么的问题,主要看看有没有高危函数的调用。

    浏览看了半天源码,

    还好找到个转化html文件的功能,发现里面居然调用到了exec,部分参数可控,存在命令注入。

    调用wkhtmltopdf程序转化pdf。

    URL是调用其他方法获取的,从这里可以看出利用点$params可控的地方有个companyId。

    感谢info.php爆出了路径,这样直接就可以写shell了。构造闭合参数,使用urlencode,执行命令,写了个eval小马。

    不过不知道是否是WAF什么的原因,写完后刷新几次居然都404了,在传个txt就不会出现这样。(后续感觉可能跟分布式部署负载均衡有关)

    后面换了个强一点的一句话,直接echo进去的话,php代码中的$字符会消失,就使用base64从输入流读入解码,-n参数去掉回车符,最终参数大概就弄成这样就行了。
    companyId=5555.pdf && echo -n "PD9waHAgJGE9ImFhYWEiO2VjaG8gInpoaXNoaWdlIGNlIHNoaSBkZSBsYSI7Pz4=" | base64 -d > /xxxx/xxxx/xxxx.php && echo 111

    主站getshell之后这时候包括svn其实已经能获取所有的源码了,

    抱着学习研究的态度,只看了部分模块相关的表结构。
    没有做什么破坏,本想自己把漏洞补了,但是文件www用户组写不了,提权暂算了。



    jeson
    禁止发言
    帖子    161
    新博币    0 提现
    提现    0
    TA的勋章:勋章中心
    展开更多
       
      提示: 作者被禁止或删除 内容自动屏蔽
      Dawning
      LV4 路旁的落叶
      帖子    34
      新博币    0 提现
      提现    0
      TA的勋章:勋章中心
         
        点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 淡定 生气 回帖 路过 感动 感恩
        您需要登录后才可以回帖 登录 | 立即注册

        本版积分规则

        快速回复 返回顶部 返回列表