CTFSHOW和青少年CTFweb刷题

WEB12

打开环境后得到这样一句话

查看一下源代码,提示我们进行传参,进行命令执行

进行传参,确认可以进行命令执行

?cmd=phpinfo();

那我们接下来就是用命令执行查找flag

?cmd=system('ls');

发现并没有什么用,题目给了提示需要用到glob() 函数highlight_file()函数

glob函数

glob() 函数返回一个包含匹配指定模式的文件名或目录的数组。该函数返回一个包含有匹配文件/目录的数组。如果失败则返回 FALSE。

说简单点就是glob()函数可以查找文件, 返回一个文件数组, 常配合通配符来遍历目录

 highlight_file()函数

hightlight_file()可以使文件内容高亮显示, 常用于读取文件内容

我们使用glob函数来遍历目录,再用print_r函数将目录打印出来

?cmd=print_r(glob('*'));

遍历后得到两个文件,我们一个一个找,运气好,flag就在903c00105c0141fd37ff47697e916e53616e33a72fb3774ab213b3e2a732f56f.php里

我们使用hightlight_file()函数使文件内容高亮显示,得到flag

?cmd=highlight_file('903c00105c0141fd37ff47697e916e53616e33a72fb3774ab213b3e2a732f56f.php');

web13

打开环境,发现是文件上传

上传一句话木马,并抓包看一看

提示文件太大了,使用dirsearch扫一扫看看有什么文件

发现uoload.php文件,直接访问访问不了,看一看有没有备份文件,访问upload.php.bak得到源码

<?php 
	header("content-type:text/html;charset=utf-8");
	$filename = $_FILES['file']['name'];
	$temp_name = $_FILES['file']['tmp_name'];
	$size = $_FILES['file']['size'];
	$error = $_FILES['file']['error'];
	$arr = pathinfo($filename);
	$ext_suffix = $arr['extension'];
	if ($size > 24){
		die("error file zise");
	}
	if (strlen($filename)>9){
		die("error file name");
	}
	if(strlen($ext_suffix)>3){
		die("error suffix");
	}
	if(preg_match("/php/i",$ext_suffix)){
		die("error suffix");
    }
    if(preg_match("/php/i"),$filename)){
        die("error file name");
    }
	if (move_uploaded_file($temp_name, '
### CTFShow Web 入门 代码审计 web303 解思路 对于CTFShow平台上Web入门级代码审计目web303,虽然具体细节未直接提及于提供的参考资料中,但从其他相似目的解析中可以获得一些通用的解方法技术。 #### 目背景理解 通常这类目涉及的是对给定PHP或其他服务器端脚本语言编写的程序进行静态分析。目的是找出潜在的安全漏洞,比如SQL注入、命令执行、文件包含等常见问[^1]。 #### 审计重点 - **输入验证不足**:检查是否存在未经充分过滤就使用的用户输入数据。 - **不安全的对象反序列化**:注意是否有对象被序列化存储在cookie或session中,并且这些对象会在后续操作被反序列化处理[^3]。 - **弱加密算法应用不当**:如果涉及到加解密逻辑,则需评估所采用的方法是否足够强壮以及实现方式上有没有缺陷[^5]。 #### 实际案例模拟 假设`web303.php`中有如下片段: ```php <?php class User { public $role; } if (isset($_COOKIE['user'])) { $user = unserialize(base64_decode($_COOKIE['user'])); } else { setcookie('user', base64_encode(serialize(new User()))); } ``` 这段代码存在明显的安全隐患——它允许攻击者构造恶意payload并通过设置特定格式的Cookie来控制变量 `$user->role` 的值,进而可能获得管理员权限或者其他敏感功能访问权。 为了利用这一点,可以创建一个新的 `User` 类实例并将属性设为期望的状态(例如将角色更改为admin),之后将其序列化再经过Base64编码作为新的Cookie发送请求即可完成提权过程。 #### 测试与验证 使用Burp Suite之类的代理工具拦截HTTP流量,在Cookies部分修改对应项的内容为精心设计后的字符串表示形式,提交后观察响应变化确认漏洞的存在与否及其影响范围。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值