XCTF篇:Web (新手练习题)之 command_execution


当你的才华

还撑不起你的野心时

那你就应该静下心来学习


目录

Web (新手练习题)之 command_execution

0x01 前言

0x02 补充知识点:

常见命令拼接符

命令执行漏洞

0x03 解题思路


 

Web (新手练习题)之 command_execution

0x01 前言

想玩玩攻防世界的朋友,CE已附上XCTF Web 练习题传送门:https://adworld.xctf.org.cn/

XCTF篇:Web (新手练习题)之 command_execution_第1张图片

难度系数: 一星

题目来源: Cyberpeace-n3k0

题目描述:小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗。

 

0x02 补充知识点:

常见命令拼接符

     • && :执行两个命令,若前面出错,后面不会执行 
     • & : 执行两个命令,若前面出错,后面还是会执行 
     • || : 执行正确的那个命令,前面的失败,后面也会执行,前面成功,后面不会执行 
     • | : 只会执行后面的命令 

常见连接符 举例 效果
; A;B 先执行A,再执行B
& A&B 简单拼接,A B之间无制约关系
| A|B 显示B的执行结果
&& A&&B A执行成功,然后才会执行B
|| A||B A执行失败,然后才会执行B

命令执行漏洞

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

      该题中,直接把用户输入的参数不经过过滤直接放在ping命令之后,而恶意攻击者可以在输入的参数中用&&或|或||截断,而执行下一个恶意命令

注意:%0A 是换行符的url编码形式,有的时候可以用来绕过对以上常见的连接符过滤了的情况。

命令执行如果有搞忘的,请前往如下链接:

                               https://blog.csdn.net/God_XiangYu/article/details/97397345

 

0x03 解题思路

1、打开解题URL地址,给出如下图的内容,貌似是一个具有Ping 功能的页面。

XCTF篇:Web (新手练习题)之 command_execution_第2张图片

2、那么如下,输入127.0.0.1,Ping 一下本地的IP 看看能不能成功执行,并查看命令执行结果

XCTF篇:Web (新手练习题)之 command_execution_第3张图片

如上图,发现能成功返回信息,而且开局就提示过没有WAF,CE联想到能否使用命令拼接的方式来执行其它命令?

3、咋们打开浏览器,在文本框内输入127.0.0.1 | find / -name "flag*"  (将 | 替换成 & 或 && 都可以),查找flag所在位置,尝试一下看看能否成功

XCTF篇:Web (新手练习题)之 command_execution_第4张图片

4、执行成功,得到flag.txt存放的地址,我们如下,输入 127.0.0.1 | cat /home/flag.txt 获取Flag

cyberpeace{6d947e9ef8352104082e9d173396ae60}

XCTF篇:Web (新手练习题)之 command_execution_第5张图片

 

HackBar

HackBar 工具POST提交方式获得Flag

首先获取文本框的参数的值是多少,然后再用POST 提交方式一步步获得Flag,我这里是直接输入了Flag 的地址直接获取的,你也可以一步步按照上述的操作步骤在HackBar 里面用POST 方式来查询试试

XCTF篇:Web (新手练习题)之 command_execution_第6张图片

执行成功,获得Flag

XCTF篇:Web (新手练习题)之 command_execution_第7张图片

 

或用Burp 抓包放到重放里,慢慢调试获得Flag的地址

或自己写一个import request 脚本去跑获得Flag的地址

 


我不需要自由,只想背着她的梦

一步步向前走,她给的永远不重


 

你可能感兴趣的:(渗透测试,XCTF篇,XCTF-Web篇)