免费网站建设方案优化,网站建设职位,网页设计师证书报考条件,wordpress做网址导航一.原理
应用有时需要调用一些执行系统命令的函数#xff0c;如PHP中的system、exec、shell_exec、passthru、popen、proc_popen等#xff0c;当用户能控制这些函数的参数时#xff0c;就可以将恶意系统命令拼接到正常命令中#xff0c;从而造成命令执行攻击。
二.利用条…一.原理
应用有时需要调用一些执行系统命令的函数如PHP中的system、exec、shell_exec、passthru、popen、proc_popen等当用户能控制这些函数的参数时就可以将恶意系统命令拼接到正常命令中从而造成命令执行攻击。
二.利用条件
1、应用调用执行系统命令的函数
2、将用户输入作为系统命令的参数拼接到了命令行中
3、没有对用户输入进行过滤或过滤不严
三.分类
1.远程命令执行漏洞
概念远程命令执行漏洞指用户通过浏览器提交执行操作命令 由于服务器端没有针对执行函数做过滤就执行了恶意命令
2、远程代码执行漏洞
概念代码执行漏洞也叫代码注入漏洞指用户通过浏览器 提交执行恶意脚本代码执行恶意构造的脚本代码
四.例题
[SWPUCTF 2021 新生赛]easyrce
1.给一串代码直接审计 eval()把字符串按照 PHP 代码来计算需以分号结尾 error_reporting(0);这行代码将错误报告设置为关闭状态。这意味着在执行PHP代码时不会显示任何错误或异常信息。这可能会导致难以调试和发现潜在的问题。highlight_file(__FILE__);这行代码使用highlight_file()函数来高亮显示当前文件的代码。__FILE__是一个预定义的常量它表示当前文件的路径和文件名。这个功能可以在调试或查看代码时提供帮助。if(isset($_GET[url]))这行代码检查是否有一个名为url的GET参数存在。$_GET是一个超全局数组用于获取通过HTML表单或URL传递的变量值。如果存在名为url的GET参数则继续执行代码。eval($_GET[url]);这行代码使用eval()函数执行用户提供的代码。$_GET[url]获取前面检查的GET参数url的值并将其作为字符串传递给eval()函数执行。这意味着用户可以在URL中输入任何PHP代码并将其执行。 发现通过GET传参实现命令执行
2.构造payload查看权限发现为www-data
/?urlsystem(whoami); 2.查看目录,发现flllllaaaaaaggggggg
/?urlsystem(ls /); 3.cat查看文件,得到flag
/?urlsystem(cat /flllllaaaaaaggggggg);