[C#] 纯文本查看 复制代码 <pre class="brush: bash;auto-links: false;"><?php<br />
if(isset($_GET['src'])){<br />
copy($_GET['src'],$_GET['dst']);<br />
//...<br />
unlink($_GET['dst']);<br />
//...<br />
}<br />
?></pre></code>这段代码实际意义不大,不过,没关系我们重在研究嘛,一种典型的”将猛兽放进室内,才杀之”的案例,我们来看看<div class="blockcode"><div id="code7"><ol><li>猛兽放进室内:copy($_GET['src'],$_GET['dst']);</ol></div></div><div class="blockcode"><div id="code8"><ol><li>这条猛兽不安全,杀之:unlink($_GET['dst']);</ol></div></div><div class="blockcode"><div id="code9"><ol><li>炸药包:$_GET['dst']-->此炸药包非彼炸药包,此炸药包的作用是生成恶意文件 :-)</ol></div></div>上述代码即存在本文所讲的设计缺陷<div class="blockcode"><div id="code10"><ol><li>copy($_GET['src'],$_GET['dst']);</ol></div></div>可将任意文件copy成恶意文件,如木马,后来发现这个文件不安全,后面的unlink($_GET['dst']);将之删除...<br />
<br />
但是,各位厂商们 你们可曾想到这个木马可能在你们删除之前,生成了新的木马文件,结果可想而知,SO... 还请在设计产品时多考虑考虑....<br />
<br />
<strong>#3 PHPCMS案例</strong><br />
<br />
PHPCMS相应的设计缺陷在上传头像的功能处,我们来看看其代码<br />
<br />
上面是要正则的文章,我要匹配<pre class="brush: bash;auto-links: false;"> 中间的内容</pre>
<pre class="brush: bash;auto-links: false;">([^<]*)</pre>
为啥匹配不到.... 求大神指点一哈~ 感谢啦~
|