ctfshow刷题记录web89-99

一系列PHP代码示例展示了不同类型的漏洞,如整数溢出、类型转换和文件包含等,并提供了相应的payload来演示如何利用这些漏洞。同时,代码也揭示了如何通过校验和过滤来防止攻击,强调了安全编码的重要性。

web89

<?php

/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-09-16 11:25:09
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-18 15:38:51
# @email: h1xa@ctfer.com
# @link: https://ctfer.com

*/


include("flag.php");
highlight_file(__FILE__);

if(isset($_GET['num'])){
    $num = $_GET['num'];
    if(preg_match("/[0-9]/", $num)){
        die("no no no!");
    }
    if(intval($num)){
        echo $flag;
    }
}

paylaod:?num[]=1

web90

<?php

/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-09-16 11:25:09
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-18 16:06:11
# @email: h1xa@ctfer.com
# @link: https://ctfer.com

*/


include("flag.php");
highlight_file(__FILE__);
if(isset($_GET['num'])){
    $num = $_GET['num'];
    if($num==="4476"){
        die("no no no!");
    }
    if(intval($num,0)===4476){
        echo $flag;
    }else{
        echo intval($num,0);
    }
}

payload:?num=4476a

web91

<?php

/*
# -*- coding: utf-8 -*-
# @Author: Firebasky
# @Date:   2020-09-16 11:25:09
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-18 16:16:09
# @link: https://ctfer.com

*/

show_source(__FI

<think>嗯,用户想了解如何本地部署CTFshowWEB入门SSTI题目。首先,我需要回忆一下SSTI(服务器端模板注入)的基本概念,以及CTFshow这类题目的常见设置。可能用户需要搭建一个本地环境,比如使用PHP的Twig或者Python的Flask/Jinja2,具体要看题目用的是哪种模板引擎。 接下来,我需要考虑用户可能使用的技术栈。常见的本地部署可能会用到Docker、XAMPP或者直接配置Apache/Nginx。假设题目是基于PHP的,比如使用Twig模板引擎,那么需要配置PHP环境,并确保模板文件正确解析。记得用户提到的引用[1]提到IIS 6.0下.php后缀的文件会被解析,但这里可能需要Apache或Nginx的配置。例如,在Apache中,确保.htaccess正确设置,或者配置虚拟主机。 然后,用户可能需要修改题目中的一些配置,比如路由设置或者服务端代码。引用[2]提到servlet-class和url-pattern,这涉及到Java Web应用的配置,但如果题目是PHP或Python的,可能需要不同的配置方法。比如在Flask中,路由是通过装饰器定义的,而在PHP中可能需要修改.htaccess文件或服务器配置。 另外,安全设置也是需要考虑的,比如禁用危险函数,或者设置合适的权限,防止本地环境被恶意利用。用户可能还需要安装相关的依赖库,比如Composer安装Twig,或者pip安装Flask。 可能遇到的问题包括:服务器配置错误导致模板不解析,依赖未安装,路由设置不正确导致无法访问题目页面。需要逐步检查环境配置,确保每一步都正确。比如,检查PHP版本是否兼容,模板引擎是否正确加载,以及文件权限是否正确。 最后,生成相关问题时要考虑用户可能进一步的需求,比如如何调试SSTI漏洞,或者如何搭建其他类型的CTF题目环境,以及安全注意事项。需要确保回答清晰,步骤详细,并引用相关的参考资料来增强可信度。</think>### CTFshow WEB入门SSTI题目本地部署教程 #### 一、环境准备 1. **Web服务器选择**:推荐使用Apache或Nginx,需支持PHP/Python解析(根据题目具体语言) - 若使用PHP环境,建议安装PHP 7.x + Apache组合[^1] - 示例Apache配置: ```apache <VirtualHost *:80> DocumentRoot "/var/www/ssti" <Directory "/var/www/ssti"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost> ``` 2. **模板引擎安装**: - 对于PHP Twig模板: ```bash composer require twig/twig ``` - 对于Python Flask/Jinja2: ```bash pip install flask ``` #### 二、题目部署步骤 1. **代码结构调整**: ```text 项目目/ ├── templates/ │ └── index.html ├── index.php # 或app.py └── vendor/ # PHP依赖目 ``` 2. **核心路由配置**(以PHP为例): ```php <?php require_once 'vendor/autoload.php'; $loader = new \Twig\Loader\FilesystemLoader('templates'); $twig = new \Twig\Environment($loader); $template = $twig->load('index.html'); echo $template->render($_GET); ``` 3. **安全限制解除**(调试需要): -php.ini中设置: ```ini disable_functions = allow_url_include = On ``` #### 三、访问验证 1. 启动Apache服务: ```bash sudo systemctl start apache2 ``` 2. 访问测试: ```bash curl http://localhost/?payload={{7*7}} # 应返回计算结果49 ``` #### 四、常见问题排查 1. **模板不解析**: - 检查文件权限:`chmod -R 755 templates/` - 验证Twig初始化是否正确 - 查看Apache错误日志:`tail -f /var/log/apache2/error.log` 2. **依赖缺失**: - PHP需安装mbstring扩展 - Python需安装Jinja2最新版
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值