PHITHON的公开漏洞LNMP一些不安全的默认配置 2016-09-06
LNMP一些不安全的默认配置
LNMP是国内用的比较多的Linux下一键搭建nginx+php+mysql环境的程序,但该程序的默认配置不好,容易造成安全问题。不过问题并不大,所以标题不敢写太猛~
今天搭建环境,顺便把问题提交了,希望能得到修复。
问题一
disable_function禁用的函数不彻底。
默认禁用的函数是:
明显不全,没有禁用popen,所以我们可以使用popen来执行命令:
1 | $f = popen("ifconfig","r"); |
问题二
自带的proftpd在创建新账户以后会将账号密码保存在/tmp目录下的.passwd中,这个文件权限是644,是允许所有用户读取的。
所以,只要我有一个webshell或普通用户权限,就能读取别人的ftp账号密码。(造成跨站等危险)
究其原因,就是在安装好proftpd后,lnmp会在/root目录下新建一个proftpd_vhost.sh脚本,目的是方便用户直接使用此脚本来创建ftp账号。
我们看看这个sh的代码:
/root/proftpd_vhost.sh 88行开始:
1 | useradd -s /sbin/nologin -d $userdir -c "lnmp proftpd user" $username |
先调用useradd添加了一个账号,用cat > 将字符串$username:$userpass
写入/tmp/$user.passwd
文件中。然后将/tmp/$user.passwd
文件的内容传入chpasswd命令,来修改新增加的用户的密码。最后将配置写入vhost配置文件,再echo一些信息,这个sh脚本就结束了。
直到最后lnmp也没有去删除这个/tmp/$user.passwd
文件,所以就遗留了一个包含新创建的ftp账号密码的文件,而且所有用户都有读权限: