分类目录归档:php security

文件上传的前世今生

从开始到现在,文件上传其实都是一项正常功能。其最大的好处就是方便了文件类型信息的交互与传递,大大减轻了现代办公压力。但是,它也有一个悖端,那就是,如果是不怀好意的人上传了不应该上传的内容,就会造成结果的不可预料。这样,就衍生成了一个严重的安全威胁。所以,我们要对文件上传内容进行过滤。 先来看一下什么是上传表单 <form action="up.php" enctype="multipart/form-data" method="post">Add File: <input name="file" type="file" value="" /> <input type="submit" value="Submit" /></form>&nbsp; <?php if(isset($_POST)) { foreach($_FILES as $k=>$v) { foreach ($v as $k=>$v) {                   echo ‘<pre>’;   … 继续阅读

发表在 php security | 标签为 , , , , , | 留下评论

php夺旗题探究

夺旗题在信息安全领域一般被称为CTF题,随着这几年各方对信息安全慢慢变得越来越重视,CTF也渐渐火了起来。今天就记录一下跟这个有关的东西。 场景: 下班前,看到同事在看一个CTF题。 代码如下 <?php header(‘content-type:text/html;charset=utf-8’); require_once ‘../config.php’; function decode($data){     $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128,”,MCRYPT_MODE_CBC,”);     mcrypt_generic_init($td,’ydhaqPQnexoaDuW3′,’2018201920202021′);     $data = mdecrypt_generic($td,base64_decode(base64_decode($data)));     mcrypt_generic_deinit($td);     mcrypt_module_close($td);     if(substr(trim($data),-6)!==’_mozhe’){         echo ‘<script>window.location.href="/index.php";’;     … 继续阅读

发表在 php security | 标签为 , , , , , | 留下评论

php中的一个有关数组和判断的问题

PHP在比较中用 ==来比较值是否相等, 用 === 来比较值和类型是否相等。 但在现实条件中,可能会发生意外情况,这个是值得开发者注意的。 <?php $flag = ‘Wel come to home’; if($_GET[‘a’] != $_GET[‘b’]) {     if(md5($_GET[‘a’]) === md5($_GET[‘b’]))     {         echo ‘007’.$flag;     } } 比如,程序员通过 ===比较值和类型并判断md5后的信息是否一致,一致后输出欢迎信息,直接给a和b赋值不一样信息的话,第一个条件满足,但是第二个条件又不满足了,所以这个时候可以利用数组和===的一个特性,a[] = 1; b[] … 继续阅读

发表在 php security | 标签为 , , , , | 留下评论

php web漏洞解读二

在网上看到了一篇有关web漏洞的文章,第三方大多为原文转载,这里做个解读备份。谢谢原作者。

这篇文章的标题为 远丰集团旗下CMS疑有官方后门

暂且不说后门定义是否准确,只看成因。

我下载了作者提供的解密后的代码,文件关键部分如下 继续阅读

发表在 php security | 标签为 , , , | 留下评论

htmlspecialchars和htmlentities的区别

htmlspecialchars会转义预定义的html字符,如 & > < ' " htmlentities会将所有的html字符转义成实体同时影响中文。 <?php echo htmlspecialchars($_GET['content']).'<br>'; echo '<br>'; echo htmlentities($_GET['content']); ?> <form action="" method="get"> Content:<input type="text" name="content"> </form>

发表在 php security | 标签为 , , | 留下评论

php中的浮点数安全问题

关于浮点数, php语言里使用float表达,其他语言一般也是,这个是通用的。 英文里有浮动的意思, 从英文解释里, 也许就能猜的出来浮点数的大概意思,这个时候我们首先就想到了,它也许是不确定的, 因为是(浮动)。 咱们回到php语言中, 在php语言中, float说的其实是多种数据类型的一种, 浮点型。 浮点型数据咱们简单点理解就是, 它是一个包含小数的数, 只能用来表示近似, 不能完全确定, 比如取3.1415926 ~ 精确到第几位, 工程计算中误差要达到什么等级, 这个时候要用到的就是浮点数。

发表在 php security | 标签为 , , , , | 留下评论

php代码审计中常用的一些搜索关键字

sql注入 $_GET $_POST $_COOKIE $_FILES(文件名文件后缀) $_REQUEST $_SERVER 文件访问 fopen readfile file fpassthru gzopen gzfile gzpassthru readgzfile copy rename rmdir mkdir unlink file_get_contents file_put_contents parse_ini_file

发表在 php security | 标签为 , , , , | 留下评论

spl_autoload_register 和上传结合带来的安全问题

spl_autoload_register方法 当实例化对象的时候, 使用的类不存在, 就会执行该方法, 跟他类似的还有 __construct 实例化对象的时候会被自动加载 __destruct 执行结束后会被自动加载 __call 试图在类外调用一个不存在的方法的时候会被自动加载 __set 调用设置的时候会被自动加载 __get 试图在类外获取私有属性时,会被自动加载 今天主要讲的是 spl_autoload_register 前面说了该方法的含义就不再重复了, 来看一段代码 <?php class ttt {     static function tta()     {         ;     } } … 继续阅读

发表在 php security | 标签为 , , , , , | 2条评论

代码审计之-回调函数

首先来说一下, 什么叫回调函数, 关于回调函数, php里也提供了几个系统默认的回调函数, 这个回头再说, 先来说一下自定义的,回调函数就是把函数以参数的形式引入到调用函数中, 可以来看一个回调函数的例子。

发表在 php security | 标签为 , , , , | 留下评论

php变量函数漏洞演示

什么叫变量函数, 简单点说就是以函数形式执行的一个变量, 就叫变量函数。(标不标准我也不知道, 大概就是这个意思)看变量函数之前, 首先来看一下变量  $v = ‘areyouok’; 这样就定义了一个值为字符串areyouok的变量$v, 如果echo $v,得到的将会是一个字符串这就是普通的变量定义和获取变量值的一个完整过程, 我们通过$v获取了字符串areyouok.如果这个时候, 把$v,变成$v(), 意义就变了, 因为这个时候, $v()就变成了一个变量函数,他会去以函数的方式执行与它同名或者名字命名空间下的同名函数,比如

发表在 php security | 标签为 , , , , | 留下评论