您的足迹:首页 > 东拉西扯 >Windows环境下使用apache,php安全漏洞怎么搞

Windows环境下使用apache,php安全漏洞怎么搞

三种方法。

1。如果是新站,根据官方建议做安全即可。

    另外,如果不是必须,像 member,install, special, 全删掉。

    plus 则留下几个  list.php  show.php  view.php   diy.php   count.php   就这几个就差不多了。

    后台替换功能,把admin换掉,密码换掉。

    基本上就OK。


    是新站,但是下载的整站,程序版本太老?

    后台更新到最新的版,再执行上面。

 2。安装网站安全狗。还是比较管用。特别是注入类都可以容易的拦截掉。

3。安装配置mod_security模块(以下是转载,原文: https://javascript.net.cn/article?id=442 )

===================================================================

一,在不改动现有系统任何代码的前提下,防止SQL注入
比如下面这个场景:服务器中难免有些安全性比较差的程序,比如使用了老版本的dedecms。或者某个程序引用的第三方插件,在SQL处理上,没有使用参数查询,而是直接拼接字符串,还没有类型检查。 这时可以考虑使用WAF (Web Application Firewall)。

 

二,如何选择
市面上的WAF有三种形态,硬件Web防火墙、Web防护软件和云Waf。 最为灵活的方案是选择Web防护软件。

 

三,安装配置
服务器环境Windows server 2008, Apache是PHP官方推荐的Windows二进制版 http://www.apachelounge.com/ 。
首先安装好Apache 2.4,下载对应版本的mod_security http://www.apachelounge.com/download/ 。
我下载的是 mod_security-2.9.2-win64-VC15.zip 解压后,里面有两个文件夹,mod_security和mlogc中readme.txt,有安装过程。

### mod_security中Readme.txt的大致内容:

安装mod_security-2.9.2
拷贝 mod_security2.so 到你的 apache/modules 文件夹
拷贝 yajl.dll and libcurl.dll 到你的 apache/bin 文件夹

配置文件 httpd.conf:
取消注释,
LoadModule security2_module modules/mod_security2.so
LoadModule unique_id_module modules/mod_unique_id.so

# 快速开始:
SecRuleEngine On
SecDefaultAction "deny,phase:2,status:403"
## -- 规则--
SecRule ARGS "\.\./" "t:normalizePathWin,id:50904,severity:4,t:none,t:urlDecodeUni,t:htmlEntityDecode,t:lowercase,msg:'Drive Access'" 

重启apache,在浏览器打开如下地址,会提示403拒绝访问
http://www.xxxx.com/?abc=../../ 


四,安全防护
添加规则要参考,http://www.modsecurity.org/rules.html ,官网推荐 https://github.com/SpiderLabs/owasp-modsecurity-crs
下载规则,解压到 |apache\conf\modsecurity-crs下。
设置配置文件httpd.conf

LoadModule security2_module modules/mod_security2.so
# Rules and documentation : http://www.modsecurity.org/
SecRuleEngine On
SecDefaultAction "deny,phase:2,status:403"
## -- rule --
SecRule ARGS "\.\./" "t:normalizePathWin,id:50904,severity:4,t:none,t:urlDecodeUni,t:htmlEntityDecode,t:lowercase,msg:'Drive Access'"  <IfModule security2_module>   Include conf/modsecurity-crs/crs-setup.conf
  Include conf/modsecurity-crs/rules/*.conf </IfModule>


五,安全防护日志
mlogc可以记录所有被规则拦截的日志。配置如下:

<IfModule security2_module>   Include conf/modsecurity-crs/crs-setup.conf
  Include conf/modsecurity-crs/rules/*.conf

  # mlogc.exe 配置文件
  SecDataDir logs
  SecAuditEngine RelevantOnly
  SecAuditLogRelevantStatus "^(?:5|4\d[^4])"
  SecAuditLogType Concurrent
  SecAuditLogParts ABCDEFGHZ
  SecAuditLogStorageDir logs/mod_security/
  SecAuditLog "${SRVROOT}/bin/mlogc.exe" </IfModule>

 

六,测试

下面是安全狗的防护日志,可以用来测试一下mod_security和OWASP

/?ac=digg&ac2=&id=1&tab=vod union select  null,md5(1231412414) 拦截原因:防止SQL联合查询,可疑内容:Union
/?ss=x and 1=1,拦截原因:防止简单的and or 方式注入
/?ss=information_schema。。。,拦截原因:非法访问information_schema数据库
/?typeArr[1' or `@\'`=1 and (SELECT 1 FROM (select count(*),concat(floor(rand(0)*2),(substring((Select pwd from dede_admin limit 1,1),1,62)))a from information_schema.tables group by a)b) and ']=11&&kwtype=0&q=1111&searchtype=title,拦截原因:防止对数据库进行数据查询操作,可疑内容:Select pwd from dede_admin limit 
/?typeArr[1' or `@\'`=1 and (SELECT 1 FROM (select count(*),concat(floor(rand(0)*2),(substring((Select uname from dede_admin limit 1,1),1,62)))a from information_schema.tables group by a)b) and ']=11&&kwtype=0&q=1111&searchtype=title,拦截原因:防止对数据库进行数据查询操作,可疑内容:Select uname from dede_admin limit 
/?aid=1&_FILES[type][name]&_FILES[type][size]&_FILES[type][type]&_FILES[type][tmp_name]=aa\'and char(@`'`)  Union*/  SeLect*/ 1,2,3,group_concat(userid,0x23,pwd),5,6,7,8,9 from `#@__admin`#,拦截原因:防止SQL联合查询,可疑内容:Union    SeLect  1,2,3,group_concat(userid,0x23,pwd),5,6,7,8,9 from `#@__admin`#

都可以被拦截到,现在apache/logs/mod_security下面生成的防护日志如下:

--4d070000-A--
[28/Apr/2018:16:24:53 +0800] WuQv1aUHpaQ0n2CMGvixFAAAAJE 171.14.39.141 56190 122.114.245.230 443
--4d070000-B--
GET /?ss=information_schema HTTP/1.1
Host: javascript.net.cn
...

--4d070000-F--
HTTP/1.1 403 Forbidden
Content-Length: 209
Keep-Alive: timeout=5, max=99
Connection: Keep-Alive
Content-Type: text/html; charset=iso-8859-1

--4d070000-E--

--4d070000-H--
Message: Warning. Pattern match "(?i:\\b(?:m(?:s(?:ysaccessobjects|ysaces|ysobjects|ysqueries|ysrelationships|ysaccessstorage|ysaccessxml|ysmodules|ysmodules2|db)|aster\\.\\.sysdatabases|ysql\\.db)\\b|s(?:ys(?:\\.database_name|aux)\\b|chema(?:\\W*\\(|_name\\b)|qlite(_temp)?_master\\b) ..." at ARGS:ss. [file "D:/ap/apache/conf/modsecurity-crs/rules/REQUEST-942-APPLICATION-ATTACK-SQLI.conf"] [line "100"] [id "942140"] [rev "3"] [msg "SQL Injection Attack: Common DB Names Detected"] [data "Matched 
...

Response-Body-Transformed: Dechunked
Producer: ModSecurity for Apache/2.9.2 (http://www.modsecurity.org/); OWASP_CRS/3.0.2.
Server: Apache/2.4.33 (Win64) OpenSSL/1.1.0h PHP/7.2.4 mod_evasive2/1.10.2
Engine-Mode: "ENABLED"

--4d070000-Z--


本博客所有文章如无特别注明均为原创。作者:恶猫复制或转载请以超链接形式注明转自 恶猫的博客
原文地址《Windows环境下使用apache,php安全漏洞怎么搞

相关推荐

分享本文至:

发表评论

路人甲 表情
看不清楚?点图切换 Ctrl+Enter快速提交

网友评论(0)

恶猫的博客 -记录自己日常,代码,美图,电影,音乐,新闻,只是个人博客而已

浙ICP备15011757号-4 网站地图 联系我