命令执行漏洞—CTFSHOW(简单利用)
远程命令执行简介和原理可以参考文章Web安全—远程命令/代码执行(RCE)
远程命令执行1:
1,题目简介分析
代码分析:$_GET()函数读取URL传过来的C参数和值,然后使用preg_match函数判断传过来的参数值是否包含flag值(用来对传入的参数值进行过滤),然后使用eval()函数执行C参数传过来的值。
2,思路分析
通过信息收集判断网站操作系统类型,然后通过参数传入值执行操作系统命令,因为未对参数值进行限制,所以此处存在命令执行和代码执行漏洞
通过nmap操作系统判断为Linux
3,命令执行
因为最终的执行结果都是通过eval函数来实现的,所以我们需要借助系统命令执行函数system(),exec(),shell_exec(),passthru()来实现
payload构造:c=echo system('ls');
payload构造,查看文件flag.php的内容:?c=echo exec('cat f*');,因为flas参数preg_match参数进行了过滤,所以我们可以使用linux下通配符*来实现查看f开头的所有文件内容
思路总结:
一:远程命令执行漏洞产生的本质还是代码执行漏洞,不管是代码层面已经限制了命令执行函数还是像本篇文章一样需要我们手动去构造命令执行函数,但本质还是代码执行漏洞,但是命令执行漏洞仅是对命令执行函数的一种代码执行漏洞。
二:命令执行漏洞利用思路,1,判断操作系统类型2,判断命令执行点,构造payload进行命令执行
涉及相关文章:
Web安全—远程命令/代码执行(RCE)
https://xie1997.blog.csdn.net/article/details/84848441
常见命令执行的一些绕过方式