Tag Archives: php

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";’;     … Continue reading

Posted in php security | Tagged , , , , , | Leave a comment

会员管理之增删改查

会员管理模块大概包含会员注册,会员列表的显示,会员信息搜索,会员编辑,会员删除,即所谓的增删改查。 首先来看会员注册, 因为我现在使用的thinkphp版本是3.2.3,所以文件命名上也得遵循一下它的规则(比如tp5下,定义控制器命名已经可以不加Controller。)首先到Index控制器同级目录下新建一RegisterController.class.php(注册控制器),然后定义控制器, 导入控制器基础类文件,然后再新建一个index方法一个add方法,index方法里调用注册页,注册页是个form表单,提交地址对应当前控制器下的add方法, 回到控制器,在add方法里通过模型类实例化一个对象,调用->create方法判断如果接收到了表单数据就调用->add方法写入数据库, 如果失败就通过->getError获取具体的错误信息。 到此, 用户注册完成。

Posted in php | Tagged , , , | Leave a comment

php修改文件

<?php if(isset($_POST[‘sub’])) {     setConfig($_POST); } function setConfig($post) {     $zz = array();     $rep = array();     $str = file_get_contents("config.inc.php");     foreach($post as $key=>$value)     {         $zz[] = "/define\("{$key}",\s*.*?\);/i"; … Continue reading

Posted in php | Tagged , , , | Leave a comment

php正则表达式之元字符

前面我们知道了,正则表达式是由定界符,原子,元字符,模式修正符组成的,原子是正则中的基本组成单位,它可以独立使用,元字符是用来修正原子的,今天就再来复习一下几个元字符的用法。比如* 我们前面说了,*的意思是在此之前的原子可以出现0次1次或者多次,如果想把它作为元字符使用\*转义掉就可以了。所以它的作用就不详细介绍了。继续下面的。 + 在此之前的原子可以出现一次或者多次, 意思是至少要出现一次。 ? 在此之前的原子可以出现0次或者1次。 {} 自定义在此之前原子的重复次数,可以是单数也可以是一个范围{x,n}至少几次,最大几次。 . 匹配除了换行外的任意字符。

Posted in php | Tagged , , | Leave a comment

php正则表达式入门

之前学python的时候看过python里的正则, 也就是re, 最近这段时间看php, 看到了正则, 也就把正则从新复习了一遍。 其实正则也可以说是一种编程语言, 它和asm一样, 可以嵌套到很多程序当中去, 进行删除,修改,替换。说到正则,首先应该想了, 什么是正则? 正则就是描述字符串排列模式的一种自定义的语法规则,它本身也是属于是一段字符串,要和函数配合使用。 正则是由定界符,原子,元字符,模式修正符组成的,除了数字,字母和\的任意其他字符都可以被用来当作定界符,定界符的作用就是定界开始和结束,在正则中可以单独使用的字符都可以被称为原子, 比如\s \d \t \r src img, 如果想要在原子中使用具有特殊意义的字符, 比如这个字符既属于元字符还想在原子中使用, 即可以把它使用\转义, 元字符是用来被修饰原子的, 比如匹配中的任意十进制数字, 就可以使用< \d>, 可以使用[]表示是一个原子表,比如匹配一定范围的内容[1234567],即代表匹配原子表中的任意一个数字, 如果不加中括号, 即代表匹配的是一个连贯的数字,还可以在原子表中的第一个字符前加^表示取反,可以使用-代表一个范围。现在php沿用的正则是与perl兼容的, 下面就来看几个例子。

Posted in php | Tagged , , | Leave a comment

常见修饰符和魔术方法

final: 只能被用来修饰类和成员方法。 1. 被final修饰后的类不能被继承。 2. 被final修饰后的方法不能被重载。 <?php /** final 只能被用来修饰类和成员方法 被final修饰后的成员方法不能被重载, 类不能被继承. **/

Posted in php | Tagged , , , | Leave a comment

php OOP三大特性-封装性

我们在编程中使用封装主要是为了保护资源和方便维护的,比如网站数据库类中的dbuser,password属性, 如果不应用封装,默认就为public, 这样就造成了一个后果,任何人都可以在类外访问dbuser,password的属性值,这样就会容易造成严重的安全事故。 封装就是把类中成员属性结合到一起并尽可能隐藏细节,然后再根据需求提供对应的接口,在php中,可以使用修饰符(关键字)来对类中的成员或者属性进行封装。

Posted in php | Tagged , , , | Leave a comment

php变量函数漏洞演示

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

Posted in php security | Tagged , , , , | Leave a comment