您当前的位置: 首页 >  php

九枕

暂无认证

  • 2浏览

    0关注

    42博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

ctfshow学习记录-web入门(php特性109-115&123&125-126)

九枕 发布时间:2022-07-19 10:00:00 ,浏览量:2

目录
    • web109
    • web110
    • web111
    • web112
    • web113
    • web114
    • web115
    • web123
    • web125
    • web126

web109

解答:正则匹配要求v1和v2要包含字母。题目中eval里的语句,和之前web101有点相似。 初始化$v1,v1是个类,$v2()是参数。

这道题用到了魔术方法__toString(),不少php的内置类里都包含有这个方法,如ReflectionclassExceptionError

不知道哪些类有的话,可以用php手册搜一下。 在这里插入图片描述 __toString():当一个对象被当作字符串对待的时候,会触发这个魔术方法,格式化输出这个对象所包含的数据。

PHP5.2.0之前,__toString() 方法只在使用 echo 或 print 时才生效。PHP5.2.0之后,可以在任何字符串环境生效。

所以echo使得$v1类触发__toString(),传递的参数v2会被输出。

payload: ?v1=CachingIterator&v2=system(ls) ?v1=Exception&v2=system('cat fl36dg.txt') 在这里插入图片描述在这里插入图片描述 最后,再对v2后面的括号进行解释,如v2=system(ls),$v2()会把$v2返回的值会作为函数名去调用,但是调用失败了。

只要变量后面紧跟着(),那么对这个变量进行函数调用。

如可以让返回值是phpinfo,就可以调用phpinfo()。 在这里插入图片描述

web110

解答:不能包含数字和上面一系列的符号,下划线和括号都不行,只能输入字母。v1是类名,v2是函数名,同时该函数的返回值是string,可以触发__toString()。

先用?v1=exception&v2=phpinfo查看一下有没有限制什么函数,以及扩展都有什么。

接下来就是找返回值是字符串的无参数函数。 FilesystemIterator ?v1=FilesystemIterator&v2=getcwd 返回第一个文件,正好是flag的文件。 在这里插入图片描述 flag文件就在当前目录下,所以直接访问即可获取flag。 在这里插入图片描述 知识点: DirectoryInterator:遍历目录的类 FilesystemIterator:遍历文件的类

web111

解答:v1和v2只能输入字母,同时1要包含字符串ctfshow。

看一下getFlag,&属于地址传参,意思就是在函数内,如果对v1和v2变量进行修改,就是真实的被修改了。因此题目说的是变量覆盖。

eval("$$v1 = &$$v2;"); 意思是:以v1变量的值为新的变量名,和以v2变量的值为新的变量名,这两个新的变量指向同一个地址,改变一个的值另外一个也跟着改变。如下示例:

$n1=a;$n2=b;

$$n1=$a;$$n2=$b;  ==>  $a=&$b;#变量b将地址传给了变量a,即两个变量指向同一个地址

v1用来满足条件判断,v2用来输出想要的信息,v2也是只能输入字母。include(flag.php),$flag是在外部声明,不能直接使用。 可以查看一下全局变量,发现flag。 payload:?v1=ctfshow&v2=GLOBALS 在这里插入图片描述

web112

解答:限制了部分伪协议,但是php://filter还可以用,可以不用过滤器直接读取。 同时if判断要求file不能为文件,可以用包装器伪协议来绕过。 伪协议不影响file_get_contents,和highlight_file。

payload1:?file=php://filter/resource=flag.php 在这里插入图片描述 payload2:也可以用web117的convert.iconv过滤器读取。 ?file=php://filter/convert.iconv.UCS-2LE.UCS-2BE/resource=flag.php 在这里插入图片描述 读完需要转一下。

结尾。 GET:?$fl0g=flag_give_me; POST:CTF_SHOW=&CTF[SHOW.COM=&fun=eval($a[0]) 在这里插入图片描述

关注
打赏
1662624000
查看更多评论
立即登录/注册

微信扫码登录

0.0394s