ctfshow-萌新-web12( 利用命令执行函数获取网站敏感信息)
ctf.show 萌新模块 web12关, 这一关考察的是代码执行漏洞的利用, 重点在于命令执行函数的利用方式, 推荐使用反引号(``) 或者 base64加密绕过
页面中展示了部分源码, 并提示我们 falg 就在 config.php文件中, 读取文件内容即可拿到 flag
首先分析一下源码
重点在这个if判断中, 过滤了参数中的 system exec highlight cat . php config 关键字, 只要绕过这些过滤条件就能使用 eval()函数执行代码了
方法一, base64加密绕过
base64_decode(); -- base64解码,常用于参数绕过
base64_encode(); -- base64加密
查看当前目录文件, 拿到 config.php文件的位置
?c=passthru('ls');
由结果可知, 文件就在当前目录下
接下来获取 config.php 文件名base64加密后的值, 这里使用 base64_encode()函数来加密, 方法不唯一, 其他方式获取加密的值也可以
加密完成后, 利用base64加密后的文件名绕过过滤条件, 查看文件内容, 由于 cat命令被过滤了, 这里使用 more 代替
?c=$a = base64_decode('Y29uZmlnLnBocA==');passthru("more $a");
页面空显示, 但也没报错
右键查看网页源码即可看到文件内容, 获取 flag
方法二, 反引号绕过
反引号``, 可以执行系统命令, 并返回一个字符串类型的变量, 用来保存命令的执行结果, 需要注意的是, 反引号``中的命令会先被执行并将结果以字符串类型的变量返回, 而后再参与到其他代码的执行, 类似一个函数
首先查看当前目录下的文件, 确认 config.php 文件的位置
?c=echo `ls | grep conf*`;
由结果可知, 文件就在当前目录下
上面的命令 `ls | grep conf*` 返回结果是一个内容为 config.php 的字符串变量, 我们将返回结果作为文件名使用 more命令查看文件内容, 即可获取 flag
?c=passthru('more `ls | grep con*`');
页面空显示, 但没有报错, 没有关系, 这很正常
右键查看网页源码即可拿到 flag
ctfshow-萌新-web12( 利用命令执行函数获取网站敏感信息)相关推荐
- ctfshow-萌新-web11( 利用命令执行漏洞获取网站敏感文件)
ctf.show 萌新模块 web11关, 这一关考察的是命令执行漏洞的利用, 源码中过滤了一部分命令执行函数和文件查看的命令, 推荐使用 passthru()函数配合 more命令获取敏感文件中的f ...
- ctfshow-萌新-web10( 利用命令执行漏洞获取网站敏感信息)
ctf.show 萌新模块 web10关,这一关考察的是命令执行漏洞的利用,闯关者需要知道3个以上PHP命令执行函数的使用,推荐使用 passthru() 页面中展示了部分源码,并提示我们 flag ...
- ctfshow-萌新-web13( 利用代码执行漏洞获取网站敏感文件)
ctf.show 萌新模块 web13关, 这一关的考点是代码执行漏洞, 需要灵活的运用各种命令执行函数, 源码中过滤了system, exec, highlight函数, cat命令, congfi ...
- ctfshow-萌新-web9( 利用命令执行漏洞读取网站敏感文件)
ctf.show 萌新模块 web9关,这一关考察的是命令执行漏洞的利用方式,使用PHP的命令执行函数执行系统命令,读取网站根目录下的配置文件,获取flag 页面中展示了部分源码,很明显是作者提示我们 ...
- ctfshow-萌新-web14( 曲线救国-POST请求绕过获取网站敏感信息)
ctf.show 萌新模块 web14关, 此关卡是一个代码执行漏洞, 重点在于命令执行函数的利用方式, 源码中过滤比较严格, 尤其是过滤了分号;之后, 虽然可以用?>来代替分号, 但这样一来就 ...
- CTF之萌新web学习(命令执行2)
命令执行2 命令执行无回显情况 可控字符串长度限制getshell 15个字符 7个字符 4或5个字符 无字母数字getshell 异或运算 取反 自增 进行实验测试 命令执行无回显情况 判断方法 使 ...
- ctfshow-萌新-web6( 利用二进制绕过获取网站敏感信息)
ctf.show 萌新模块 web6关,这一关的考点是intval()函数转换字符串的特性,以及SQL注入漏洞的绕过方式,源码中过滤了单双引号,or,加减乘除号,叹号,异或,hex,select等关键 ...
- ctfshow-萌新-web5( 利用位运算符控制SQL获取网站敏感信息)
ctf.show 萌新模块 we5关,这一关考察的是intval()函数转换字符串的特性和SQL注入的绕过思路,这一关过滤了单双引号,or,斜杠,加减乘除号,叹号,括号,select等关键字,推荐使用 ...
- ctfshow 萌新web10-21
ctfshow 萌新web10-21 web10 题目提示flag在congfig.php中 php中作为执行系统命令的函数: system() passthru() exec() shell_exe ...
最新文章
- 乖乖给行人让路?学界推出无人机控制技术NMPC,可在低空中实现自主导航和避障...
- 机器人 知乎碧桂园_从房地产大亨到跨界造“机器人”,碧桂园葫芦里卖着什么药?...
- document 获得元素节点,属性节点,文本节点。
- linux 修改时区_【003】一文全面掌握Linux初始化进程(超详细)
- java 内存映射文件 主要应用_VC++中使用内存映射文件处理大文件(3)
- Leaflet中使用Leaflet.contextmenu插件实现地图上添加鼠标右键菜单
- [BZOJ] 3191 [JLOI2013]卡牌游戏
- 使用screen -r时提示“There is no screen to be resumed matching xxx”的解决办法
- 将页面中表格数据导出excel格式的文件(vue)
- 优客365导航系统美化UI版源码-带交易功能
- Linux chmod 命令 设置权限
- 网站使用 VideoPlayer 方法
- 硬盘绝密维修资料(2)
- 直播电商系统源码 直播系统源码
- 模拟器安装 xposed
- 计算机导论黄国兴百度云,计算机导论黄国兴
- 如何在视频中加水印?分享这些实用的加水印方法给你
- 设计模式之观察者模式——猫抓老鼠2
- UG NX 10 重新附着草图
- 在VS Code中开发ESP32遇到如下IDF_PATH环境变量不一致的警告问题
热门文章
- HDU_oj_2046 骨牌铺方格
- BZOJ3312: [Usaco2013 Nov]No Change
- Mysql中show命令详解
- Delphi中线程类TThread实现多线程编程2---事件、临界区、Synchronize、WaitFor……
- hdu 2545 并查集
- love2d杂记4--有用的辅助库
- [转贴]Silverlight Socket 实现收发信息
- SetWindowPos详解
- 大数据之-Hadoop3.x_MapReduce_序列化案例FlowMapper---大数据之hadoop3.x工作笔记0098
- 大数据之-Hadoop3.x_MapReduce_核心思想---大数据之hadoop3.x工作笔记0083