文章总结: 本文通过PHP可变函数实验演示命令执行漏洞利用,列举危险函数如eval、system等,展示通过URL参数触发assert执行代码的过程,强调需严格过滤用户输入以防漏洞。 综合评分: 78 文章分类: 漏洞分析,WEB安全,代码审计,安全培训,渗透测试
危险函数之可变函数
建哥聊安全
2026年4月1日 17:03 湖南
在小说阅读器读本章
去阅读
危险函数之可变函数
实验目的
通过本实验,掌握命令执行漏洞产生的原因和利用方法,体验命令执行漏洞的利用过程。
实验环境
·操作机:Win10 用户名:Administrator 密码:Sangfor!7890
·靶机:Apache + PHP
·实验地址:http://ip/os/kbhs.php
实验原理
应用程序有时需要调用一些执行命令的函数,由于服务器对代码中可执行的特殊函数入口没有做过滤,并且用户能够控制这些函数中的参数时,就可以将恶意命令拼接到正常命令中,从而造成命令执行攻击。 命令执行漏洞可以分为远程命令执行(代码执行)和系统命令执行两类,常见危险函数也分为两类:代码执行函数和命令执行函数。
PHP中常见代码执行函数:
array_map()
eval()
assert()
preg_replace()
call_user_func()
$a($b)动态函数
PHP中常见系统命令执行函数:
system()
exec()
shell_exec()
passthru()
popen()
反引号”`”
实验步骤
1、登录”Attack”操作机,打开浏览器,访问http://ip/os/kbhs.php
2、在URL后拼接”?a=assert&b=var_dump(array(1,2,3)),访问http://ip/os/kbhs.php?a=var_dump(array(1,2,3)),执行代码
3、在URL后拼接”?a=assert&b=phpinfo()”,访问http://ip/os/kbhs.php?a=assert&b=phpinfo(),查看执行效果
实验总结
通过本实验,掌握可变函数的利用,成功实现了代码执行,体验了可变函数实现代码执行的过程。可变函数会把第一个参数作为函数使用,其余参数都是函数的参数。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:建哥聊安全 《危险函数之可变函数》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论