ctfshow web95-104

web(95)

直接使用上一题的即可。【\. 表示. 因为.有代表的含义了所以使用转义符来转义下。】

web(96)【路径问题】

文件读取我们可以使用php伪协议来直接读取。或者使用./flag.php的形式来进行读取。

?u=/var/www/html/flag.php              绝对路径

?u=./flag.php                          相对路径

web(97)【md5函数;isset函数】

isset()函数用于检测变量是否已设置并且非 NULL。

md5()函数计算字符串的MD5散列。

他需要a的值不等于b的值,但他们的散列要相等。因为php在面对开头为零哈希值时,会自动将其归为零,还有就是md5函数是无法计算数组的我们可以利用这一漏洞来构建,解决。a[ ]=1&b[ ]=2;   post传参。

web(98)【三目运算符】

三目运算符和取地址,首先二三行是无用的,第一行的含义是存在get传参就将post覆盖get,我们可以利用这一点来进行解决,可以构建get传参?1=3,【随便构建一个】然后是post传参,它的为HTTP_FLAG=flag然后他就会输出flag。

三目运算符:

web(99)【in_array函数】

array_push() 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度。

rand()函数是Excel中产生随机数的一个随机函数。返回的随机数是大于等于 0 及小于 1 的均匀分布随机实数,rand()函数每次计算工作表时都将返回一个新的随机实数。

in_array函数功能 -- 检查数组中是否存在某个值。

file_put_contents() 函数把一个字符串写入文件中。

该函数访问文件时,遵循以下规则:

  1. 如果设置了 FILE_USE_INCLUDE_PATH,那么将检查 *filename* 副本的内置路径
  2. 如果文件不存在,将创建一个文件
  3. 打开文件
  4. 如果设置了 LOCK_EX,那么将锁定文件
  5. 如果设置了 FILE_APPEND,那么将移至文件末尾。否则,将会清除文件的内容
  6. 向文件中写入数据
  7. 关闭文件并对所有文件解锁

如果成功,该函数将返回写入文件中的字符数。如果失败,则返回 False。

脚本跑的,ctfshow-Web1000题系列修炼(一) | dota_st   其中

status_code==200表明请求成功。response.getStatusCode()==200什么意思_大西瓜不甜的博客-CSDN博客_statuscode200什么意思 相关注解。

这个相对简便。总的来说就是在36到840次数之间分别从一到三十六,一到三十七。。。。逐步递增加数。我们随便选择一个在其中范围内的数字来进行添加一句话,之后查找目录,得到flag所在之后,然后用post输出既可以。

Web(100)【优先级问题】

is_numeric — 检测变量是否为数字或数字字符串 ,为数字或字符串时返回为真。

这道题目的重点是运算符的优先级问题https://www.jb51.net/article/42425.htm

?v1=1&v2=system("tac ctfshow.php")&v3=;得到的flag中0x2d要替换成-。

Web(101)【反射类】

这里使用了反射类,PHP Reflection API是PHP5才有的新功能,它是用来导出或提取出关于类、方法、属性、参数等的详细信息,包括注释。

$class = new ReflectionClass(‘ctfshow’); // 建立 Person这个类的反射类

$instance = $class->newInstanceArgs($args); // 相当于实例化ctfshow类

我们构建?v1=1&v2=print new ReflectionClass&v3=;

Web(102)【call_user_func;file_put_contents】

call_user_func()函数 PHP函数详解:call_user_func()使用方法_风雅的远行者的博客-CSDN博客_call_user_func()

就是一种特别的调用方法。来调用函数。

file_put_contents()函数 php file_put_contents函数怎么用?-PHP问题-PHP中文网 写入文件。

首先我们要将一部分代码写入文件中但有代码可知我们要从v2中得到相关的代码,v2又需要是数字,所以我们要保证v2是数字,然后str是代码,可以先将v3使用伪协议用base64写入,所以这个时候的str是base64代码,call_user_func()函数为一个过度,hex2bin函数可以转换十六进制。V1要传入的是就是hex2bin函数,之后调用所以,v2应该是先base64然后是十六进制。

?v2=00504438395948526859794171594473&v3=php://filter/write=convert.base64-decode/resource=dotast.php

post:

v1=hex2bin

web(103)【】

这里多了一个正则匹配,不能出现php,,套用上一题目的方法就可以通过。

Web(104)【shal函数】

首先isset函数检测变量是否为空,为空返回flase,

shal函数加密类似md5

所以构建数组,他无法处理数组

       ?v2[ ]=

Post:

V1[ ]=

Web(105)【】

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值