记一下最近写过的题目:
1:

进去一看不用想直接文件上传,bp抓包后常规改一下文件格式、文件头和文件名称,发现不行,应该是文件后缀过滤了

使用双写后缀名,添加特殊字符,url编码发现都不能绕过,查询资料后发现可以先上传一个.user.ini文件,这个是php中的配置文件,在其中添加配置指令可以自动执行指定的文件,详情:链接
理论具备,实践开始,先上传.user.ini文件,配置自动执行1.jpg文件,auto_prepend_file=1.jpg

ok呀!也是上传成功了,上传时注意到一个细节文件头要和上面的content-type隔开,不然上传不成功,每个部分间都要有隔开,看下面看两段内容也是

接下来按部就班上传一句话木马,不过上传中发现文件内容里面有php也不行,改成<?=绕过
最后蚁剑连接查看文件中的flag
2:

进入场景后翻译一下发现是一个猜数字游戏,猜中的数字越多获得的币越多,估计是通过某种方式猜中数字后获得flag,简单看一下页面后查看一下给的附件

去除掉一些关于前端页面的代码文件不看,查看config.php发现就是通过猜中数字获得币后直接买flag

查看api.php发现是关于猜数字的实现逻辑,仔细看了下后发现在比较猜的数字时使用的是弱等于==,那么考虑抓包后将数字全改为true,经过弱等于比较会自动将非0的数字也转换为布尔值true,多试几次积攒到币后直接买flag
3.
简单记录一下:
X-Forwarded-For: ip,可以伪造ip地址
Referer:http://…com,伪造链接来源
4.

根据提示进入设备维护中心页面

一番探测后发现当点击云平台设备维护中心时页面会打印index,url地址栏中出现?page=index,怀疑此处为注入点,尝试文件包含漏洞,通过php伪协议构造payload:?page=php://filter/convert.base64-encode/resource=index.php 读取网页面源码

源码解码后发现

需要伪造ip地址登陆后台,抓包后在请求头添加X-Forwarded-For:127.0.0.1,不能将这段添加到报文最下方

成功进入后台
再根据源码中preg_replace函数,该函数采用正则将第三个参数中的第一个参数用第二个参数替换,如果用/e那么会将替换的参数当作代码执行
preg_replace(/pat/e,rep,sub)
命令执行逐步探测出flag.php目录并读取

拿到flag