前言
我好菜,打着打着就忘了之前打过的靶场的思路了
Web89
intval取整数 就跟python中的int一样
这里是只要有0-9就输出nonono 但是还需要是传出去是整数
所以我们用数组绕过
Web90
intval($var,$base),其中var必填,base可选,这里base=0,则表示根据var开始的数字决定使用的进制: 0x或0X开头使用十六进制,0开头使用八进制,否则使用十进制。
这里是0开头 说明是根据开始的数字决定使用的进制
这里用的是八进制十六进制绕过 加0是告诉服务器这是八进制 如果转换成十六进制需要加0x
Web91
不想打字了,感觉WP里给的说的好全面
i忽略大小写 m多行模式 我们只要让我们的参数里含有php即可
payload:cmd?=111%0aphp 或者cmd?=php%0aggg
Web92
这里与web90的不同之处就在于等号了
===表示类型和数值必须相等 ==是值相等就可以类型不一定相等
我们知道强制转换如果是小数部分的话会舍弃小数部分直接构造小数
Web93
不解释直接秒
Web94
查一下strpos用法
这里说明我们得含有0 但不能在开头,因为开头告诉服务器使用几进制
Web95
过滤了.八进制起手 +或者空格绕过最后一个限制
Web96
直接远程读取高亮显示
Web97
这个意思需要我们post传入a和b的内容不同但md5的值一样
Web98
三元操作符号 以冒号为分隔 如果?之前成立则执行一,否则执行二
第二个和第三行意思一样 没用 直接看最后一行 如果get的值http_flag==flag则输出flag
因为之前传的get会给咱们变成post 所以咱们直接传get
post里传值
Web99
头稍微有点小大,我们的目的应该是把content里传入一句话木马,写入n里即可
写入n 那么n肯定是php中吧所以后缀肯定让n=几php 0x36d 一眼十六进制 转化过来是877
接下来就是上蚁剑连接
WEB100
=的优先级比and高 所以只需满足V1是数字=true让if那里成立 让后尝试绕过第一个if
第一个if不含; 第二个if含;
Web101
过滤的更多了,
这里是新建了一个类,通过反射类拿到flag,在java一些语言也有(都是看wp说的..
v3并没有给;所以可以让v3=;
?v1=1&v2=echo new ReflectionClass&v3=;
最后转换少一位爆破就可以了
Web102
需要好好考虑一下构造payload
我们的内容是什么 我们的内容是把str的内容写进v3 也就说str里要写eval函数或者能拿flag的函数
根据优先级的问题还是让v1=1这样才能v4等于true
$str = call_user_func($v1,$s); 意思我们通过调用v1这个函数(hex2bin这个函数将十六进制转换为二进制字符串) 执行s并把执行结果给str 让后把str的结果写给进v3
v3得的后缀是个php把 这样才能写进去 通过伪协议进行创建
substr截取两个字符 也就是从第三个字符开始读取 所以要用十六进制 让后通过hex2bin将十六进制转换为二进制字符串 关键这个十六进制改怎么构建 我们需要把<?php `cta *`?> 转换一下 我们可以先把他转换成base64 再把base64转换为十六进制
5044383959474e6864434171594473=PD89YGNhdCAqYDs=<?php `cta *`?>
但是为了截取两个数字那么要从要在前面十六进制加两个数字随便加个99吧995044383959474e6864434171594473
加什么都无所谓都会被截取
?v2=995044383959474e6864434171594473&v3=php://filter/write=convert.base64-
decode/resource=godyu.php
POST里传
v1=hex2bin
访问godyu.php 右键查看源代码
Web103
上把的直接梭哈
WEB104
sha1转换一下直接秒
暂无评论内容