命令执行漏洞—简单利用1(墨者靶场)
命令执行漏洞原理和简介可参考文章:Web安全—远程命令/代码执行(RCE)
命令执行漏洞靶场通关:
步骤一:靶场登陆,输入IP地址查看回显。查看Web界面存在输入IP地址的地方,尝试输入环回地址127.0.0.1查看回显 输入IP地址127.0.0.1查看回显: 步骤二:信息收集判断操作系统,尝试使用系统连接符执行连带命令,例如127.0.0.1;ls 。 1,使用Google插件Waapalyzer判断操作系统为Ubuntu(linux),可以使用连接符";"和“管道符(|)” 2,使用Linux下命令执行连接符连接两个命令执行,查看网站回显,报错IP格式不正确 3,使用Burpsuite抓包当界面报错IP格式不正确时,BUrpsuite未抓到数据包,判断是前端过滤(可以通过禁用JS绕过,或者BurpSuite抓包绕过)此处采用Burpsuite抓包 Burpsuite抓包绕过: Web服务器回显,判断存在命令执行漏洞: 步骤三:IP地址拼接cat命令,查看文件key_15701347324707.php Web界面回显,cat命令执行失败,文件无内容回显: 步骤四:空格绕过,查看文件FLAG Burpsuite构造拼接命令,使用<主要的原因是绕过空格的限制: Web界面回显,获取到文件内容:
知识点总结:
空格过滤绕过:当我们使用cat等命令查看文件内容的时候,发现不起作用,此时如果其他命令可以执行成功,那就要考虑到是否是空格被过滤的原因导致的
1,< 重定向绕过,如:cat<flag.php(磁盘使用的是linux下的重定向命令<,其含义是将<后面文件中的内容代替键盘输入显示)
2,<>绕过,如:cat<>flag.php
3,%09绕过,如:cat%09flag.php(此处需要php环境)
4,${IFS}绕过,如:cat${IFS}.flag.php
5,$IFS$9绕过,如:cat$IFS$flag.php
命令执行函数:
1,system()函数:显示结果
2,exec()函数:不显示结果
3,shell_exec()函数:执行shell命令返回输出结果的字符串
4,passthru()函数:执行系统命令并显示原始输出
涉及学习文章: 1,信息收集-系统&中间件层面 2,Web安全—远程命令/代码执行(RCE)
|