CTFhub-RCE远程代码执行

1、eval执行
我们进去以后首先进行一个代码审计,发现这里密码cmd非常清晰
CTFhub-RCE远程代码执行_第1张图片
OK话不多说连蚁剑
我们看到这样一个文件
CTFhub-RCE远程代码执行_第2张图片右键选择在此处打开终端
CTFhub-RCE远程代码执行_第3张图片接下来就是按部就班的找到flag所在的文件,cat查看即可
CTFhub-RCE远程代码执行_第4张图片2、无过滤的命令注入
先审计代码,嗯雀氏没有过滤

CTFhub-RCE远程代码执行_第5张图片输入127.0.0.1返回结果说明可以进行代码注入,接下来还是按部就班
CTFhub-RCE远程代码执行_第6张图片127.0.0.1;ls
CTFhub-RCE远程代码执行_第7张图片127.0.0.1;cat 。。。。。这里没有返回可能是因为进行了加密
CTFhub-RCE远程代码执行_第8张图片127.0.0.1;cat 。。。。。|base64 得到加密后的字符串
CTFhub-RCE远程代码执行_第9张图片把得到的加密字符串扔base64在线解密里,即为flag
CTFhub-RCE远程代码执行_第10张图片3、过滤cat
还是先审计代码
过滤了cat,我们可以用其他命令代替
CTFhub-RCE远程代码执行_第11张图片127.0.0.1;ls
CTFhub-RCE远程代码执行_第12张图片127.0.0.1;less 。。。。。|base64
CTFhub-RCE远程代码执行_第13张图片还是扔在线base64解密得到flag
4、过滤空格
这里过滤了空格,我们可以使用 ${IFS}来代替
CTFhub-RCE远程代码执行_第14张图片127.0.0.1;ls
CTFhub-RCE远程代码执行_第15张图片按部就班替换空格加上base64得到加密字符串,解密即得flagCTFhub-RCE远程代码执行_第16张图片5、过滤目录分隔符
依然先代码审计,我们发现他过滤的这个符号对我们没有任何影响,直接按部就班ls
CTFhub-RCE远程代码执行_第17张图片1CTFhub-RCE远程代码执行_第18张图片

CTFhub-RCE远程代码执行_第19张图片
CTFhub-RCE远程代码执行_第20张图片解密即得flag
CTFhub-RCE远程代码执行_第21张图片6、过滤运算符
审计代码,视乎依然没影响,按部就班吧
CTFhub-RCE远程代码执行_第22张图片CTFhub-RCE远程代码执行_第23张图片
我们到最后一步后可能得不到base64加密字符串,这时候我们可以直接查看网页源代码,效果是一样的
CTFhub-RCE远程代码执行_第24张图片7、综合练习

审计代码,这里过滤了很多符号和命令,我们构建payload的思路还是代替

空格 用${IFS}代替

flag用 f***代替

cat用 more代替

; 用%0a 回车代替
按部就班,我们构建的最终的payload是:

127.0.0.1%0acd${IFS}f***_is_here%0amore${IFS}f***_9098301778463.php

这里注意:
我们的payload用的是url命令因此需要在url地址框输入
CTFhub-RCE远程代码执行_第25张图片
CTFhub-RCE远程代码执行_第26张图片CTFhub-RCE远程代码执行_第27张图片1CTFhub-RCE远程代码执行_第28张图片

这里依旧查看网页源代码找到flag!CTFhub-RCE远程代码执行_第29张图片

你可能感兴趣的:(安全)