通過HTTP頭部字段防御措施整理
X-Frame-Options #反劫持
X-XSS-Protection #開啟瀏覽器防XSS功能
Set X-Frame-Options
CSP
X-Content-Type-Options: nosniff #改會影響瀏覽器的行為,過濾掉敏感文件
Content-Encoding #Breach攻擊
robots.txt
注入
預編譯
文件上傳
后端代碼限制上傳的文件類型(類型&后綴)和大小
強制給上傳的文件添加后綴名
命令執行
禁用或過濾代碼執行函數
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