經過HTTP頭部字段防護措施整理php
X-Frame-Options #反劫持 html
X-XSS-Protection #開啓瀏覽器防XSS功能
node
Set X-Frame-Options nginx
CSPgit
X-Content-Type-Options: nosniff #改會影響瀏覽器的行爲,過濾掉敏感文件github
Content-Encoding #Breach攻擊web
robots.txtsql
注入mongodb
預編譯
文件上傳數據庫
後端代碼限制上傳的文件類型(類型&後綴)和大小
強制給上傳的文件添加後綴名
命令執行
禁用或過濾代碼執行函數
XSS
對cookie的保護
對重要的cookie設置httpOnly, 防止客戶端經過document.cookie讀取cookie。服務端能夠設置此字段。
對用戶輸入數據的處理
編碼/解碼:不能對用戶輸入的內容都保持原樣,對用戶輸入的數據進行字符實體編碼,原樣顯示內容必須解碼
正則匹配
過濾:把輸入的一些不合法的東西都過濾掉,從而保證安全性。如移除用戶上傳的DOM屬性,如onerror,移除用戶上傳的Style節點,iframe, script節點等
對指向資源處理
nofollow技術
CSRF
驗證 HTTP Referer 字段
在請求地址中添加 Token 並驗證
在 HTTP 頭中自定義屬性並驗證
XXE
使用開發語言提供的禁用外部實體的方法 PHP libxml_disable_entity_loader(true); JAVA DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setExpandEntityReferences(false); Python 過濾用戶提交的XML數據 過濾關鍵詞:<!DOCTYPE和!ENTITY,或者SYSTEM和PUBLIC
poodle漏洞
修復方案參考:(三選一便可) (1)禁用443端口(如不須要使用該端口) (2)防火牆屏蔽對443端口的訪問(或設置白名單訪問策略,限制爲部分IP訪問該端口) (3)對SSLv3版本禁用,具體針對服務部分,可參考以下建議: 1.stunnel服務修復:/usr/sbin/stunner /etc/xensourse/xapi-ssl.conf 在xapi-ssl.conf鍾compression=zlib後面加入一行 options=NO_SSLv3 重啓stunnel 2.tomcat服務修復:https://www.cnblogs.com/lsdb/p/7193291.html 檢測是否生效:能夠是經過在線檢測工具https://wosign.ssllabs.com/(外網)來進行檢測;https://www.cnblogs.com/Bluesky-bk/p/10059991.html(內網) 3.apache禁用:http://www.heminjie.com/network/2132.html 4.nginx禁用:http://www.heminjie.com/network/2132.html 5.IIS禁用:https://www.daimabiji.com/serverknowledge/234.html
apache httponly cookie信息泄露
方案一:(推薦) 升級到 Apache Httpd 2.2.22 或更高版本。 方案二: 1.打開 httpd 的配置文件(默認爲 httpd.ini),定位到 ErrorDocument400,並在後面加上一段自定義內容,如ErrorDocument400 」error page!」。 2.保存配置文件,重啓 httpd 服務後配置生效。 受影響版本:2.2.21, 2.2.20, 2.2.19, 2.2.18, 2.2.17, 2.2.16, 2.2.15, 2.2.14, 2.2.13, 2.2.12, 2.2.11, 2.2.10, 2.2.9, 2.2.8, 2.2.6, 2.2.5, 2.2.4, 2.2.3, 2.2.2, 2.2.0
SVN源碼泄漏漏洞
刪除服務器上全部的.SVN文件夾,升級SVN到1.7以上版本,嚴格使用導出功能,過濾/.svn/文件
elasticsearch遠程命令執行
在配置文件:elasticsearch.yml中設置:script.disable_dynamic:true
IIS PUT漏洞
禁用webdav服務
phpmoaadmin遠程代碼執行
更換mongoDB管理工具
solr未受權訪問
設置白名單,限制solr後臺訪問
Apache Axis2本地文件包含漏洞
禁止用戶遠程加載axis2.xml等文件
fastcgi文件讀取漏洞
修改php.ini文件,將cgi.fixpathinfo的值設爲0
zabbix jsrpc sql注入漏洞
將zabbix升級到3.0.4或以上
activemq後臺弱密碼漏洞
設置爲強密碼
struts2遠程命令執行
升級struts2到最新版本
hudson未受權訪問漏洞
使用強密碼,限制可登陸Hudson後臺的IP
jenkins未受權訪問漏洞
使用強密碼,限制可登陸jenkins後臺的IP,在Jenkins管理頁面添加訪問密碼;建議您不要將管理後臺開放到互聯網上。您可使用ECS安全組策略設置訪問控制,默認策略爲拒絕全部通訊。您能夠根據業務發佈狀況僅開放須要對外用戶提供的服務,並控制好訪問源IP
git目錄泄漏漏洞
刪除全部/.git/目錄
tomcat樣例目錄泄漏致使session欺騙漏洞
刪除tomcat的/examples/目錄或禁止訪問
cve-2017-7269
Date
2017
類型
溢出致使遠程代碼執行
影響範圍
Windows Server 2003 SP2 + IIS6 + WebDav + PUT
復現
需將rb模塊導入並重命名爲 cve_2017_7269
修復
禁用IIS 下的WebDAV服務http://www.webkaka.com/tutorial/iis/2017/033020/
resin任意文件讀取漏洞
升級resin到最新版本
ccs注入漏洞
JAVA rmi 反序列化漏洞
升級補丁ACC 3.2.2:https://commons.apache.org/proper/commons-collections/download_collections.cgi
tomcat管理後臺弱密碼
更改tomcat後臺密碼,限制能夠登陸tomcat後臺的IP
activemq任意文件上傳漏洞
升級activemq,或刪除fileserver配置項,可參考官方公告:http://activemq.apache.org/security-advisories.data/CVE-2015-1830-announcement.txt
CVE-2017-7529整數溢出漏洞
升級nginx,可參考:http://nginx.org/en/download.html 若是您的Nginx服務受某些因素限制,暫時沒法升級到上述最新版本。建議您採起如下漏洞臨時緩解措施進行防護: 即,在Nginx的配置文件nginx.conf中,將max_ranges設置爲1。形如:max_ranges 1;https://help.aliyun.com/knowledge_detail/56769.html
weblogic反序列化漏洞補丁繞過( CVE-2016-0638,CVE-2016-3510,CVE-2017-3248)
升級weblogic到最新版本:http://www.oracle.com/technetwork/middleware/weblogic/downloads/wls-for-dev-1703574.html
apache options bleed內存泄漏漏洞
若是服務器使用了apache,請升級到最新版本,參考連接:http://www.4hou.com/vulnerable/7794.html
zabbix latest sql注入漏洞
將zabbix升級到最新版( 1.禁用Guest帳戶 2.升級zabbix版本(除2.2.x、3.0.0-3.0.3以外版本 )
CVE-2017-1000353
將jenkins升級到2.57以上
Tomcat 任意寫文件漏洞
將 conf/web.xml 中對於 DefaultServlet 的 readonly 設置爲 true
jboss反序列化漏洞
安裝補丁或將中間件更新到最新版本
jenkins反序列化漏洞
安裝補丁或將中間件更新到最新版本
websphere反序列化漏洞
安裝補丁或將中間件更新到最新版本
ST2-052漏洞
升級到最新版本
node.js v8 debugger 遠程命令執行
將node.js更新到最新版本
shiro-550反序列化漏洞
升級 Shiro 版本至 1.2.5 以上
weblogic ssrf漏洞
升級weblogic到10.3.6以後的版本
jbossmq jms集羣反序列化漏洞
對路徑:/jbossmq-httpil/HTTPServerILServlet做訪問控制,禁止必要人員以外的IP訪問
CVE-2017-12149 JBOSS AS 6.X反序列化漏洞
對路徑/invoker/readonly作訪問控制,或升級JBoss AS 到 7
CVE-2017-10271 WebLogic XMLDecoder反序列化漏洞
升級Oracle 10月份補丁:http://www.oracle.com/technetwork/security-advisory/cpuoct2017verbose-3236627.html
openssldrown
禁止服務器端的sslv2支持。若是是Openssl,請查看OpenSSL官方給出的修復指南。 https://www.openssl.org/blog/blog/2016/03/01/an-openssl-users-guide-to-drown/
weblogic反序列化漏洞(CVE-2018-2628)
禁止服務器端的sslv2支持。若是是Openssl,請查看OpenSSL官方給出的修復指南。 https://www.openssl.org/blog/blog/2016/03/01/an-openssl-users-guide-to-drown/
axis2弱密碼
爲axis2配置強密碼,或只容許特定IP訪問 修改Axis2默認帳戶名與口令,具體位置在axis2中的conf.xml文檔中,修改以下兩行代碼。 <parameter name="userName">admin</parameter> <parameter name="password">axis2</parameter>
memcache未受權訪問漏洞/couchdb未受權訪問漏洞/grafana弱密碼/phpmyadmin弱密碼
配置強密碼,或只容許特定IP訪問
activemq遠程命令執行
升級至 5.14.0 及其之後版本
weblogic反序列化漏洞(cve-2018-2893)
升級oracle最新補丁,http://www.oracle.com/technetwork/security-advisory/cpujan2017-2881727.html
hudson代碼泄露漏洞
增長Hudson權限驗證,或只容許特定IP訪問Hudson後臺
memcache drdos漏洞
將memcache升級到最新版,並加強權限控制
Elasticsearch任意文件讀取
升級Elasticsearch到高版本
Elasticsearch未受權訪問漏洞 # _cat/indices # /_river/_search 查看數據庫敏感信息 # /_nodes 查看節點數據 # _plugin/head/ web管理界面
爲Elasticsearch配置強密碼,或只容許特定IP訪問,參考連接:https://blog.csdn.net/qq_28429443/article/details/81167123 修復方案: 1、限制IP訪問,綁定固定IP 2、在config/elasticsearch.yml中爲9200端口設置認證: http.basic.enabled true #開關,開啓會接管所有HTTP鏈接 http.basic.user "admin" #帳號 http.basic.password "admin_pw" #密碼 http.basic.ipwhitelist ["localhost", "127.0.0.1"] 3、 增長驗證,官方推薦而且通過認證的是shield插件,該項目爲收費項目,能夠試用30天。網絡中也有免費的插件,可使用elasticsearch-http-basic,searchguard插件。 Shield 能夠經過bin/plugin install [github-name]/[repo-name] 形式安裝。 4、 使用Nginx搭建反向代理,經過配置Nginx實現對Elasticsearch的認證。 5、 若是是單臺部署的Elasticsearch,9200端口不要對外開放。 6、 使用1.7.1以上的版本。在1.7.1以上版本目前尚未爆出過相關漏洞。 7、 另外elasticsearch的官方也有其餘產品與Elasticsearch配合緊密的,這些產品也存在漏洞,企業若是有使用其餘相關產品存在漏洞也要進行修復,如Logstash,Kibana。 8、 增強服務器安全,安裝防病毒軟件,使用防火牆,網站安裝WAF.並對數據庫,系統,後臺,使用的服務設置複雜的密碼,建議設置16位的大小寫字母+特殊字符+數字組合。
JBoss HEAD繞過漏洞
升級JBOSS到較新版本
JBOSS信息泄露漏洞
升級JBOSS到4.2.3之後的版本
rsync未受權訪問
爲rsync配置強密碼,或只容許特定IP訪問,read_only設置爲true https://help.aliyun.com/knowledge_detail/51079.html 1.修改rsync服務的默認監聽端口873,參考命令:「 /usr/local/rsync/bin/rsync --port=自定義端口 --daemon」 ; 2.限制登陸IP,在配置文件(/etc/rsync.conf)中修改配置,找到「hosts allow= 」這一項設置能夠運行訪問的主機或主機段,IP間用空格隔開; 3.配置認證用戶名和密碼,在配置文件(/etc/rsync.conf)中修改配置,找到"auth users= "(認證用戶名:獨立用戶)進行配置,同時對「secrets file = /etc/rsync/passwd」(用戶名密碼文件,建議權限設置爲600),密碼文件內容格式爲username:password。
rsync部分目錄未受權訪問或弱密碼
爲rsync配置強密碼,或只容許特定IP訪問
weblogic接口信息泄露漏洞
weblogic升級到最新版本或只容許特定IP訪問
JBoss 4.2.0 BSHDeployer 代碼執行漏洞
將jboss升級到最新版本
zookeeper未受權訪問漏洞
禁止把Zookeeper直接暴露在公網
爲zookeeper配置強密碼或限制IP訪問
配置CLI訪問
復現





apt-get install zookeeper


workspace項目配置信息泄露
刪除網站文件夾中的workspace.xml文件
.htaccess文件泄露
禁止網站的訪問用戶直接查看.htaccess文件
phpinfo文件泄露
刪除網站文件夾中的phpinfo()文件
apache mod_jk訪問控制繞過漏洞(cve-2018-11759)
將apache mod_jk更新到1.2.46或更新的版本(https://archive.apache.org/dist/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.46-src.zip)
couchdb版本小於2.1.0致使權限繞過及遠程代碼執行漏洞
將couchdb升級到1.7.0或2.1.0之後的版本
apache服務器運行狀態信息泄露
僅容許特定IP訪問/server-status/頁面 修改httpd.conf,在最後加上server-status的配置: <IfModule status_module> <Location /server-status> SetHandler server-status Order Deny,Allow Deny from all #Allow from all </Location> </IfModule> 上面的配置指定的是禁止訪問server-status,若是你想開啓server-status,在Deny from all前面加上#,去掉Allow from all前面的#便可。
Kubernetes權限升級漏洞(CVE-2018-1002105)
官方推薦的最佳的修復方案是及時升級到:Kubernetes v1.10.11 或 Kubernetes v1.11.5 或 Kubernetes v1.12.3 或 Kubernetes v1.13.0-rc.1
IIS短文件名
1) 禁用windows系統中的短文件名功能。 打開註冊表並打開此目錄 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem 修改 NtfsDisable8dot3NameCreation 的值爲1 。 修改完成後,須要重啓系統生效。 2) Windows Server 2008 R2 查詢是否開啓短文件名功能:fsutil 8dot3name query 關閉該功能:fsutil 8dot3name set 1 Windows Server 2003 關閉該功能:fsutil behavior set disable8dot3 1 1) CMD關閉NTFS 8.3文件格式的支持 舉例:(1表明關閉,0表明開啓) Windows Server 2008 R2: 查詢是否開啓短文件名功能:fsutil 8dot3name query 關閉該功能:fsutil 8dot3name set 1 Windows Server 2003: 關閉該功能:fsutil behavior set disable8dot3 1 不一樣系統關閉命令稍有區別,該功能默認是開啓的,對於大多數用戶來講無需開啓。 2) 修改註冊表禁用短文件名功能 快捷鍵Win+R打開命令窗口,輸入regedit打開註冊表窗口 找到路徑: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem,將其中的 NtfsDisable8dot3NameCreation這一項的值設爲 1,1表明不建立短文件名格式 修改完成後,須要重啓系統生效 注:此方法只能禁止NTFS8.3格式文件名建立,已經存在的文件的短文件名沒法移除,須要從新複製纔會消失。 如下兩種方法僅適用於緩解GET 方法,其餘方法依舊能夠猜解。 3) 關閉Web服務擴展- ASP.NET 4) 升級netFramework至4.0以上版本
JBoss未受權訪問
https://www.cnblogs.com/hackxf/p/8951699.html https://www.cnblogs.com/hackxf/p/8951699.html https://www.secpulse.com/archives/24298.html 1.在 ${jboss.server.home.dir}/deploy下面找到jmx-console.war目錄編輯WEB-INF/web.xml文件 去掉 security-constraint 塊的註釋,使其起做用 2.編輯WEB-INF/classes/jmx-console-users.properties或server/default/conf/props/jmx-console-users.properties (version >=4.0.2)和 WEB-INF/classes/jmx-console-roles.properties 或server/default/conf/props/jmx-console-roles.properties(version >=4.0.2) 添加用戶名密碼 3.編輯WEB-INF/jboss-web.xml去掉 security-domain 塊的註釋 ,security-domain值的映射文件爲 login-config.xml (該文件定義了登陸受權方式)
mongodb未受權訪問漏洞
https://www.cnblogs.com/liqing1009/p/6282454.html https://www.jianshu.com/p/7448708e6d73 1.改端口 2.設置登陸帳號(原本沒有帳號)
snmp默認團體名/弱口令漏洞(161端口漏洞)
http://blog.sina.com.cn/s/blog_14c1fefb00102z27d.html
drupal注入
zookeeper