常見漏洞修複方案
1. 管理後台對外
Apache 配置文件中修改:
vi /etc/httpd/conf.d/wp.conf |
修改.htaccess文件
在.../admin/ 目錄下設置 .htaccess文件 |
Nignx配置
location /private/ { allow 192.168.1.0/24; deny all; } location ~ ^/private/.*\.php$ { allow 192.168.1.0/24; deny all; include conf/enable_php5.conf; } location ~ \.php$ { include conf/enable_php5.conf; } |
BAE 中修複管理後台對外的方法是修改配置文件bae.conf 示例模板如下:
appid : ecomue auth : TrmQpGbPzZyvrugkW6qyd5c0 version : 1.2.5 handlers: - ipwhitelist: ^/wp\-login\.php 61.135.165.*,220.181.50.*,61.135.169.*,220.181.38.* - ipwhitelist: ^/wp\-admin 61.135.165.*,220.181.50.*,61.135.169.*,220.181.38.* - ipwhitelist: ^/wp\-includes/js/swfupload/swfupload.swf 61.135.165.*,220.181.50.*,61.135.169.*,220.181.38.* |
PHP文件中修改:
$laiyuanip=$_SERVER['REMOTE_ADDR']; { }else { } |
2. 跨站腳本攻擊漏洞
2.1 普通XSS
1、Htmlspecialchars、htmlentities $help_array = htmlspecialchars($params['help_array']); 2、str_replace str_replace(array('<','>'), array('<','>'), $question['title']); |
2.2 json XSS
(1)設置響應類型為 header("Content-Type:text/javascript; charset=UTF-8"); (2)白名單法: $score = $_REQUEST['score']; |
2.3 flash xss
(1)將ExternalInterface.call參數寫死 (2)過濾法: _loc_1 = this.loaderInfo.parameters; ExternalInterface.addCallback("capture", this.capture); _loc_2 = /\W/g; ExternalInterface.call(_loc_2.test(_loc_1["loadedCallback"]) ? ("a") : (_loc_1["loadedCallback"])); |
3. SQL注入
1、對字符串 mysql_escape_string $paramStr = mysql_real_escape_string($paramStr); 2、對數字 intval $param = intval ($param); |
4. FastCGI解析漏洞
(1)php.ini中 cgi.fix_pathinfo = 0 |
5. URL跳轉漏洞
function checkurl($url) { |
6. 文件包含漏洞
(1)過濾法: $filename = $_GET("filename"); (2)正則法: $filename = $_GET['filename']; if(preg_match("/^[a-zA-Z0-9_-]+$/",$filename) || preg_match("/^[a-zA-Z0-9_-]*\.[a-zA-Z]{3}$/",$filename)) { } else { echo "非法字符"; exit(); } |
7. 命令執行漏洞
7.1. Strusts命令執行
Strusts命令執行,升級版本
1、升級版本 2、在struts.xml中加入了excludeParams從而限製範圍 3、過濾法 private String filterOnglString(String url){ if(url != null){ return url.replaceAll("%\\{.*\\}", ""); }else{ return url; } } |
7.2. Linux GNU Bash 遠程命令執行漏洞
GNU Bash 4.3及之前版本在處理某些構造的環境變量時存在安全漏洞,向環境變量值內的函數定義後添加多餘的字符串會觸發此漏洞,攻擊者可利用此漏洞改變或繞過環境限製,以執行shell命令。某些服務和應用允許未經身份驗證的遠程攻擊者提供環境變量以利用此漏洞。可能允許攻擊者遠程執行任意命令。
升級bash到最高版本 |
8. 信息泄漏類
8.1. 列目錄
修改Apache配置文件:
已經對wm.baidu.com/kr目錄進行權限控製 或者 <Directory "/home/work/kr/kr "> |
8.2. apache httponly cookie泄露
當apache接收到一個大於4k的cookie的時候,會返回一個400的錯誤,並且把所有的cookie完整的在頁麵當中顯示出來,提示這個 cookie過大,那麼我們的攻擊方式便是利用xss,給用戶在正常的cookie的基礎上再增加一些無用的cookie,使用戶的cookie大於 4k,然後js再發包請求一次網站,這時apache返回的響應就是400,並把cookie顯示出來,這時我們隻要用js正則匹配出正常的cookie 即可,由於不是js直接獲取cookie,而隻是正則匹配出返回的字符串而已,便相當於繞過了cookie的httponly的屬性,完整的攻擊再加上把 匹配的字符串再發送到自己的一個接受文件當中即可。
解決方案:
建議一:升級apache 版本 > 2.2.22 建議二:自定義400錯誤頁麵輸出一個簡單生硬的錯誤代碼: ErrorDocument 400 "Bad Request 400" |
8.3. 版本信息泄露
(1)Nginx 修改nginx配置文件nginx.conf中的server_tokens為off (2)Apache 修改httpd.conf |
8.4. SVN信息泄露
find ./ -type d -name ".svn" |xargs rm –rf {} |
8.5. BAIDUID信息泄露
不要在頁麵中明文保存BDUSS信息 |
最後更新:2017-01-13 09:52:12