Web_for_Pentester_I之命令注入

Web_for_Pentester是国外安全研究者开发的一款渗透测试平台,由PentesterLab出品。官方给自己的定义是一个简单又十分有效地学习渗透测试的演练平台。
命令注入攻击来自于缺少对被当做命令执行的输入部分进行有效的过滤或者编码。最简单的一个例子是利用system函数来执行,并且使用接收的http参数作为有效输入变量。
有许多方式可以执行命令注入攻击,如:
 在反引号对中注入命令,比如id
 把第一个命令的结果重定向到第二个中去,比如| id
 如果第一个命令被成功执行,可以尝试执行更多的命令:&& id(这里&需要被编码)
 在一个失败的命令后执行另一个命令:error || id (这里的error就只是为了制造一个错误)
这里也可以用相同值技巧来检测这种漏洞。比如,把123替换成echo 123。在反引号里面的代码会先被执行,但是返回的结果和没有更改过的返回的页面一样。
你也可以用基于时间的载体来检测这种类型的漏洞。你可以引入需要服务器消耗时间来执行的命令来检测漏洞(可能会有造成拒绝服务攻击的风险)。你可以用sleep命令让服务器等待一段时间继续执行命令。比如用sleep 10。

【实验步骤】
一、 Example1
1.1 由Commands injection Example1的源代码example1.php可知,这是一个简单的命令执行漏洞。开发者不做任何的输入验证,你可以直接在ip参数后注入你的命令。如图1所示
在这里插入图片描述

图 1
1.2 根据前面提过的技巧,可以用| cat /etc/passwd来查看/etc/passwd的内容。在浏览器地址栏输入http://vulnerable/commandexec/example1.php?ip=
127.0.0.1 | cat /etc/passwd,获得passwd文件的内容。如图2所示
在这里插入图片描述

图 2
1.3 还可以将|改为;,在浏览器地址栏输入http://vulnerable/commandexec/
example1.php?ip=127.0.0.1 ; cat /etc/passwd,同样可以得到passwd文件内容。如图3所示
在这里插入图片描述

图 3
1.4 除此之外,可以将IP地址写错,将|改为||。在浏览器地址栏输入http://vulnerable/commandexec/example1.php?ip=127.0.0 || cat /etc/
passwd,同样可以获得passwd文件内容。如图4所示
在这里插入图片描述

图 4
二、 Example2
2.1 由Commands injection Example2的源代码example2.php可知,在这个例子中,开发者有验证提供的参数,但是用了不是很正确的方式。就像我们之前看到sql注入漏洞那样,利用的是多行的正则表达式。使用和在sql注入漏洞一样的技巧,你可以轻易的利用代码执行漏洞。这里比较方便的是你不用考虑注入分隔符。你只要注入编码的新行代码(%0a),然后加上你要执行的命令就行了。如图5所示
在这里插入图片描述

图 5
2.2 在浏览器地址栏输入http://vulnerable/commandexec/example2.php?ip=
127.0.0.1%0Acat /etc/passwd,得到passwd文件内容。如图6所示
在这里插入图片描述

图 6
三、 Example3
3.1 由Commands injection Example3的源代码example3.php可知,其源代码与example2.php类似,唯一不一样的地方是开发者没有正确的停止执行脚本。在PHP中,如果用户的提供的输入触发了某些安全规则的时候可以调用header函数非常简便的实现页面重定向。但是,就算浏览器会被重定向,这个函数并不会停止执行过程,脚本仍然会将危险的语句执行完毕。开发者需要在调用header函数后接着调用die函数来避免这个危险的错误。如图7所示
在这里插入图片描述

图 7
3.2 在浏览器地址栏输入http://vulnerable/commandexec/example3.php?ip=
127.0.0.1%0Acat /etc/passwd",无法得到passwd文件的内容,且回到初始页面。如图8、图9所示
在这里插入图片描述

图 8
在这里插入图片描述

图 9
3.3 打开cmd,输入命令cd C:\tools\curl,再输入命令curl http://vulnerable/commandexec/example2.php?ip=127.0.0.1%0acat%20/etc/passwd,得到passwd文件的内容。如图10、图11所示
在这里插入图片描述

图 10
在这里插入图片描述

图 11

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值