<>XCTF攻防世界web新手练习—command_execution

<>题目

题目为command_execution,是命令执行的意思,可见这道题应该跟命名执行有关。

打开题目,看到一个功能框,根据题目,是用来实现ping功能的。

首先先尝试ping一下127.0.0.1,成功ping通,并回显执行的命令为
ping -c 3 127.0.0.1

于是我们尝试用&&符号执行多个命令,先尝试一下ls命令,输入127.0.0.1 &&ls

可见,成功执行ls命令。于是顺理成章查找所有以 .txt 结尾的文件。
用find命令。输入127.0.0.1 &&find / -name "*.txt"

看到第一个就是flag.txt,于是利用命令cat 直接查看它
127.0.0.1 && cat /home/flag.txt

得到flag!

<>命令执行漏洞
<>命令执行漏洞是什么:

当应用需要调用一些外部程序去处理内容的情况下,就会用到一些执行系统命令的函数。如PHP中的system,exec,shell_exec等,当用户可以控制命令执行函数中的参数时,将可注入恶意系统命令到正常命令中,造成命令执行攻击。

比如题目中,直接把用户输入的参数不经过过滤直接放在ping命令之后,而恶意攻击者可以在输入的参数中用&&截断,而执行下一个恶意命令
<>常见连接符
;A;B 先执行A,再执行B
& A&B 简单拼接,A B之间无制约关系
| A|B 显示B的执行结果
&& A&&B A执行成功,然后才会执行B
|| A||B A执行失败,然后才会执行B

常见连接符举例效果
;A;B先执行A,再执行B
&A&B简单拼接,A B之间无制约关系
|A|B显示B的执行结果
&&A&&BA执行成功,然后才会执行B
||A||BA执行失败,然后才会执行B
另外,%0A 是换行符的url编码形式,有的时候可以用来绕过对以上常见的连接符过滤了的情况。

技术
©2019-2020 Toolsou All rights reserved,
STM32的内部温度传感器实验总结。JLink、STLink、DAPLink、CMSIS DAP使用区别Linux 常用的命令vue-loader+webpack项目配置《剑指offer刷题笔记》6、重建二叉树 【c++详细题解】pycharm中安装cv2失败,及其解决数据库基础-MySql8.0(第二篇)--DML和DQLpython模拟阴阳师抽卡CSS实现loading小动画二维哈希(矩阵哈希)