镜像程序实现+原理

2017年05月26日

昨晚朋友发来个地址,打开一看是一个做镜像程序。看了下演示,发现原理其实很简单,或者说就是在线代理的原理。

上午抽时间还原了下这个原理,现在代码分享出来,供有需要的朋友获取。

 1、地址归一为了获得更好的效果,所以地址我们完全仿照源站地址,这样就需要使用各种技术来接收这个地址,因为我们这里仅讨论原理,所以就使用伪静态吧,以下是apache的伪静态规则

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L]
</IfModule>

这个伪静态可以把所有访问不到的地址都归一到index.php入口文件上的$_GET['s']

2、配置文件 config.php我们将需要配置的单独出来,方便扩展,这里我们以chinaz为例

$url='http://www.chinaz.com';
3、入口文件 index.php这是核心处理部分,我们根据伪静态得到的$_GET['s']参数与配置文件设置的地址组装成新地址,然后获取这个新地址的内容,当得到内容之后将页面内容的链接转换成我们自己的站内链接
include __DIR__.'/config.php';
$path=isset($_GET['s'])?strval($_GET['s']):'';
$geturl=$url.'/'.ltrim($path,'/');
$content=file_get_contents($geturl);
$content=str_replace($url,'',$content);
echo $content;

ok!已经完成,可以试试效果。

4、扩展子目录存放当子目录的时候我们发现上述的地址无效了,我们增加个子目录的配置,比如我的在根目下的c子目录,在config.php增加

$sitepath='/c';

然后修改

Index.php$content=str_replace($url,'',$content);

改为

$content=str_replace($url,$sitepath,$content);
ok,现在好了,子目录也可以使用了!
更多扩展比如,字词替换,logo替换,同义词替换,修改地址规则,图片处理,css优化,javascript处理,广告增加,缓存,seo优化等等就不说了,自己完善即可。 


分类:研究 | 标签: 黑帽脚本php黑帽镜像 | 查看:993
黑吃黑:分析一款asp webshell后门箱子2017新版webshell箱子(强大功能!)

发表评论: