最近临近期末考试了,所以打算抽取时间来复习一下高数,线代,不然就要挂科了😭 后面难一些的地方后面再继续练习学习。但是学习也不能停搁,周六学校的战队也要进行纳新面试了,因此那就借CTFHub技能树,综合做一下刚开始学习时的一些基础漏洞,也算是回顾复习一下🐱👤
(1) eval执行eval()函数
eval()函数中的eval是evaluate的简称,这个函数的作用就是把一段字符串当作PHP语句来执行
这里只是简单让我们理解一下eval函数,并没有对我们get传入的cmd进行过滤。因此我们可以直接传入我们的命令:
进行ls /查看根目录文件,发现 flag_8215
传入 cat 命令,得到flag。
题目提示 i have a shell, how to use it?
可知shell文件是shell.txt 我们包含shell.txt文件 就可以用eval()函数执行任意命令
传入?file=shell.txt&ctfhub=system('ls');
再传入cat /flag 得到flag。
(3) php://input看题目就知道,是考察我们对php伪协议的理解
之前文章里有提到过。
我们在phpinfo()界面里发现 allow_url_include on
php://input
用法: 可以访问请求的原始数据的只读流,将post请求中的数据作为PHP代码执行.
因此可以用php://input 来执行post输入流的命令
不知道为什么hackbar没有反应。那就抓包到burp
发现flag文件 flag_21263
再改为cat /flag_21263 得到flag。
(4) 读取源代码(php://filter)和上一题一样,也是考察我们对php伪协议的了解。
我们可以通过filter协议来读取网页源代码。
题目提示 flag in /flag flag在/flag文件里
?file=php://filter/read=convert.base64-encode/resource=/flag
base64解码,得到flag。
(5) 远程包含(php://input)远程文件包含:
指定第三方服务器上可运行的php木马,拿到webshell,查看Flag文件。
phpinfo()发现,allow_url_fopen 和include都on,存在远程文件包含.
1. 命令执行
和上一题一样 php://input
cat /flag 得到flag。
2. 远程文件包含
具体就是这个图片酱紫,我也没搞 ,就这样吧
ping 命令可以测一下与主机网络联通情况。但是如果过滤不严的话,也会导致恶意命令执行。
可以用管道符 来执行我们想执行的命令。
传入 127.0.0.1 | ls
16579554914493.php 有点奇怪,估计藏有flag
传入 127.0.0.1 | cat 16579554914493.php
什么也看不见,但是查看源码,就发现了flag。
老办法,管道符执行我们命令之后,可知
flag 在当前目录的 flag_7709325353056.php文件里
不过看源码可知,flag被过滤了。可以用tac绕过 (head,tail,nl,vim,less,more等等都可以)
传入 127.0.0.1 | tac flag_7709325353056.php
查看源代码,发现flag
(8) 过滤空格老办法,管道符执行我们命令之后,可知
flag 在当前目录的 flag_628186223836.php 文件里
想cat flag_628186223836.php 但是空格被过滤了,怎么办呢?
空格过滤绕过:
${IFS}
$IFS$9
%09
%20
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?