宁波网站搜索优化,专业建设计划,全球邮箱wordpress,西工网站建设设计题目#xff1a;web 109 1. 题目#xff1a; 2. 解题思路#xff1a;题目要求获得两个参数#xff0c;v1 v2#xff0c;if语句中的意思是要求两个参数都包含字母#xff0c;条件满足的话#xff0c;执行 echo new 类名#xff08;方法#xff08;#xff09;#xf…题目web 109 1. 题目 2. 解题思路题目要求获得两个参数v1 v2if语句中的意思是要求两个参数都包含字母条件满足的话执行 echo new 类名方法这里使用echo 输出对象会触发tostring方法所以后面的类名要用实现toString方法的类由于php中的内置类较为安全和稳定所以使用php的内置类常见的内置类且实现了toString的有 DateTime font stylecolor:rgb(251, 71, 135);DateTime/font 类实现了 font stylecolor:rgb(251, 71, 135);__toString()/font 方法默认返回 ISO 8601 格式的日期时间字符串。
$date new DateTime();
echo $date; // 输出类似 2023-10-21T15:23:0100:002. **font stylecolor:rgba(0, 0, 0, 0.88);DateTimeImmutable/font**1. font stylecolor:rgba(0, 0, 0, 0.88);与 /fontfont stylecolor:rgb(251, 71, 135);DateTime/fontfont stylecolor:rgba(0, 0, 0, 0.88); 类似/fontfont stylecolor:rgb(251, 71, 135);DateTimeImmutable/fontfont stylecolor:rgba(0, 0, 0, 0.88); 也实现了 /fontfont stylecolor:rgb(251, 71, 135);__toString()/fontfont stylecolor:rgba(0, 0, 0, 0.88); 方法。/font$dateImmutable new DateTimeImmutable();
echo $dateImmutable; // 输出类似 2023-10-21T15:23:0100:003. **font stylecolor:rgba(0, 0, 0, 0.88);SimpleXMLElement/font**1. font stylecolor:rgb(251, 71, 135);SimpleXMLElement/fontfont stylecolor:rgba(0, 0, 0, 0.88); 实现了 /fontfont stylecolor:rgb(251, 71, 135);__toString()/fontfont stylecolor:rgba(0, 0, 0, 0.88);返回 XML 的字符串表示。/font$xml new SimpleXMLElement(rootelementHello World/element/root);
echo $xml; // 输出: rootelementHello World/element/root4. **font stylecolor:rgba(0, 0, 0, 0.88);DOMElement/font**1. font stylecolor:rgb(251, 71, 135);DOMElement/fontfont stylecolor:rgba(0, 0, 0, 0.88); 及其某些其它 DOM 扩展类如 /fontfont stylecolor:rgb(251, 71, 135);DOMDocument/fontfont stylecolor:rgba(0, 0, 0, 0.88);、/fontfont stylecolor:rgb(251, 71, 135);DOMNode/fontfont stylecolor:rgba(0, 0, 0, 0.88); 等也实现了 /fontfont stylecolor:rgb(251, 71, 135);__toString()/fontfont stylecolor:rgba(0, 0, 0, 0.88); 方法返回相应的元素的字符串表示。/font$doc new DOMDocument();
$doc-loadXML(rootelementHello World/element/root);
$element $doc-documentElement;
echo $element; // 输出: rootelementHello World/element/root5. **font stylecolor:rgba(0, 0, 0, 0.88);stdClass/font**1. font stylecolor:rgba(0, 0, 0, 0.88);虽然 /fontfont stylecolor:rgb(251, 71, 135);stdClass/fontfont stylecolor:rgba(0, 0, 0, 0.88); 的 /fontfont stylecolor:rgb(251, 71, 135);__toString()/fontfont stylecolor:rgba(0, 0, 0, 0.88); 方法返回一个空字符串但它是一个通用的对象可以用来作为动态属性容器。/font$obj new stdClass();
echo $obj; // 输出: (空字符串)6. **font stylecolor:rgba(0, 0, 0, 0.88);ArrayObject/font**1. font stylecolor:rgb(251, 71, 135);ArrayObject/fontfont stylecolor:rgba(0, 0, 0, 0.88); 实现了 /fontfont stylecolor:rgb(251, 71, 135);__toString()/fontfont stylecolor:rgba(0, 0, 0, 0.88); 方法返回数组的字符串表示。/font$arrayObj new ArrayObject([1, 2, 3]);
echo $arrayObj; // 输出: Array3. 使用内置类函数名v1DateTimeImmutablev2systemls得到目录结果查看flag
4. 知识点font stylecolor:#dd0000;echo new /fontfont stylecolor:#0000bb;$v1/fontfont stylecolor:#dd0000;(/fontfont stylecolor:#0000bb;$v2/fontfont stylecolor:#dd0000;());/font的执行机制new $v1 表示创建 $v1 的一个实例。这里 $v1 必须是一个类名。
$v2() 则表示实例化后调用 $v2 这个函数或方法。
在这个上下文中你假设用户输入的 $v1 是类名且 $v2 是方法名。题目web 110 1. 题目 2. 解题思路分析一下这个题目的代码思路与上一题类似区别是v1 和v2 的过滤更加严格过滤了括号因此不可以用有参数的函数了但是还有一些无参数的函数可以使用。 php 中查看目录的函数有scandir()、golb()、dirname()、basename()、realpath()、getcwd() 其中 scandir()、golb() 、dirname()、basename()、realpath() 都需要给定参数而 getcwd() 不需要参数getchwd() 函数会返回当前工作目录。 而类FilesystemIterator 是 PHP 的一个类用于遍历文件系统中的目录和文件。那么我们就可以通过遍历当前目录获取目录内容v1FilesystemIteratorv2getcwd得到当前目录下有一个文件直接进行访问getflag 3. 知识点内置类FilesystemIterator可以遍历目录内容以及无参函数getcwd获取当前目录 4. 注意 这里说一下为什么Directoryiterator为什么不能用 当你创建一个 DirectoryIterator 对象并将其实例化为某个目录时该对象会默认指向所代表的目录。举个例子如果你创建一个 DirectoryIterator 对象来表示 /var/www/html 目录那么该对象就会默认指向 /var/www/html 目录。 而当你对这个目录进行迭代操作时DirectoryIterator 会遍历该目录中的所有文件和子目录。这意味着遍历的结果会包括当前目录 . 和上级目录 ..。通常这两个特殊的目录会作为遍历结果的一部分返回因为它们是文件系统中的标准目录表示法。所以使用 DirectoryIterator 遍历目录时默认情况下会包括 . 和 .. 这两个目录项。题目web 111 1. 题目 2. 解题思路分析代码可以知道这道题我们利用的点在getflag函数里面这里面的eval函数里面的KaTeX parse error: Expected EOF, got at position 4: v1̲v2这一句较为复杂其执行流程是首先获取$v2的值将他作为变量名重新作为一个变量并将他的地址传递给 1 的值对应的变量该变量对应的流程和 1的值对应的变量该变量对应的流程和 1的值对应的变量该变量对应的流程和v2一样然后再输出v1变量的详细信息。这里仍然是对v1 v2进行了过滤与上一题不同的是同时还增添了对于v1的限制要包含ctfshow. 这里就先将v1设置为ctfshow这样就得到getFlag里面的KaTeX parse error: Expected EOF, got at position 9: ctfshow̲另一个变量另一个变量是什么呢…flag 里面于是先设置v2flag这样就有KaTeX parse error: Expected EOF, got at position 9: ctfshow̲flag:进行尝试尝试失败了我以为的是flag.php 文件里面没有 f l a g 这个变量看了其他师傅们的博客知道是因为对于这个文件的 g e t F l a g 来说 flag 这个变量看了其他师傅们的博客知道是因为对于这个文件的getFlag来说 flag这个变量看了其他师傅们的博客知道是因为对于这个文件的getFlag来说flag是一个外部变量没有访问的权限于是就要用到超全局变量GLOBALS $GLOBALS 是PHP的一个超级全局变量组包含了全部变量的全局组合数组变量的名字就是数组的键。 于是?v1ctfshowv2GLOBALS get到flag 3. 知识点PHP中的超全局变量 font stylecolor:rgb(251, 71, 135);$_GET/font 用于收集 URL 中查询字符串的变量。当你通过 URL 传递参数时可以使用这个变量访问这些参数。示例: font stylecolor:rgb(251, 71, 135);$_GET[name]/font 获取 URL 中的 font stylecolor:rgb(251, 71, 135);?namevalue/font 中的 font stylecolor:rgb(251, 71, 135);value/font。 font stylecolor:rgb(251, 71, 135);$_POST/font 用于收集通过 HTTP POST 方法发送到脚本的数据。通常用于表单提交。示例: font stylecolor:rgb(251, 71, 135);$_POST[username]/font 获取通过 POST 提交的表单中 font stylecolor:rgb(251, 71, 135);username/font 字段的值。 font stylecolor:rgb(251, 71, 135);$_REQUEST/font 包含了 font stylecolor:rgb(251, 71, 135);$_GET/font、font stylecolor:rgb(251, 71, 135);$_POST/font 以及 font stylecolor:rgb(251, 71, 135);$_COOKIE/font 的所有数据是一个合并的数组。你可以通过它来访问表单数据无论是 GET 还是 POST甚至是 cookies 中的值。示例: font stylecolor:rgb(251, 71, 135);$_REQUEST[anyField]/font。 font stylecolor:rgb(251, 71, 135);$_SESSION/font 用于在用户会话期间存储数据。会话数据存储在服务器上并通过会话 ID 区分。示例: font stylecolor:rgb(251, 71, 135);$_SESSION[user_id]/font 可能保存用户登录状态。 font stylecolor:rgb(251, 71, 135);$_COOKIE/font 用于访问存储在用户计算机上的 cookie 数据。可以读取和设置 cookie。示例: font stylecolor:rgb(251, 71, 135);$_COOKIE[logged_in]/font 获取名为 font stylecolor:rgb(251, 71, 135);logged_in/font 的 cookie 值。 font stylecolor:rgb(251, 71, 135);$_FILES/font 用于访问通过 HTTP POST 上传到脚本的文件。这个变量是一个数组包含了文件的相关信息。示例: font stylecolor:rgb(251, 71, 135);$_FILES[file][name]/font 获取上传文件的原始文件名。 font stylecolor:rgb(251, 71, 135);$_SERVER/font 包含了关于当前请求和脚本执行环境的信息。例如HTTP 头、路径、脚本位置等。’示例: font stylecolor:rgb(251, 71, 135);$_SERVER[HTTP_USER_AGENT]/font 获取用户的浏览器信息。 font stylecolor:rgb(251, 71, 135);$_ENV/font 用于访问环境变量。通常来自服务器上配置的环境变量。示例: font stylecolor:rgb(251, 71, 135);$_ENV[PATH]/font 可能包含系统的 PATH 环境变量。 font stylecolor:rgb(251, 71, 135);GLOBALS/font 是一个包含了所有全局变量的关联数组。你可以通过这个数组访问在函数或方法外定义的变量。示例: font stylecolor:rgb(251, 71, 135);GLOBALS[myVar]/font 访问全局变量 font stylecolor:rgb(251, 71, 135);$myVar/font。 题目web 112 1. 题目 2. 解题思路这个题考察的是文件包含题目中filter函数过滤的有…/ 上级目录字符串http data https input rot13 base64 string 等包含伪协议的关键字那么我们就要 利用其他伪协议的替代这里用到的是 3. 知识点伪协议的替代协议题目web 113 1. 题目 2. 解题思路这个题又过滤了filter于是上一题的payload无法使用 又去查找了其他协议发现还有compress.zlib://和compress.zip2://协议于是使用compress.zlib://协议**filecompress.zlib://flag.php**可以访问到结果但是这里有一个疑问第二个协议却不行两者都是对压缩文件生效的但是这里flag,php 不是压缩文件也生效了 3. 看看还有没有其他的解法可以使用有的兄弟有的 通过/proc/self/root访问根文件系统中的任何文件和目录。 这里有一个前提知识 在Linux系统中/proc/self/root/是一个指向当前进程根文件系统挂载点的符号链接。通常它直接指向系统的根目录/ 在大多数Linux文件系统中路径解析不会因为连续的/或重复的目录名如多次出现的/proc/self/root/而改变最终访问的文件。 那么我们就可以利用多个挂载符号连接超过函数可以解析的最大限制从而实现目录溢出访问到我们想要的文件于是构造payloadfile/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/var/www/html/flag.php得到结果 4. 知识点伪协议的替代 使用**/proc/self/root**目录溢出题目web 114 1. 题目 2. 解题思路这道题目将filter换成了compress zip root等形式那么就过滤了使用根目录的特殊符号挂载符号也不能使用上次试过的compress协议于是可以使用filter直接访问源文件就行filephp://filter/resourceflag.php得到好结果 3. 另解使用filter的过滤器解压与压缩?filephp://filter/readzlib.deflate|zlib.Inflate/resourceflag.php这里将当访问该 URL 时PHP 引擎会首先读取 font stylecolor:rgb(251, 71, 135);flag.php/font 文件的内容由于选用了 font stylecolor:rgb(251, 71, 135);zlib.deflate/font 过滤器文件内容在输出之前会被压缩。紧接着通过 font stylecolor:rgb(251, 71, 135);|/font 符号将压缩的数据传送给 font stylecolor:rgb(251, 71, 135);zlib.Inflate/font 过滤器这样最终的结果就是 font stylecolor:rgb(251, 71, 135);flag.php/font 的内容被解压并展示。 4. 知识点filter 过滤器的种类
在 php://filter 路径中可以指定多种过滤器来对读取的文件内容进行预处理。这些过滤器主要分为字符串过滤器、转换过滤器、压缩过滤器和加密过滤器四大类。以下是对这些过滤器的详细归纳
一、字符串过滤器string.rot13功能对数据进行 ROT13 编码。ROT13 编码是一种简单的替换密码它将字母表中的每个字母替换为字母表中13位之后的字母忽略非字母字符。示例php://filter/readstring.rot13/resourceflag.phpstring.toupper功能将字符串转换为大写。示例php://filter/readstring.toupper/resourceflag.phpstring.tolower功能将字符串转换为小写。示例php://filter/readstring.tolower/resourceflag.phpstring.strip_tags功能去除字符串中的 HTML 和 PHP 标签。示例php://filter/readstring.strip_tags/resourceflag.php
二、转换过滤器convert.base64-encode功能对数据进行 Base64 编码。示例php://filter/readconvert.base64-encode/resourceflag.phpconvert.base64-decode功能对数据进行 Base64 解码。convert.quoted-printable-encode功能对数据进行 Quoted-Printable 编码。convert.quoted-printable-decode功能对数据进行 Quoted-Printable 解码。convert.iconv.*功能将数据流的内容按照指定字符编码进行转换。使用格式convert.iconv.input-encoding.output-encoding 或 convert.iconv.input-encoding/output-encoding示例将 flag.php 的内容从 UCS-2LE 编码转换为 UCS-2BE 编码php://filter/convert.iconv.UCS-2LE.UCS-2BE/resourceflag.php
三、压缩过滤器zlib.deflate功能对数据进行 zlib 压缩。zlib.inflate功能对数据进行 zlib 解压。bzip2.compress功能对数据进行 bzip2 压缩。bzip2.decompress功能对数据进行 bzip2 解压。
四、加密过滤器mcrypt.* 和 mdecrypt.*功能使用 libmcrypt 提供对称的加密和解密。示例格式mcrypt.ciphername其中 ciphername 是密码的名字将被传递给 mcrypt_module_open()。注意这些过滤器的使用可能需要 PHP 的 mcrypt 扩展库支持并且需要指定加密算法和模式等参数。然而需要注意的是mcrypt 扩展在 PHP 7.1.0 中已经被废弃并在 PHP 7.2.0 中被完全移除。因此在现代的 PHP 环境中建议使用其他加密扩展如 OpenSSL。题目web 115 1. 题目 2. 解题思路分析题目发现题目要求我们get一个参数num要求这个函数不是数字—!is_numeric(),去掉首位空白符得到的不强等于36通过filter函数38在进行比较如果弱等于36那么输出flag于是我们构造payload首先第一个函数is_numeric通过空白符就可以绕过第二个函数trim函数处理的范围包括 对于 trim() 函数会去除空格( %20)、制表符(%09)、换行符(%0a)、回车符(%0d)、空字节符(%00)、垂直制表符%0b不包括换页符%0c。由于这里是强比较不会进行类型转换在trim函数后其与‘36’不强相等其次由于这些都不在filter函数内于是乎可以绕过过滤得到flag 3. 知识点强类型比较时候不进行类型转换直接进行的是字符串的比较 文章转载自: http://www.morning.yhwyh.cn.gov.cn.yhwyh.cn http://www.morning.kspfq.cn.gov.cn.kspfq.cn http://www.morning.qcrhb.cn.gov.cn.qcrhb.cn http://www.morning.ktyww.cn.gov.cn.ktyww.cn http://www.morning.yqzyp.cn.gov.cn.yqzyp.cn http://www.morning.rswtz.cn.gov.cn.rswtz.cn http://www.morning.qbksx.cn.gov.cn.qbksx.cn http://www.morning.bwgrd.cn.gov.cn.bwgrd.cn http://www.morning.ljdtn.cn.gov.cn.ljdtn.cn http://www.morning.pzbqm.cn.gov.cn.pzbqm.cn http://www.morning.8yitong.com.gov.cn.8yitong.com http://www.morning.ryxgk.cn.gov.cn.ryxgk.cn http://www.morning.yqqgp.cn.gov.cn.yqqgp.cn http://www.morning.yqpck.cn.gov.cn.yqpck.cn http://www.morning.zmlnp.cn.gov.cn.zmlnp.cn http://www.morning.ykmg.cn.gov.cn.ykmg.cn http://www.morning.thbqp.cn.gov.cn.thbqp.cn http://www.morning.klyyd.cn.gov.cn.klyyd.cn http://www.morning.gbrdx.cn.gov.cn.gbrdx.cn http://www.morning.gzxnj.cn.gov.cn.gzxnj.cn http://www.morning.gfprf.cn.gov.cn.gfprf.cn http://www.morning.ybhjs.cn.gov.cn.ybhjs.cn http://www.morning.hmbxd.cn.gov.cn.hmbxd.cn http://www.morning.xhgcr.cn.gov.cn.xhgcr.cn http://www.morning.ktmbp.cn.gov.cn.ktmbp.cn http://www.morning.hbhnh.cn.gov.cn.hbhnh.cn http://www.morning.nfks.cn.gov.cn.nfks.cn http://www.morning.lbcfj.cn.gov.cn.lbcfj.cn http://www.morning.znqxt.cn.gov.cn.znqxt.cn http://www.morning.pjwrl.cn.gov.cn.pjwrl.cn http://www.morning.c7498.cn.gov.cn.c7498.cn http://www.morning.ymhjb.cn.gov.cn.ymhjb.cn http://www.morning.rgtp.cn.gov.cn.rgtp.cn http://www.morning.ygqjn.cn.gov.cn.ygqjn.cn http://www.morning.pngdc.cn.gov.cn.pngdc.cn http://www.morning.skdhm.cn.gov.cn.skdhm.cn http://www.morning.gsjfn.cn.gov.cn.gsjfn.cn http://www.morning.mmosan.com.gov.cn.mmosan.com http://www.morning.qnbgk.cn.gov.cn.qnbgk.cn http://www.morning.fksrg.cn.gov.cn.fksrg.cn http://www.morning.mnsmb.cn.gov.cn.mnsmb.cn http://www.morning.rbjf.cn.gov.cn.rbjf.cn http://www.morning.rzczl.cn.gov.cn.rzczl.cn http://www.morning.rxrw.cn.gov.cn.rxrw.cn http://www.morning.fhrt.cn.gov.cn.fhrt.cn http://www.morning.xjqrn.cn.gov.cn.xjqrn.cn http://www.morning.ppqzb.cn.gov.cn.ppqzb.cn http://www.morning.ndmbz.cn.gov.cn.ndmbz.cn http://www.morning.bpmnc.cn.gov.cn.bpmnc.cn http://www.morning.yjprj.cn.gov.cn.yjprj.cn http://www.morning.ssjee.cn.gov.cn.ssjee.cn http://www.morning.gqfjb.cn.gov.cn.gqfjb.cn http://www.morning.lflsq.cn.gov.cn.lflsq.cn http://www.morning.xcnwf.cn.gov.cn.xcnwf.cn http://www.morning.sgnxl.cn.gov.cn.sgnxl.cn http://www.morning.xnymt.cn.gov.cn.xnymt.cn http://www.morning.jlktz.cn.gov.cn.jlktz.cn http://www.morning.nqrlz.cn.gov.cn.nqrlz.cn http://www.morning.pnmtk.cn.gov.cn.pnmtk.cn http://www.morning.fjzlh.cn.gov.cn.fjzlh.cn http://www.morning.mjxgs.cn.gov.cn.mjxgs.cn http://www.morning.mrpqg.cn.gov.cn.mrpqg.cn http://www.morning.cqrenli.com.gov.cn.cqrenli.com http://www.morning.dpnhs.cn.gov.cn.dpnhs.cn http://www.morning.mdmqg.cn.gov.cn.mdmqg.cn http://www.morning.ydwsg.cn.gov.cn.ydwsg.cn http://www.morning.rongxiaoman.com.gov.cn.rongxiaoman.com http://www.morning.clxpp.cn.gov.cn.clxpp.cn http://www.morning.jtmql.cn.gov.cn.jtmql.cn http://www.morning.pdwzr.cn.gov.cn.pdwzr.cn http://www.morning.dlurfdo.cn.gov.cn.dlurfdo.cn http://www.morning.pzbjy.cn.gov.cn.pzbjy.cn http://www.morning.yxbdl.cn.gov.cn.yxbdl.cn http://www.morning.yrskc.cn.gov.cn.yrskc.cn http://www.morning.zfcfx.cn.gov.cn.zfcfx.cn http://www.morning.bpmfl.cn.gov.cn.bpmfl.cn http://www.morning.jjsxh.cn.gov.cn.jjsxh.cn http://www.morning.ksbmx.cn.gov.cn.ksbmx.cn http://www.morning.attorneysportorange.com.gov.cn.attorneysportorange.com http://www.morning.jrdbq.cn.gov.cn.jrdbq.cn