目录

[第五空间 2021]WebFTP

[LitCTF 2023]PHP是世界上最好的语言!!

[SWPUCTF 2021 新生赛]PseudoProtocols

[LitCTF 2023]导弹迷踪

[NISACTF 2022]easyssrf


[第五空间 2021]WebFTP

1.进入页面,发现是登录页面,想到

弱口令;

sql万能密码;

webftp2011的漏洞;

扫目录;

前端源代码有没有泄露些内容;

NSSCTF中的web插图

2.经过尝试,最后使用disearch来扫描,发现.git文件和phpinfo.php

NSSCTF中的web插图(1)NSSCTF中的web插图(2)

3.访问phpinfo.php找到flag

NSSCTF中的web插图(3)

[LitCTF 2023]PHP是世界上最好的语言!!

1.根据题目提示,flag在根目录下,所以在右边边框执行php代码,并且查看根目录

NSSCTF中的web插图(4)

2.找到flag,使用cat命令得到flag

NSSCTF中的web插图(5)

[SWPUCTF 2021 新生赛]PseudoProtocols

1.根据题目提示,需要用到php伪协议,构造payload+php://filter/read=convert.base64-encode/resource=hint.php,来读取文件

NSSCTF中的web插图(6)

2.很明显是一串base64编码,解码可得test的php文件

NSSCTF中的web插图(7)

3.访问这个文件,得到php代码

NSSCTF中的web插图(8)

代码可翻译为:
  

4.分析可得与文件包含有关,有两种解法

解法一:php://input

                   —-可以访问请求的原始数据的只读流, 将post请求中的数据作为PHP代码执行。

php://input是php语言中一个只读的数据流;通过”php://input”,可以读取从Http客户端以POST方式提交、请求头“Content-Type”值非”multipart/form-data​”的所有数据;

“php://input”一般用来读取POST上来,除已被处理以外的剩余数据。

说白了就是当遇到正则匹配时GET传参不能出现的敏感字符,可以通过php://input在POST上传最后绕过了检测。

NSSCTF中的web插图(9) 

解法二:data://

示例用法:

    1、data://text/plain,
    http://127.0.0.1/include.php?file=data://text/plain,
    2、data://text/plain;base64,
    http://127.0.0.1/include.php?file=data://text/plain;base64,PD9waHAgcGhwaW5mbygpOz8%2b

知识点:

file://伪协议 (读取文件内容)

通过file协议可以访问本地文件系统,读取到文件的内容

data://(读取文件)和php伪协议的input类似,碰到file_get_contents()来用

data:// 数据流封装器,以传递相应格式的数据。可以让用户来控制输入流,当它与包含函数结合时,用户输入的data://流会被当作php文件执行

php://input(任意代码执行)

遇到file_get_contents()要想到用php://input绕过。

php://input 可以访问请求的原始数据的只读流,将post请求的数据当作php代码执行。当传入的参数作为文件名打开时,可以将参数设为php://input,同时post想设置的文件内容,php执行时会将post内容当作文件内容。从而导致任意代码执行。

NSSCTF中的web插图(10)

[LitCTF 2023]导弹迷踪

通过这道题,学到了新的解题思路,查看源代码时应该注意js文件(game.js)

1.通过查看js文件,找到flag

NSSCTF中的web插图(11)

NSSCTF中的web插图(12)

[NISACTF 2022]easyssrf

1.题目提示了使用 curl 连接输入的网站并返回响应包,想到使用php伪协议,使用file://伪协议 (读取文件内容)用法:

file://[文件的绝对路径和文件名]

了解什么是curl命令:curl是一个利用 URL 语法在命令行下工作的文件传输工具,该工具支持以下多种类型的传输方式,这当中包含多种协议,最常使用的有FILE、FTP、HTTP、HTTPS等协议。

资料参考:Linux curl命令最全详解-CSDN博客

强大的curl命令的介绍和一般用法_curl命令参数-CSDN博客 

 NSSCTF中的web插图(13)

2.根据提示,查看/fl4g文件

NSSCTF中的web插图(14)

3.访问这个php文件,得到代码

stristr()函数的介绍:

NSSCTF中的web插图(15)

 <?php

highlight_file(__FILE__);
error_reporting(0);

$file = $_GET["file"]; //从 GET 请求中获取名为 "file" 的参数,并将其值赋给 $file 变量
if (stristr($file, "file")){  //使用 stristr 函数检查 $file 变量中是否包含 "file" 字符串。
  die("你败了.");
}

//flag in /flag
echo file_get_contents($file);  //使用 file_get_contents 函数读取 $file 变量指定的文件内容。

4.使用php伪协议,构造payload:url+?file=php://filter/write=convert.base64-encode/resource=/flag

NSSCTF中的web插图(16)

或者进行依次的查找flag

NSSCTF中的web插图(17)

本站无任何商业行为
个人在线分享 » NSSCTF中的web
E-->