Kali Linux Web 滲透測(cè)試秘籍 第四章 漏洞發(fā)現(xiàn)

第四章 漏洞發(fā)現(xiàn)

作者:Gilberto Najera-Gutierrez

譯者:飛龍

協(xié)議:CC BY-NC-SA 4.0

簡(jiǎn)介

我們現(xiàn)在已經(jīng)完成了滲透測(cè)試的偵查階段毫玖,并且識(shí)別了應(yīng)用所使用的服務(wù)器和開(kāi)發(fā)框架的類型抹蚀,以及一些可能的弱點(diǎn)÷仍幔現(xiàn)在是實(shí)際測(cè)試應(yīng)用以及檢測(cè)它的漏洞的時(shí)候了。

這一章中恬叹,我們會(huì)涉及到檢測(cè)一些 Web 應(yīng)用中常見(jiàn)漏洞的過(guò)程,以及允許我們發(fā)現(xiàn)和利用它們的工具。

我們也會(huì)用到 vulnerable_vm 中的應(yīng)用执赡,我們會(huì)使用 OWASP Mantra 作為瀏覽來(lái)執(zhí)行這些測(cè)試。

4.1 使用 Hackbar 插件來(lái)簡(jiǎn)化參數(shù)分析

在測(cè)試 Web 應(yīng)用時(shí)函筋,我們需要和瀏覽器的地址欄交互沙合,添加或修改參數(shù),以及修改 URL跌帐。一些服務(wù)器的相應(yīng)會(huì)包含重定向首懈,刷新以及參數(shù)修改绊率。所有這些改動(dòng)都會(huì)使對(duì)相同變量嘗試不同值的操作非常費(fèi)時(shí)間。我們需要一些工具來(lái)使它們不那么混亂究履。

Hackbar 是 Firefox 插件滤否,它的行為就像地址欄,但是不受由服務(wù)器響應(yīng)造成的重定向或其它修改影響最仑,這就是我們需要測(cè)試 Web 應(yīng)用的原因藐俺。

這個(gè)秘籍中,我們會(huì)使用 Hackbar 來(lái)簡(jiǎn)化相同請(qǐng)求的不同版本的發(fā)送工作泥彤。

準(zhǔn)備

如果你沒(méi)有使用 OWASP Mantra欲芹,你需要在你的 Firefox 上安裝 Hackbar。

操作步驟

  1. 訪問(wèn) DVWA 并且登錄全景。默認(rèn)的用戶名/密碼組合是admin/admin耀石。

  2. 在左側(cè)的菜單上選擇SQL Injection(SQL 注入)。

  3. User ID輸入框中輸入數(shù)字爸黄,并點(diǎn)擊Submit(提交)滞伟。

    現(xiàn)在我們可以按下F9或者點(diǎn)擊圖標(biāo)來(lái)顯示 Hackbar。

    Hackbar 會(huì)賦值 URL 及其參數(shù)炕贵。我們也可以開(kāi)啟修改 POST 請(qǐng)求和 Referer 參數(shù)的選項(xiàng)梆奈。后者告訴服務(wù)器頁(yè)面從哪里被請(qǐng)求。

  4. 讓我們做個(gè)簡(jiǎn)單的改動(dòng)称开,將id參數(shù)值從1改成2亩钟,并點(diǎn)擊Execute(執(zhí)行)或者使用Alt + X快捷鍵。

    我們可以看到鳖轰,參數(shù)id對(duì)應(yīng)頁(yè)面上的文本框清酥,所以,我們可以使用 Hackbar 修改id來(lái)嘗試任何值蕴侣,而不需要修改文本框中的User ID并提交它焰轻。在測(cè)試擁有許多輸入的表單,或者取決于輸入重定向到其它頁(yè)面的表單時(shí)昆雀,這非常便利辱志。

  5. 我們可以將一個(gè)有效值替換為另一個(gè),但是如果我們輸入了一個(gè)無(wú)效值作為id狞膘,會(huì)發(fā)生什么呢揩懒?嘗試將單引號(hào)作為id

    通過(guò)輸入應(yīng)用非預(yù)期的字符,我們觸發(fā)了一個(gè)錯(cuò)誤挽封,這在之后測(cè)試一些漏洞的時(shí)候非常有用已球。

工作原理

Hackbar 是帶有一些實(shí)用特性的第二個(gè)地址欄,比如不受 URL 重定向影響,并且允許我們修改 POST 參數(shù)和悦。

此外退疫,Hackbar 可用于向我們的請(qǐng)求中添加 SQL 注入或跨站腳本代碼段,以及哈希鸽素、加密和編碼我們的輸入褒繁。我們會(huì)在這一章后面的秘籍中深入探索 SQL 注入、跨站腳本馍忽,以及其他漏洞棒坏。

4.2 使用 Tamper Data 插件攔截或修改請(qǐng)求

有時(shí)候,應(yīng)用擁有客戶端的輸入校驗(yàn)機(jī)制遭笋,它們通過(guò) JavaScript坝冕,隱藏表單或者 POST 數(shù)據(jù),并不能直接在地址欄中了解或看到瓦呼。為了測(cè)試這些以及其它類型的變量喂窟,我們需要攔截瀏覽器發(fā)送的請(qǐng)求并且在它們到達(dá)服務(wù)器之前修改它們。這個(gè)秘籍中央串,我們會(huì)使用叫做 Tamper Data 的 Firefox 插件來(lái)攔截表單提交并且在它離開(kāi)計(jì)算機(jī)之前修改一些值磨澡。

操作步驟

  1. 從 Mantra 的菜單中訪問(wèn) Tools | Application Auditing | Tamper Data

  2. 會(huì)出現(xiàn) Tamper Data 的窗口≈屎停現(xiàn)在稳摄,讓我們?yōu)g覽 < http://192.168.56.102/dvwa/login.php>。我們可以在插件中看到請(qǐng)求會(huì)話饲宿。

    每個(gè)瀏覽器產(chǎn)生的請(qǐng)求都會(huì)在活動(dòng)時(shí)經(jīng)過(guò) Tamper Data厦酬。

  3. 為了攔截請(qǐng)求并修改它的值,我們需要通過(guò)點(diǎn)擊Start Tamper來(lái)啟動(dòng) Tamper√毕耄現(xiàn)在啟動(dòng) Tamper仗阅。

  4. 輸入一些偽造的用戶名密碼組合。例如国夜,test/password减噪,之后點(diǎn)擊Login

  5. 在確認(rèn)框中支竹,取消勾選Continue Tampering?并點(diǎn)擊TamperTamper Popup窗口會(huì)出現(xiàn)鸠按。

  6. 在彈出窗口中礼搁,我們可以修改發(fā)送給服務(wù)器的信息,包括請(qǐng)求頭和 POST 參數(shù)目尖。將usernamepassword改為正確的(admin/admin)馒吴,之后點(diǎn)擊OK。這應(yīng)該在本書中使用,而不是 DVWA:

    在最后一步中饮戳,我們?cè)诒韱沃械闹涤蔀g覽器發(fā)送給服務(wù)器之前修改了它們豪治。因此,我們可以以正確的憑證而不是錯(cuò)誤的憑證登錄服務(wù)器扯罐。

工作原理

Tamper Data 會(huì)在請(qǐng)求離開(kāi)瀏覽器之前捕獲請(qǐng)求负拟,并提供給我們時(shí)間來(lái)修改它包含的任何變量。但是歹河,它也有一些限制掩浙,例如不能編輯 URL 或 GET 參數(shù)。

4.3 使用 ZAP 來(lái)查看和修改請(qǐng)求

雖然 Tamper Data 有助于測(cè)試過(guò)程秸歧,有時(shí)我們需要更靈活的方法來(lái)修改請(qǐng)求以及更多特性厨姚,例如修改用于發(fā)送它們的方法(即從 GET 改為 POST),或者使用其它工具為進(jìn)一步的目的保存請(qǐng)求/響應(yīng)對(duì)键菱。

OWASP ZAP 不僅僅是 Web 代碼谬墙,它不僅僅能夠攔截流量,也擁有許多在上一章所使用的经备,類似于爬蟲(chóng)的特性拭抬,還有漏洞掃描器,模糊測(cè)試器弄喘,爆破器玖喘,以及其它。它也擁有腳本引擎蘑志,可以用于自動(dòng)化操作或者創(chuàng)建新的功能累奈。

這個(gè)秘籍中,我們會(huì)開(kāi)始將 OWASP ZAP 用作代理急但,攔截請(qǐng)求澎媒,并在修改一些值之后將它發(fā)送給服務(wù)器。

準(zhǔn)備

啟動(dòng) ZAP 并配置瀏覽器在通過(guò)它發(fā)送信息波桩。

操作步驟

  1. 訪問(wèn) http://192.168.56.102/mutillidae/戒努。

  2. 現(xiàn)在,訪問(wèn)菜單欄中的OWASP Top 10 | A1 – SQL Injection | SQLi – Extract Data | User Info镐躲。

  3. 下一步是提升應(yīng)用的安全等級(jí)储玫。點(diǎn)擊Toggle Security。現(xiàn)在Security Level應(yīng)該是1 (Arrogant)萤皂。

  4. test'(包含單引號(hào))作為Name撒穷,以及password'作為Password,并且點(diǎn)擊View Account Details裆熙。

    我們得到了警告消息端礼,告訴我們輸入中的一些字符不合法禽笑。這里,單引號(hào)被檢測(cè)到了蛤奥,并被應(yīng)用的安全手段中止佳镜。

  5. 點(diǎn)擊OK來(lái)關(guān)閉警告。

    如果我們?cè)?ZAP 中檢查歷史凡桥,我們可以看到?jīng)]有發(fā)給服務(wù)器的請(qǐng)求蟀伸,這是由于客戶端校驗(yàn)機(jī)制。我們會(huì)使用請(qǐng)求攔截來(lái)繞過(guò)這個(gè)保護(hù)唬血。

  6. 現(xiàn)在我們開(kāi)啟請(qǐng)求攔截(在 ZAP 叫做斷點(diǎn))望蜡,通過(guò)點(diǎn)擊"break on all requests(中斷所有請(qǐng)求)按鈕。

  7. 下面拷恨,我們輸入了有效值NamePassword脖律,就像testpassword,并再次檢查細(xì)節(jié)腕侄。

    ZAP 會(huì)轉(zhuǎn)移焦點(diǎn)小泉,并打開(kāi)叫做Break的新標(biāo)簽頁(yè)。這里是剛剛在頁(yè)面上產(chǎn)生的請(qǐng)求冕杠,我們可以看到一個(gè) GET 請(qǐng)求微姊,帶有在 URL 中發(fā)送的usernamepassword參數(shù)。我們可以添加上一次嘗試中不允許的單引號(hào)分预。

  8. 為了繼續(xù)而不會(huì)被 ZAP 打斷兢交,我們通過(guò)點(diǎn)擊Unset Break按鈕來(lái)禁用斷點(diǎn)。

  9. 通過(guò)播放按鈕來(lái)提交修改后的請(qǐng)求笼痹。

    我們可以看到配喳,應(yīng)用在頂部提供給我們錯(cuò)誤信息,所以這是它的保護(hù)機(jī)制凳干,它在客戶端檢查用戶輸入晴裹,但是在服務(wù)端并沒(méi)有準(zhǔn)備好處理非預(yù)期的請(qǐng)求。

工作原理

這個(gè)秘籍中救赐,我們使用 ZAP 代理來(lái)攔截有效的請(qǐng)求涧团,將它修改為無(wú)效或而已請(qǐng)求,之后把它發(fā)給服務(wù)器并且觸發(fā)非預(yù)期的行為经磅。

前三步用于開(kāi)啟安全保護(hù)泌绣,便于應(yīng)用可以將單引號(hào)檢測(cè)為無(wú)效字符。

之后预厌,我們產(chǎn)生測(cè)試請(qǐng)求阿迈,并證實(shí)了會(huì)執(zhí)行一些校驗(yàn)。提示警告的時(shí)候配乓,沒(méi)有請(qǐng)求通過(guò)代理仿滔,這告訴了我們檢驗(yàn)是在客戶端進(jìn)行的,可能使用 JavaScript犹芹。知道了這個(gè)之后崎页,我們產(chǎn)生了合法的請(qǐng)求,并使用代理來(lái)攔截它腰埂,這讓我們能夠繞過(guò)客戶端的保護(hù)飒焦。我們將該請(qǐng)求轉(zhuǎn)換為惡意請(qǐng)求,并把它發(fā)給服務(wù)器屿笼,這使它不能被正確處理牺荠,并返回錯(cuò)誤。

4.4 使用 Burp Suite 查看和修改請(qǐng)求

Burp Suite 和 OWASP ZAP 一樣驴一,也不僅僅是個(gè)簡(jiǎn)單的 Web 代理休雌。它是功能完整的 Web 應(yīng)用測(cè)試包。它擁有代理肝断、請(qǐng)求重放器杈曲、請(qǐng)求自動(dòng)化工具、字符串編碼器和解碼器胸懈,漏洞掃描器(Pro 版本中)担扑,以及其它實(shí)用的功能。

這個(gè)秘籍中趣钱,我們會(huì)執(zhí)行上一個(gè)練習(xí)涌献,但是這次使用 Burp Suite 的代理功能來(lái)攔截和修改請(qǐng)求。

準(zhǔn)備

啟動(dòng) Burp Suite 并讓瀏覽器使用它的代理首有。

操作步驟

  1. 瀏覽 http://192.168.56.102/mutillidae/燕垃。

  2. 默認(rèn)情況下,Burp 代理中的攔截器是開(kāi)著的绞灼,所以他會(huì)捕獲第一個(gè)請(qǐng)求利术。我們需要打開(kāi) Burp Suite 并點(diǎn)擊Proxy標(biāo)簽頁(yè)中的Intercept is on按鈕。

  3. 瀏覽器會(huì)繼續(xù)加載頁(yè)面低矮。當(dāng)它完成時(shí)印叁,我們通過(guò)Toggle Security將當(dāng)前的應(yīng)用安全級(jí)別設(shè)置為1 (Arrogant)

  4. 從菜單欄中訪問(wèn)OWASP Top 10 | A1 – SQL Injection | SQLi – Extract Data | User Info军掂。

  5. Name輸入框中轮蜕,對(duì)Username輸入user<>(包括符號(hào))。在Password輸入框中蝗锥,對(duì)Password輸入secret<>跃洛。之后點(diǎn)擊View Account Details

    我們會(huì)得到警告终议,告訴我們我們可能向應(yīng)用輸入了一些危險(xiǎn)字
    符汇竭。

  6. 現(xiàn)在我們直到這些符號(hào)在表單中并不允許葱蝗,我們也知道了它是客戶端的校驗(yàn),因?yàn)榇淼?code>HTTP history標(biāo)簽頁(yè)中沒(méi)有任何請(qǐng)求出現(xiàn)细燎。讓我們嘗試?yán)@過(guò)這個(gè)保護(hù)两曼。通過(guò)點(diǎn)擊 Burp Suite 中的Intercept is off來(lái)開(kāi)啟消息攔截。

  7. 下一步是發(fā)送有效數(shù)據(jù)玻驻,例如usersecret悼凑。

  8. 代理會(huì)攔截該請(qǐng)求。現(xiàn)在我們修改usernamepassword的值璧瞬,通過(guò)添加禁止的字符<>户辫。

  9. 我們可以發(fā)送編輯后的信息,并通過(guò)點(diǎn)擊Intercept is on來(lái)禁用攔截嗤锉,或者我們可能發(fā)酸發(fā)送他并保持消息攔截渔欢,通過(guò)點(diǎn)擊Forward。對(duì)于這個(gè)練習(xí)瘟忱,我們禁用攔截并檢查結(jié)果膘茎。

工作原理

就像在上個(gè)秘籍中看到的那樣,在請(qǐng)求經(jīng)過(guò)由應(yīng)用建立在客戶端的驗(yàn)證機(jī)制之前酷誓,我們使用代理來(lái)捕獲請(qǐng)求披坏,并通過(guò)添加一些在檢驗(yàn)中不允許的字符,修改了它的內(nèi)容盐数。

能夠攔截和修改請(qǐng)求棒拂,對(duì)任何 Web 應(yīng)用滲透測(cè)試來(lái)說(shuō)都非常重要,不僅僅用于繞過(guò)一些客戶端檢驗(yàn)玫氢,就像我們?cè)诋?dāng)前和上一個(gè)秘籍中所做的那樣帚屉,也能夠用于了解發(fā)送了哪個(gè)信息,以及嘗試?yán)斫鈶?yīng)用的內(nèi)部原理漾峡。我們可能也需要基于我們的理解來(lái)添加攻旦、移除或替換一些值。

4.5 識(shí)別跨站腳本(XSS)漏洞

跨站腳本(XSS)是 Web 應(yīng)用中最常見(jiàn)的漏洞之一生逸。實(shí)際上牢屋,它位于 2013 年 OWASP Top 10 的第三名(<https://www.owasp.org/ index.php/Top_10_2013-Top_10>)。

這個(gè)秘籍中槽袄,我們會(huì)看到一些識(shí)別 Web 應(yīng)用中跨站腳本漏洞的關(guān)鍵點(diǎn)烙无。

操作步驟

  1. 登錄 DVWA 并訪問(wèn)反射型 XSS。

  2. 測(cè)試漏洞的第一步是觀察應(yīng)用的正常響應(yīng)遍尺。在文本框中輸入名稱并點(diǎn)擊Submit按鈕截酷。我們使用Bob

  3. 應(yīng)用會(huì)使用我們提供的名稱來(lái)拼接代碼乾戏。如果我們不輸入有效名稱迂苛,而是輸入一些特殊字符或數(shù)字會(huì)怎么樣呢三热?讓我們嘗試<'this is the 1st test'>

  4. 現(xiàn)在我們可以看到三幻,我們輸入在文本框匯總的任何東西都會(huì)反射到響應(yīng)中康铭,也就是說(shuō),它成為了響應(yīng)中 HTML 頁(yè)面的一部分赌髓。讓我們檢查頁(yè)面源代碼來(lái)分析它如何展示信息兢哭,就像下面截圖中那樣:

    源碼表明了輸出中沒(méi)有對(duì)任何特殊字符做編碼岸霹。我們發(fā)送的特殊字符被反射回了頁(yè)面慈俯,沒(méi)有任何預(yù)處理强品。<>符號(hào)適用于定義 HTML 標(biāo)簽的符號(hào)检碗,我們可能能夠在這里輸入一些腳本代碼瘩缆。

  5. 嘗試輸入一個(gè)名稱疤估,后面帶有非常簡(jiǎn)單的腳本代碼思灌。

    Bob<script>alert('XSS')</script>
    

    頁(yè)面會(huì)執(zhí)行腳本骑丸,并彈出提示框舌仍,表明這個(gè)頁(yè)面上存在跨站腳本漏洞。

  6. 現(xiàn)在檢查源碼來(lái)觀察輸入中發(fā)生了什么通危。

    我們的輸入看起來(lái)作為 HTML 的一部分來(lái)處理铸豁。瀏覽器解釋了<script>標(biāo)簽并執(zhí)行了其中的代碼,彈出了我們?cè)O(shè)置的提示框菊碟。

工作原理

跨站腳本漏洞在服務(wù)端和客戶端中沒(méi)有輸入校驗(yàn)节芥,并且輸出沒(méi)有合理編碼時(shí)發(fā)生。這意味著應(yīng)用允許我們輸入用于 HTML 代碼中的字符逆害。一旦它被決定發(fā)送到頁(yè)面中头镊,并沒(méi)有執(zhí)行任何編碼措施(例如使用 HTML 轉(zhuǎn)義代碼&lt>)來(lái)防止他們被解釋為源代碼。

這些漏洞可被攻擊者利用來(lái)改變客戶端的頁(yè)面行為魄幕,并欺騙用戶來(lái)執(zhí)行它們不知道的操作相艇,或偷取隱私信息。

為了發(fā)現(xiàn) XSS 漏洞纯陨,我們需要遵循以下原則:

  • 我們?cè)谳斎肟蛑休斎氲奶逞浚瑴?zhǔn)確來(lái)說(shuō)是被發(fā)送的文本,用于形成在頁(yè)面中展示的信息翼抠,這是反射型漏洞靡馁。

  • 特殊的字符沒(méi)有編碼或轉(zhuǎn)義。

  • 源代碼表明机久,我們的輸入被集成到某個(gè)位置臭墨,其中它變成了 HTML 代碼的一部分,并且會(huì)被瀏覽器解釋膘盖。

更多

這個(gè)秘籍中胧弛,我們發(fā)現(xiàn)了反射型 XSS尤误,也就是說(shuō)這個(gè)腳本在每次我們發(fā)送請(qǐng)求時(shí),并且服務(wù)器響應(yīng)我們的惡意請(qǐng)求時(shí)都會(huì)執(zhí)行结缚。有另外一種 XSS 類型叫做“存儲(chǔ)型”损晤。存儲(chǔ)型 XSS 可能會(huì)在輸入提交之后立即展示,也可能不會(huì)红竭。但是這種輸入會(huì)儲(chǔ)存在服務(wù)器(也可能是數(shù)據(jù)庫(kù))中尤勋,它會(huì)在用戶每次訪問(wèn)儲(chǔ)存數(shù)據(jù)時(shí)執(zhí)行。

4.6 基于錯(cuò)誤的 SQL 注入識(shí)別

注入在 OWASP top 10 列表中位列第一茵宪。這包含最冰,我們會(huì)在這個(gè)秘籍中測(cè)試的漏洞:SQL 注入(SQLI),以及其它稀火。

多數(shù)現(xiàn)代 Web 應(yīng)用實(shí)現(xiàn)了某種類型的數(shù)據(jù)庫(kù)暖哨,要么本地要么遠(yuǎn)程。SQL 是最流行的語(yǔ)言凰狞,在 SQLI 攻擊中篇裁,攻擊者向表單輸入或請(qǐng)求中的其它參數(shù)注入 SQL 命令,使應(yīng)用發(fā)送修改后的請(qǐng)求赡若,來(lái)試圖不正當(dāng)使用應(yīng)用和數(shù)據(jù)庫(kù)通信达布。其中請(qǐng)求用于構(gòu)建服務(wù)器中的 SQL 語(yǔ)句。

這個(gè)秘籍中逾冬,我們會(huì)測(cè)試 Web 應(yīng)用的輸入往枣,來(lái)觀察是否含有 SQL注入漏洞。

操作步驟

登錄 DWVA 并執(zhí)行下列步驟:

  1. 訪問(wèn)SQL Injection粉渠。

  2. 類似于上一章分冈,我們通過(guò)輸入數(shù)字來(lái)測(cè)試應(yīng)用的正常行為。將User ID設(shè)置為1霸株,并點(diǎn)擊Submit雕沉。

    我們可以通過(guò)解釋結(jié)果來(lái)得出,應(yīng)用首先查詢數(shù)據(jù)庫(kù)去件,是否有 ID 等于 1 的用戶坡椒,之后返回結(jié)果。

  3. 下面尤溜,我們必須測(cè)試倔叼,如果我們發(fā)送一些應(yīng)用的非預(yù)期結(jié)果,會(huì)發(fā)生什么宫莱。在輸入框中輸入1'并提交該 ID丈攒。

    這個(gè)錯(cuò)誤信息告訴我們,我們修改了生成好的查詢。這并不意味著這里確實(shí)有 SQL 注入巡验,但是我們可以更進(jìn)一步际插。

  4. 返回 DWVA/SQL 注入頁(yè)面。

  5. 為了驗(yàn)證是否有基于錯(cuò)誤的 SQL 輸入显设,我們嘗試另一個(gè)輸入:1''(兩個(gè)單引號(hào))框弛。

  1. 現(xiàn)在,我們要執(zhí)行基本的 SQL 注入攻擊捕捂,在輸入框中輸入' or '1'='1并提交瑟枫。

    看起來(lái)我們獲取了所有數(shù)據(jù)庫(kù)中的注冊(cè)用戶。

工作原理

SQL 注入發(fā)生在輸入在用于組成數(shù)據(jù)庫(kù)查詢之前沒(méi)有校驗(yàn)的時(shí)候指攒。讓我們假設(shè)服務(wù)端的代碼(PHP)拼裝了一個(gè)請(qǐng)求慷妙,例如:

$query = "SELECT * FROM users WHERE id='".$_GET['id']. "'";

這意味著,id參數(shù)中發(fā)送的數(shù)據(jù)會(huì)被集成進(jìn)來(lái)幽七,因?yàn)樗诓樵兝锩妗?shù)的引用替換為它的值溅呢,我們能得到:

$query = "SELECT * FROM users WHERE id='"."1". "'";

所以澡屡,當(dāng)我們發(fā)送惡意輸入,就像之前那樣咐旧,代碼行會(huì)由 PHP 解釋器讀取驶鹉,就像:

$query = "SELECT * FROM users WHERE id='"."' or '1'='1"."'";

拼接為:

$query = "SELECT * FROM users WHERE id='' or '1'='1'";

這意味著“選擇users表中的任何條目,只要用戶id等于空或者 1 等于 1”铣墨。然而 1 永遠(yuǎn)等于 1室埋,這就意味著所有用戶都復(fù)合條件。我們發(fā)送的第一個(gè)引號(hào)閉合了原始代碼中的做引號(hào)伊约,之后我們輸入了一些 SQL 代碼姚淆,不帶有閉合的單引號(hào),而是使用已經(jīng)在服務(wù)端代碼中該設(shè)置好的單引號(hào)屡律。

更多

SQL 攻擊比起顯式應(yīng)用的用戶名腌逢,可能導(dǎo)致更嚴(yán)重的破壞。通過(guò)利用這些漏洞超埋,攻擊者可能會(huì)通過(guò)執(zhí)行命令和提權(quán)來(lái)控制整個(gè)服務(wù)器搏讶。它也能夠提取數(shù)據(jù)庫(kù)中的所有信息,包括系統(tǒng)用戶名稱和密碼霍殴。取決于服務(wù)器和內(nèi)部網(wǎng)絡(luò)的配置媒惕,SQL 注入漏洞可能是整個(gè)網(wǎng)絡(luò)和內(nèi)部設(shè)施入侵的入口。

4.7 識(shí)別 SQL 盲注

我們已經(jīng)看到了 SQL 注入漏洞如何工作来庭。這個(gè)秘籍中妒蔚,我們會(huì)涉及到相同類型漏洞的不同變體,它不顯式任何能夠引導(dǎo)我們利用的錯(cuò)誤信息或提示。我們會(huì)學(xué)習(xí)如何識(shí)別 SQL 盲注面睛。

操作步驟

  1. 登錄 DVWA 并訪問(wèn)SQL Injection (Blind)絮蒿。

  2. 它看起來(lái)像是我們上一章了解的 SQL 注入。在輸入框中輸入1并點(diǎn)擊Submit叁鉴。

  3. 現(xiàn)在我們首次測(cè)試1'土涝。

    我們沒(méi)有得到任何錯(cuò)誤信息,但是也沒(méi)有結(jié)果幌墓,這里可能會(huì)發(fā)生一些有趣的事情但壮。

  4. 我們第二次測(cè)試1''

    ID=1的結(jié)果顯示了常侣,這意味著上一個(gè)結(jié)果1'產(chǎn)生了錯(cuò)誤蜡饵,并被應(yīng)用捕獲和處理掉了。很可能這里有個(gè) SQL 注入漏洞胳施,但是它是盲注溯祸,沒(méi)有顯示關(guān)于數(shù)據(jù)庫(kù)的信息,所以我們需要猜測(cè)舞肆。

  5. 讓我們嘗試識(shí)別焦辅,當(dāng)用戶注入永遠(yuǎn)為假的代碼會(huì)發(fā)生什么。將1' and '1'='2設(shè)置為用戶的 ID椿胯。

    '1'永遠(yuǎn)不會(huì)等于'2'筷登,所以沒(méi)有任何記錄符合查詢中的條件,并且沒(méi)有人惡化結(jié)果哩盲。

  6. 現(xiàn)在前方,嘗試當(dāng) ID 存在時(shí)永遠(yuǎn)為真的請(qǐng)求:1' and '1'='1

    這演示了頁(yè)面上的盲注廉油。如果我們的永遠(yuǎn)為假的 SQL 注入得到了不同的響應(yīng)惠险,并且永遠(yuǎn)為真的結(jié)果得到了另一個(gè)響應(yīng),這里就存在漏洞抒线,因?yàn)榉?wù)器會(huì)執(zhí)行代碼莺匠,即使它不顯示在響應(yīng)中。

工作原理

基于錯(cuò)誤的 SQL 輸入和盲注都存在于服務(wù)端十兢,也就是漏洞的那一段趣竣。應(yīng)用在使用輸入生成數(shù)據(jù)庫(kù)查詢之前并不過(guò)濾輸入。二者的不同存在于檢測(cè)和利用上旱物。

在基于錯(cuò)誤的 SQL 注入中遥缕,我們使用由服務(wù)器發(fā)送的錯(cuò)誤來(lái)識(shí)別查詢類型,表和列的名稱宵呛。

另一方面单匣,當(dāng)我們視圖利用盲注時(shí),我們需要通過(guò)問(wèn)問(wèn)題來(lái)得到信息。例如户秤,"' and name like 'a%"的意思是码秉,“是否存在以'a'開(kāi)頭的用戶?”如果我們得到了負(fù)面響應(yīng)鸡号,我們會(huì)詢問(wèn)是否有以'b'開(kāi)頭的名稱转砖。在得到正面結(jié)果之后,我們會(huì)就會(huì)移動(dòng)到第二個(gè)字符:"' and name like 'ba%"鲸伴。所以我們會(huì)花費(fèi)很多時(shí)間來(lái)檢測(cè)和利用府蔗。

另見(jiàn)

下面的信息可能有助于更好的了解 SQL 盲注:

4.8 識(shí)別 Cookie 中的漏洞

Cookie 是從網(wǎng)站發(fā)送的小型數(shù)據(jù)片段,它儲(chǔ)存于用戶的瀏覽器中汞窗。它們包含有關(guān)于這種瀏覽器或一些特定 Web 應(yīng)用用戶的信息姓赤。在現(xiàn)代 Web 應(yīng)用匯總,Cookie 用于跟蹤用戶的會(huì)話仲吏。通過(guò)在服務(wù)端和客戶端保存 Session ID不铆,服務(wù)器能夠同時(shí)識(shí)別由不同客戶端產(chǎn)生的不同請(qǐng)求。當(dāng)任何請(qǐng)求發(fā)送到服務(wù)器的時(shí)候裹唆,瀏覽器添加 Cookie并之后發(fā)送請(qǐng)求誓斥,服務(wù)器可以基于這個(gè) COokie 來(lái)識(shí)別會(huì)話。

這個(gè)秘籍中品腹,我們會(huì)學(xué)到如何識(shí)別一些漏洞岖食,它們?cè)试S攻擊者劫持有效用戶的會(huì)話红碑。

操作步驟

  1. 訪問(wèn) http://192.168.56.102/mutillidae/舞吭。

  2. 打開(kāi) Cookie Manager+ 并且刪除所有 Cookie。這可以防止與之前的 Cookie 產(chǎn)生混亂析珊。

  3. 現(xiàn)在羡鸥,在 Mutillidae II中,訪問(wèn)OWASP Top 10 | A3 – Broken Authentication and Session Management | Cookies忠寻。

  4. Cookies Manager+中惧浴,我們會(huì)看到出現(xiàn)了兩個(gè)新的 Cookie。PHPSESSIDshowhints奕剃。選項(xiàng)前者并點(diǎn)擊Edit來(lái)查看所有參數(shù)衷旅。

    PHPSESSID是基于 PHP 的 Web 應(yīng)用的會(huì)話默認(rèn)名稱。通過(guò)查看 Cookie 中參數(shù)值纵朋,我們可以看到它可以經(jīng)過(guò)安全和不安全的頻道(HTTP 和 HTTPS)發(fā)送柿顶。同樣,它可以被服務(wù)器讀取操软,以及被客戶端用過(guò)腳本代碼讀取嘁锯,因?yàn)樗](méi)有開(kāi)啟 HTTPOnly 標(biāo)識(shí)。這就是說(shuō),這個(gè)應(yīng)用的會(huì)話可以被劫持家乘。

工作原理

這個(gè)秘籍中蝗羊,我們檢查了 Cookie 的某些之,雖然并不像上一個(gè)那么明顯仁锯。在每次滲透測(cè)試中檢查 Cookie 的配置非常重要耀找,不正確的會(huì)話 Cookie 設(shè)置會(huì)打開(kāi)會(huì)話劫持攻擊的大門,以及錯(cuò)誤使用受信任的用戶賬戶扑馁。

如果 Cookie 沒(méi)開(kāi)啟HTTPOnly標(biāo)識(shí)涯呻,他就可以被腳本讀取。因此腻要,如果存在跨站腳本攻擊漏洞复罐,攻擊者就能夠得到有效會(huì)話的 ID,并且使用它來(lái)模擬應(yīng)用中的真實(shí)用戶雄家。

Cookies Manager+ 中的安全屬性效诅,或者Send For Encrypted Connections Only選項(xiàng)告訴瀏覽器只通過(guò)加密的頻道發(fā)送或接受該 Cookie(也就是說(shuō),只通過(guò) HTTPS)趟济。如果這個(gè)標(biāo)志沒(méi)有設(shè)置乱投,攻擊者可以執(zhí)行中間人攻擊(MITM),并且通過(guò) HTTP 來(lái)得到會(huì)話 Cookie顷编,這會(huì)使它顯示為純文本戚炫,因?yàn)?HTTP 是個(gè)純文本的協(xié)議。這就再次產(chǎn)生了攻擊者能夠通過(guò)持有會(huì)話 ID 來(lái)模擬有效用戶的場(chǎng)景媳纬。

更多

就像PHPSESSID是 PHP 會(huì)話 Cookie 的默認(rèn)名稱那樣双肤,其它平臺(tái)也擁有名稱,例如:

  • ASP.NET_SessionId是 ASP.NET 會(huì)話 Cookie 的名稱钮惠。

  • JSESSIONID是 JSP 實(shí)現(xiàn)的會(huì)話 Cookie茅糜。

OWASP 有一篇非常透徹的文章,關(guān)于保護(hù)會(huì)話 ID 和會(huì)話 Cookie素挽。

https://www.owasp.org/index.php/Session_Management_Cheat_Sheet

4.9 使用 SSLScan 獲取 SSL 和 TLS 信息

我們?cè)谀撤N程度上蔑赘,假設(shè)當(dāng)一個(gè)連接使用帶有 SSL 或 TLS 加密的 HTTPS 時(shí),它是安全的预明,而且任何試圖攔截它的攻擊者都只會(huì)得到一些無(wú)意義的數(shù)字缩赛。但是,這并不絕對(duì)正確:HTTPS 服務(wù)器需要正確配置來(lái)提供有效的加密層撰糠,并保護(hù)用戶不受 MITM 攻擊或密碼分析酥馍。一些 SSL 協(xié)議的實(shí)現(xiàn)和設(shè)計(jì)上的漏洞已經(jīng)被發(fā)現(xiàn)了,所以窗慎,我們?cè)谌魏?Web 應(yīng)用滲透測(cè)試中都要測(cè)試安全連接的強(qiáng)制性物喷。

這個(gè)秘籍中卤材,我們會(huì)使用 SSLScan,它是 Kali Linux 所包含的工具峦失,基于服務(wù)器的安全通信來(lái)分析服務(wù)器的配置文件(從客戶端的角度)扇丛。

操作步驟

OWASP BWA 虛擬機(jī)已經(jīng)配置好了 HTTPS 服務(wù)器,為了確保它正常工作尉辑,訪問(wèn) https://192.168.56.102/帆精,如果頁(yè)面沒(méi)有正常加載,你可能需要在繼續(xù)之前檢查你的配置文件隧魄。

  1. SSLScan 是個(gè)命令行工具(內(nèi)建于 Kali)卓练,所以我們需要打開(kāi)終端。

  2. 基本的sslscan命令會(huì)提供給我們服務(wù)器的足夠信息购啄。

    sslscan 192.168.56.102
    

    輸出的第一部分告訴我們服務(wù)器的配置襟企,包含常見(jiàn)的安全錯(cuò)誤配置:重協(xié)商、壓縮和 Heartbleed狮含,它是最近在一些 TLS 實(shí)現(xiàn)中發(fā)現(xiàn)的漏洞顽悼。這里,一切看起來(lái)都很好几迄。

    在第二部分中蔚龙,SSLScan 會(huì)展示服務(wù)器接受的加密方式。正如我們看到的那樣映胁,它支持 SSLv3 和一些例如 DES 的方式木羹,它現(xiàn)在是不安全的。它們以紅色文字展示解孙,黃色文字代表中等強(qiáng)度的加密坑填。

    最后,我們看到了首選的加密方式妆距,如果客戶端支持它穷遂,服務(wù)器會(huì)嘗試用于通信函匕。最終娱据,服務(wù)器會(huì)使用有關(guān)證書的信息。我們可以看到盅惜,它將中等強(qiáng)度的算法用于簽名中剩,并使用 RSA 弱密鑰。密鑰是弱的抒寂,因?yàn)樗挥?1024 位的長(zhǎng)度结啼,安全標(biāo)準(zhǔn)推薦至少 2048 位。

工作原理

SSLScan 通過(guò)創(chuàng)建多個(gè)到 HTTPS 的鏈接來(lái)工作屈芜,并嘗試不同的加密方式和客戶端配置來(lái)測(cè)試它接受什么郊愧。

當(dāng)瀏覽器鏈接到使用 HTTPS 的服務(wù)器時(shí)朴译,它們交換有關(guān)瀏覽器可以使用什么以及服務(wù)器支持什么的信息。之后它們?cè)谑褂酶叨葟?fù)雜的算法上達(dá)成一致属铁。如果配置不當(dāng)?shù)?HTTPS 服務(wù)器上出現(xiàn)了 MITM 攻擊眠寿,攻擊者就可以通過(guò)聲稱客戶端值支持弱加密算法來(lái)欺騙服務(wù)器,假如是 SSLv2 上的 56 位 DES焦蘑。之后攻擊者會(huì)攔截使用該算法加密的通信盯拱,通信可能會(huì)在幾天或幾小時(shí)之內(nèi)使用現(xiàn)代計(jì)算機(jī)破解。

更多

就像我們之前提到的那樣例嘱,SSLScan 能夠檢測(cè) Heartbleed狡逢,這是一個(gè)最近在 OpenSSL 實(shí)現(xiàn)中發(fā)現(xiàn)的有趣漏洞。

Heartbleed 在 2014 年四月被發(fā)現(xiàn)拼卵。它由一個(gè)緩沖區(qū)導(dǎo)致奢浑,多于允許的數(shù)據(jù)可以從內(nèi)存中讀出,這是 OpenSSL TLS 中的情況腋腮。

實(shí)際上殷费,Heartbleed 可以在任何未裝補(bǔ)丁的支持 TLS 的 OpenSSL (1.0.1 到 1.0.1f 之間)服務(wù)器上利用。它從服務(wù)器內(nèi)存中讀取 64 KB 的純文本數(shù)據(jù)低葫,這能夠重復(fù)執(zhí)行详羡,服務(wù)器上不會(huì)留下任何蹤跡或日志。這意味著攻擊者可以從服務(wù)器讀取純文本信息嘿悬,包括服務(wù)器的的私鑰或者加密正是实柠,會(huì)話 Cookie 或 HTTPS 請(qǐng)求會(huì)包含用戶的密碼或其它敏感信息。更多 Heartbleed 的信息請(qǐng)見(jiàn)維基百科:<https://en.wikipedia.org/wiki/ Heartbleed>善涨。

另見(jiàn)

SSLScan 并不是唯一從 SSL/TLS 獲取加密信息的攻擊窒盐。Kali 中也有另一個(gè)工具叫做 SSLyze 可以用作替代,并且有時(shí)候會(huì)提供額外信息給攻擊者钢拧。

sslyze --regular www.example.com 

SSL/TLS 信息也可以通過(guò) OpenSSL 命令獲得:

openssl s_client -connect www2.example.com:443

4.10 查找文件包含

文件包含漏洞出現(xiàn)在開(kāi)發(fā)者使用請(qǐng)求參數(shù)的時(shí)候蟹漓,在服務(wù)端的代碼中,參數(shù)可以被用戶修改來(lái)動(dòng)態(tài)選擇加載或包含哪個(gè)頁(yè)面源内。如果服務(wù)器執(zhí)行了所包含的文件葡粒,這種漏洞可能導(dǎo)致整個(gè)系統(tǒng)的淪陷。

這個(gè)秘籍中膜钓,我們會(huì)測(cè)試 Web 應(yīng)用來(lái)發(fā)現(xiàn)是否含有文件包含漏洞嗽交。

操作步驟

  1. 登錄 DVWA 并訪問(wèn)File Inclusion

  2. 我們需要編輯 GET 參數(shù)來(lái)測(cè)試包含颂斜。讓我們嘗試index.php夫壁。

    看起來(lái)目錄中沒(méi)有index.php文件(或者它為空),也可能這意味著本地文件包含(LFI)可能出現(xiàn)沃疮。

  3. 為了嘗試 LFI盒让,我們需要了解本地真正存在的文件名稱梅肤。我們知道了 DVWA 根目錄下存在index.php,所以我們對(duì)文件包含嘗試目錄遍歷邑茄,將頁(yè)面遍歷設(shè)置為../../index.php凭语。

    這樣我們就演示了 LFI 可能出現(xiàn),并且路徑遍歷也可能出現(xiàn)(使用../../撩扒,我們就遍歷了目錄樹(shù))似扔。

  4. 下一步是嘗試遠(yuǎn)程文件包含,包括儲(chǔ)存在另一個(gè)服務(wù)器的我呢間搓谆,而不是本地文件炒辉,由于我們的測(cè)試虛擬機(jī)并沒(méi)有連接互聯(lián)網(wǎng)(或者它不應(yīng)該聯(lián)網(wǎng),出于安全因素)泉手。我們嘗試帶有完整 URL 的本地文件黔寇,就像它來(lái)自另一個(gè)服務(wù)器那樣。我們也會(huì)嘗試包含 Vicnum 的主頁(yè)?page=http://192.168.56.102/vicnum/index.html斩萌,通過(guò)提供頁(yè)面的 URL 作為參數(shù)缝裤,就像下面這樣:

    我們能夠通過(guò)提供完整 URL 使應(yīng)用加載頁(yè)面,這意味著我們可以包含遠(yuǎn)程文件颊郎,因此憋飞,存在遠(yuǎn)程文件包含(RFI)。如果被包含文件含有服務(wù)端可執(zhí)行代碼(例如 PHP)姆吭,這種代碼會(huì)被服務(wù)端執(zhí)行榛做。因此,攻擊者可以執(zhí)行遠(yuǎn)程命令内狸,這樣的話检眯,整個(gè)系統(tǒng)很可能淪陷。

工作原理

如果我們使用 DVWA 的View Source按鈕昆淡,我們可以看到服務(wù)端代碼是:

<?php 
$file = $_GET['page']; //The page we wish to display 
?>

這意味著page變量的值直接傳給了文件名稱锰瘸,之后它被包含在代碼中。這樣昂灵,我們可以在服務(wù)端包含和執(zhí)行任何我們想要的 PHP 或 HTML 文件避凝,只要它可以通過(guò)互聯(lián)網(wǎng)訪問(wèn)。存在 RFI 漏洞的情況下倔既,服務(wù)器一定會(huì)在配置文件中打開(kāi)allow_url_fopenallow_url_include恕曲。否則它只能含有本地文件包含鹏氧,如果文件包含漏洞存在的話渤涌。

更多

我們也可以使用本地文件包含來(lái)顯示主機(jī)操作系統(tǒng)的相關(guān)文件。例如把还,試著包含../../../../../../etc/passwd实蓬,之后你就會(huì)得到系統(tǒng)用戶和它們的主目錄茸俭,以及默認(rèn) shell 的列表。

4.11 識(shí)別 POODLE 漏洞

就像上一章提到的那樣安皱,使用 SSLScan 獲得 HTTPS 參數(shù)在一些條件下是可能的调鬓,尤其是中間人攻擊者降級(jí)用于加密通信的安全協(xié)議和加密算法的時(shí)候。

POODLE 攻擊使用這種條件來(lái)將 TLS 通信降級(jí)為 SSLv3 并強(qiáng)制使用易于被攻破的加密算法(CBC)酌伊。

這個(gè)秘籍中腾窝,我們會(huì)使用 Nmap 腳本來(lái)檢測(cè)這種漏洞在測(cè)試服務(wù)器上是否存在。

準(zhǔn)備

我們需要安裝 Nmap 并下載特定為檢測(cè)此漏洞而編寫的腳本居砖。

  1. 訪問(wèn)http://nmap.org/nsedoc/scripts/ssl-poodle.html虹脯。

  2. 下載ssl-poodle.nse文件。

  3. 假設(shè)它下載到了你的 Kali 中的/root/Downloads中奏候。下載打開(kāi)終端并將它復(fù)制到 Nmap 的腳本目錄中:

    cp /root/Downloads/ssl-poodle.nse /usr/share/nmap/scripts/
    

操作步驟

一旦你安裝了腳本循集,執(zhí)行下列步驟:

  1. 打開(kāi)終端并運(yùn)行:

    nmap --script ssl-poodle -sV -p 443 192.168.56.102
    

    我們告訴了 Nmap 要掃描192.168.56.102(我們的 vulnerable_vm)的 443 端口,識(shí)別服務(wù)版本并在它上面執(zhí)行 ssl-poodle 腳本蔗草。一次你咒彤,我們可以斷定,服務(wù)器有漏洞咒精,因?yàn)樗试S 使用TLS_RSA_WITH_ AES_128_CBC_SHA加密算法的 SSLv3 镶柱。

工作原理

我們下載的 Nmap 腳本和測(cè)試服務(wù)器建立了安全通信,并判斷他是否支持 SSLv3 上的 CBC 加密算法模叙。如果支持奸例,它就存在漏洞。漏洞會(huì)導(dǎo)致任何攔截的信息都能被攻擊者在很短的時(shí)間內(nèi)解密向楼。

另見(jiàn)

為了更好理解這個(gè)攻擊查吊,你可以查看一些這個(gè)加密實(shí)現(xiàn)最基本的解釋。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末湖蜕,一起剝皮案震驚了整個(gè)濱河市逻卖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌昭抒,老刑警劉巖评也,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異灭返,居然都是意外死亡盗迟,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門熙含,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)罚缕,“玉大人,你說(shuō)我怎么就攤上這事怎静∮实” “怎么了黔衡?”我有些...
    開(kāi)封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)腌乡。 經(jīng)常有香客問(wèn)我盟劫,道長(zhǎng),這世上最難降的妖魔是什么与纽? 我笑而不...
    開(kāi)封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任侣签,我火速辦了婚禮,結(jié)果婚禮上急迂,老公的妹妹穿的比我還像新娘硝岗。我一直安慰自己,他們只是感情好袋毙,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布型檀。 她就那樣靜靜地躺著,像睡著了一般听盖。 火紅的嫁衣襯著肌膚如雪胀溺。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天皆看,我揣著相機(jī)與錄音仓坞,去河邊找鬼。 笑死腰吟,一個(gè)胖子當(dāng)著我的面吹牛无埃,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播毛雇,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼嫉称,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了灵疮?” 一聲冷哼從身側(cè)響起织阅,我...
    開(kāi)封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎震捣,沒(méi)想到半個(gè)月后荔棉,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蒿赢,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年润樱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片羡棵。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡壹若,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情舌稀,我是刑警寧澤啊犬,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布灼擂,位于F島的核電站壁查,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏剔应。R本人自食惡果不足惜睡腿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望峻贮。 院中可真熱鬧席怪,春花似錦、人聲如沸纤控。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)船万。三九已至刻撒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間耿导,已是汗流浹背声怔。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留舱呻,地道東北人醋火。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像箱吕,于是被迫代替她去往敵國(guó)和親芥驳。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容