Quantcast
Channel: CodeSection,代码区,网络安全 - CodeSec
Viewing all articles
Browse latest Browse all 12749

【技术分享】网站权限的安全配置

0
0
【技术分享】网站权限的安全配置

2017-10-14 13:30:48

阅读:1208次
点赞(0)
收藏
来源: 神月资讯





【技术分享】网站权限的安全配置

作者:神月资讯





【技术分享】网站权限的安全配置

0x01前言

日防夜防,但指不定哪天又有0day出来,或是有其它漏洞,网站被日,我们的服务器又要出现中毒、被留后门等等现象。而如何做好了权限配置,即使网站沦陷,但是攻击者能获得的权限很低的话,就做不了进一步的操作了,所以本文章主要讲讲网站如何在权限上做好安全配置,让日站少年无从下手。


0x02网站部署架构


【技术分享】网站权限的安全配置

这是一个比较简单的部署架构。其中,网站部署在apache容器上,而php作为后台脚本解析语言用来解析,数据库则为存放数据。而网站服务器中,一般apache和数据库都是以服务的形式启动的。(有非服务和服务两种方式启动)。


0x03威胁点

通过上面这个架构,我们可以找出一些威胁点:

1.中间件apache服务权限

如果攻击者在获得网站的权限的话,如使用php漏洞进行命令执行,那么其权限就相当于apache服务的权限。如果apache是在管理管理员下直接启动的服务,那就当然是系统管理员的权限啦。

2.数据库mysql服务的权限

如果攻击者能在数据库进行命令执行的话,当然也会是以mysql服务的权限进行操作的。

3.数据库用户权限

第2点的服务权限,需要先得到数据库root权限。


0x04配置权限防范点

从上面的威胁点,我们可以从下面几个点去做防范:

1.系统用户:创建一个非系统管理员帐户作为网站的管理帐户;

2.中间件服务apache:设置为非系统管理员帐户,设置对目录的读写;

3.数据库服务mysql:设置为非系统管理员帐户;

4.数据库用户权限:设置非root帐户,并控制读写权限;

5.php配置:限制访问目录,限制敏感函数;


0x05配置权限防操作

那么具体的操作是怎么样的呢?继续往下看。

0x05.1新建低权限系统用户test

新建低权限系统用户,帐号密码均为test

netusertesttest/add

用net user test查看一下:


【技术分享】网站权限的安全配置

0x05.2配置低权限apache服务

创建apache服务,名为Apache2.4

httpd.exe-kinstall-nApache2.4

(要到httpd所在的目录下执行)

设置服务的启动帐户为test:


【技术分享】网站权限的安全配置

然后启动该服务:

netstartApache2.4

0x05.3apache配置做限制

0x05.3.1配置目录权限


【技术分享】网站权限的安全配置

这样禁止了访问C:\phpstudy\WWW\inc目录下的文件了


【技术分享】网站权限的安全配置

0x05.3.2去掉目录遍历



【技术分享】网站权限的安全配置

Indexes的作用就是当该目录下没有index.html或index.php文件时,就显示目录结构,去掉Indexes,Apache就不会显示该目录的列表了。

0x05.4配置低权限mysql服务

cmd进入mysql安装的bin目录执行:

mysqld.exe–install

这样就创建了服务。

然后设置服务的启动用户:


【技术分享】网站权限的安全配置

服务启动:

netstartmysql

0x05.5配置低权限mysql用户test

新建用户:

CREATEUSER'test'@'localhost'IDENTIFIEDBY'test';

创建数据库testDB:

createdatabasetestDB;

test只对testDB有权限:

GRANTALLONtestDB.*TO'test'@'localhost';

0x05.6php配置做限制

0x05.6.1限制php可访问目录

在php.ini中配置:

open_basedir=C:\phpstudy\WWW\

0x05.6.2限制php可执行命令

在php.ini中配置:

disable_functions=passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname

0x05.6.3关闭错误提示

display_errors=Off

0x05.6.4关闭全局变量

register_globals=off

0x06效果

经过以上的配置之后,网站就相对安全了。即使是攻击者拿到了网站的shell之后,也会发现文件访问受限了,数据库操作受限了,命令执行也受限了,内心相当崩溃。

我们可以试试,当上传一句话后,攻击者用菜刀连接:


【技术分享】网站权限的安全配置

发现只能访问WWW下文件,出不去了,因为php上做了限制。


【技术分享】网站权限的安全配置

命令执行函数用不了,也是从php上做的限制。


【技术分享】网站权限的安全配置

数据库只能操作当前数据库,因为其登录用户为test,只对testDB有操作权限。


【技术分享】网站权限的安全配置



【技术分享】网站权限的安全配置
【技术分享】网站权限的安全配置
本文转载自 神月资讯
原文链接:https://mp.weixin.qq.com/s?__biz=MzI5NzU0MjgzNA==&mid=2247484941&idx=1&sn=707f28f70ce673a41352668b59e93da3&chksm=ecb233d0dbc5bac62b3c92e73ebc84d1e9b8c86a80b577f387924d726dc771c9baf6fda1b726&mpshare=1&scene=1&srcid=1013tu1X1mnEojPQT1zhX4F5#rd

Viewing all articles
Browse latest Browse all 12749




Latest Images