久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

modsecurity配置指令学习

發(fā)布時(shí)間:2025/4/14 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 modsecurity配置指令学习 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

事務(wù)(transactions)

Console(控制臺(tái))

1 Introduction

Modsecurity是保護(hù)網(wǎng)絡(luò)應(yīng)用安全的工作。不,從零開(kāi)始。我常稱modsecurity為WAF(網(wǎng)絡(luò)應(yīng)用防火墻),這是種被廣泛接受的叫法,它指的是為保護(hù)網(wǎng)絡(luò)應(yīng)用而專門設(shè)計(jì)的產(chǎn)品族。也有些時(shí)候我稱它為HTTP入侵檢測(cè)工具,我認(rèn)為這個(gè)稱呼更好的描述了modsecurity做了什么。

?

Understanding ModSecurity

像Apache為其他模塊所做的一樣,Apache為modsecurity處理一些基礎(chǔ)任務(wù):

1、? 加密解密

2、? 破壞HTTP請(qǐng)求的入站連接流

3、? 部分性解析HTTP請(qǐng)求

4、? 引導(dǎo)modsecurity,選擇正確的配置文本(<VirtualHost>,<Location>等)

5、? De-chunks必需的請(qǐng)求體

反向代理模式時(shí)Apache會(huì)執(zhí)行幾個(gè)別的任務(wù):

1、? 請(qǐng)求轉(zhuǎn)發(fā)到后端服務(wù)器(SSL或者非SSL)

2、? 部分性解析HTTP響應(yīng)

3、? De-chunks必需的響應(yīng)體

?

What ModSecurity Does

Modsecurity提供的功能大概能分成四個(gè)部分:

Parsing解析:

Modsecurity會(huì)努力解析盡可能多的數(shù)據(jù)。Security-conscientious解析器會(huì)提取儲(chǔ)存數(shù)據(jù),義工在規(guī)則中使用,并支持一定的數(shù)據(jù)格式。

Buffering緩存

典型安裝時(shí),請(qǐng)求體和響應(yīng)體都會(huì)緩存。這就意味著,modsecurity在請(qǐng)求被傳到應(yīng)用服務(wù)器進(jìn)行處理之前,就見(jiàn)到完整的請(qǐng)求了。在響應(yīng)被送到客戶端之前就見(jiàn)到了響應(yīng)。緩存是一個(gè)重要的特性,因?yàn)橹挥羞@種方式才能可靠的攔截?cái)?shù)據(jù)。緩存也存在缺陷,他需要額外的RAM來(lái)存儲(chǔ)請(qǐng)求體和響應(yīng)體數(shù)據(jù)。

Logging日志

全事務(wù)日志(又稱審計(jì)日志)占據(jù)了modsecurity所做工作的很大一部分。你可以利用日志記錄完整的HTTP流量,而不是僅僅粗略的訪問(wèn)日志信息。請(qǐng)求頭、請(qǐng)求體、響應(yīng)頭、響應(yīng)體,所有這些信息你都能獲得。只有日志有這個(gè)功能

?

?

?

?

?

What Rules Look Like規(guī)則是什么樣子的

ModSecurity圍繞兩種東西:配置和規(guī)則。配置告訴modsecurity怎么處理它遇到的數(shù)據(jù)。規(guī)則決定對(duì)要處理的數(shù)據(jù)做什么。盡管現(xiàn)在看規(guī)則是怎么運(yùn)作的還太早,我將給你展示一個(gè)快速的例子,僅僅告訴你規(guī)則是什么樣子的:

SecRule ARGS “<script>” log,deny,status:404

即使沒(méi)有進(jìn)一步的幫助,你大概也能看出來(lái)規(guī)則指定了在輸入數(shù)據(jù)(<script>)中我們希望得到什么樣的數(shù)據(jù)。類似的,你很容易發(fā)現(xiàn)當(dāng)?shù)玫狡谕J?#xff08;log,deny,status:404)時(shí)會(huì)發(fā)生什么。如果我告訴你規(guī)則的一般語(yǔ)法,你將會(huì)更加清晰,例如下面:

SecRule VARIABLES OPERATOR ACTIONS

三部分的含義如下:

VARIABLES告訴ModSecurity上哪查找,例子中的ARGS變量,表示所有的請(qǐng)求參數(shù);。

OPERATOR告訴ModSecurity怎么查找,例子中,我們用一個(gè)正則表達(dá)式模式,他將和ARGS匹配。

ACTIONS告訴ModSecurity,當(dāng)匹配發(fā)生時(shí),將會(huì)做什么。例子中的規(guī)則給出了指示:記錄問(wèn)題,拒絕交互,用狀態(tài)號(hào):404拒絕。

我希望你不要對(duì)第一條規(guī)則的簡(jiǎn)單而失望,我向你保證通過(guò)組合ModSecurity提供的不同的工具,你能夠?qū)懗鲇杏玫囊?guī)則來(lái)實(shí)現(xiàn)負(fù)責(zé)的邏輯功能。

?

Transaction Lifecycle交互周期

ModSecurity中,每次交互都需要五步或五段:每一段,modSecurity都要在開(kāi)始做一些工作(例如:剖析數(shù)據(jù)),激發(fā)這一段中指定的規(guī)則,讓他起作用,或者段規(guī)則結(jié)束之后做一兩件事情。乍一看,五步很多,但是每一段的存在都有一個(gè)原因。總有一件或者幾件事情只能在交互周期的某一特定時(shí)刻發(fā)生。

請(qǐng)求頭(1)

請(qǐng)求頭段是modsecurity第一個(gè)切入點(diǎn)。這一段的首要目的是允許規(guī)則作者在代價(jià)很高的請(qǐng)求體處理過(guò)程發(fā)生之前對(duì)請(qǐng)求進(jìn)行評(píng)估。請(qǐng)求頭段會(huì)影響modsecurity怎么處理一個(gè)請(qǐng)求體。例如,modsecurity不會(huì)默認(rèn)分析XML請(qǐng)求體,但是你可以通過(guò)在第一階段指定合適的規(guī)則來(lái)指示他這么做。

請(qǐng)求體(2)

請(qǐng)求體階段是主要的請(qǐng)求分析階段并且當(dāng)接收到一個(gè)完整的請(qǐng)求體并進(jìn)行處理時(shí),這一階段立即發(fā)生。這一階段的規(guī)則可以任意處理所有的請(qǐng)求數(shù)據(jù)。

響應(yīng)頭(3)

響應(yīng)頭階段在接收到響應(yīng)頭之后,還沒(méi)有讀取響應(yīng)體之前發(fā)生。這一階段的規(guī)則將會(huì)決定是否檢查響應(yīng)體。

響應(yīng)體(4)

響應(yīng)體階段是主要的響應(yīng)分析階段。這一階段一開(kāi)始,就會(huì)讀取響應(yīng)體的數(shù)據(jù)以供規(guī)則使用。

記錄(5)

記錄階段很特殊,首先,這是唯一的一個(gè)你不能鎖定的階段。交互完成之后,這個(gè)階段才開(kāi)始運(yùn)行,所以你什么都不能做,只能記錄發(fā)生的事實(shí)。這個(gè)階段的規(guī)則將會(huì)控制怎么記錄。

?

周期實(shí)例

為了讓你更好的理解每個(gè)交互階段發(fā)生了什么,我們將研究一個(gè)POST交互的詳細(xì)調(diào)試日志。因?yàn)橄旅孢@個(gè)交互將會(huì)運(yùn)用modsecurity的大多數(shù)部分,我們特意選擇了一個(gè)使用請(qǐng)求體來(lái)發(fā)送數(shù)據(jù)的交互類型。為了使事情相對(duì)簡(jiǎn)單,我使用了一個(gè)沒(méi)有任何規(guī)則的配置,為了清晰起見(jiàn),去除了一些調(diào)試記錄行、時(shí)間戳和一些附加的元數(shù)據(jù)。

注意:不要期望在此就能理解關(guān)于日志的所有事情。只是有一個(gè)關(guān)于modsecurity如何工作的大體感覺(jué)。開(kāi)始使用modsecurity之后,你很快就會(huì)發(fā)現(xiàn)調(diào)試記錄是一個(gè)不可缺少的書(shū)寫(xiě)規(guī)則和疑難排解的工具。

我在這一段文章中使用的交互很直接。我把請(qǐng)求數(shù)據(jù)放在兩個(gè)不同的地方,參數(shù)a放在查詢字符串中,參數(shù)b放在請(qǐng)求體中,但是在這個(gè)請(qǐng)求當(dāng)中再?zèng)]有值得注意的地方了。

POST /?a=test HTTP/1.0

Content-type: application/x-www-form-urlencoded

Content-Length:6

?

B=test

?

響應(yīng)一點(diǎn)都不起眼:

HTTP/1.1 200 OK

Date:Sun,17 Jan 2010 00:13:44 GMT

Server:Apache

Content-Length:12

Connection:close

Content-Type:text/html

?

Hello World!

?

請(qǐng)求頭available之后但是請(qǐng)求體(如果有的話)未讀之前,Apache第一次啟用ModSecurity。先出現(xiàn)初始化消息,包含了mod_unique_id產(chǎn)生的獨(dú)立的交互ID號(hào)。使用這個(gè)信息你應(yīng)該能夠把調(diào)試日志里的信息和你訪問(wèn)的信息以及審計(jì)日志里的信息配對(duì)。這時(shí),modsecurity將解析請(qǐng)求行和請(qǐng)求頭上的信息。在這個(gè)例子中,查詢字符串包含了一個(gè)簡(jiǎn)單的參數(shù)a,所以你會(huì)看見(jiàn)記錄它的發(fā)現(xiàn)的消息。然后Modsecurity會(huì)創(chuàng)建一個(gè)交互語(yǔ)境,并引發(fā)REQUEST_HEADERS段:

[4]初始化交互(txid SopXW38EAAE9YbLQ)

[5]增加請(qǐng)求參數(shù)(查詢字符串QUERY_STRING):名字“a“,值“test”

[4]創(chuàng)建交互語(yǔ)境(dcfg 8121800)

[4]開(kāi)始段REQUEST_HEADERS

如果一個(gè)規(guī)則沒(méi)有鎖定交互,那么現(xiàn)在modsecurity就會(huì)給Apache返回控制,以允許其他模塊在控制返回給他之前處理請(qǐng)求。在第二階段,modsecurity先讀取然后處理請(qǐng)求體,前提是請(qǐng)求體存在。在接下來(lái)的例子中,你能看到輸入過(guò)濾器中的三個(gè)消息,告訴你讀取了什么。第四條消息告訴你,從請(qǐng)求體中獲取了一個(gè)參數(shù)。請(qǐng)求(application/x-www-form-urlcoded)中使用的內(nèi)容類型是modsecurity能識(shí)別并且自動(dòng)分析的類型。一旦處理了請(qǐng)求體,就會(huì)處理ERQUEST_BODY規(guī)則。

[4]第二階段開(kāi)始(dcfg 8121800)

[4]輸入過(guò)濾器:正在讀取請(qǐng)求體

[9]輸入過(guò)濾器:斗式HEAP包含6個(gè)字節(jié)

[9]輸入過(guò)濾器:斗式EOS包含0個(gè)字節(jié)

[5]正在增加請(qǐng)求參數(shù)(BODY):名稱“b”,值:“test”

[4]輸入過(guò)濾器:已完成接受請(qǐng)求體(長(zhǎng)度6)

[4]開(kāi)始階段REQUEST_BODY

記錄當(dāng)中一直提到的過(guò)濾器是modsecurity處理請(qǐng)求體和響應(yīng)體的部分。

[4]鉤住嵌入過(guò)濾器:增加輸入轉(zhuǎn)發(fā)過(guò)濾器(r 81d0588)

[4]鉤住嵌入過(guò)濾器:增加輸出過(guò)濾器(r 81d0588)

Modsecurity沒(méi)法送一大塊數(shù)據(jù)給請(qǐng)求處理程序,就會(huì)在調(diào)試日志里面增加一條消息,最后一條小時(shí)用來(lái)說(shuō)明緩沖區(qū)中沒(méi)有數(shù)據(jù)了。

[4]輸入過(guò)濾器:轉(zhuǎn)發(fā)輸入:mode=0,block=0,nbytes=8192(f 81d2228,r 81d0588)

[4]輸入過(guò)濾器:轉(zhuǎn)發(fā)了6個(gè)字節(jié)

[4]輸入過(guò)濾器:發(fā)送了EOS

[4]輸入過(guò)濾器:輸入轉(zhuǎn)發(fā)完成

不久之后,輸出過(guò)濾器將會(huì)開(kāi)始接收數(shù)據(jù),就在此時(shí)引發(fā)RESPONSE_HEADERS規(guī)則:

[9]輸出過(guò)濾器:接收輸出(f 81d2258,r 81d0588)

[4]開(kāi)始RESPONSE_HEADERS階段

一旦所有的規(guī)則都運(yùn)行過(guò)了,modsecurity將繼續(xù)在緩存區(qū)中儲(chǔ)存響應(yīng)體,之后運(yùn)行RESPONSE_BODY規(guī)則。

[9]輸出過(guò)濾器:斗式MMAP包含12個(gè)字節(jié)

[9]輸出過(guò)濾器:斗式EOS包含0個(gè)字節(jié)

[4]輸出過(guò)濾器:完成接收響應(yīng)體(緩沖區(qū)滿-12個(gè)字節(jié))

[4]開(kāi)始階段RESPONSE_BODY

再一次假設(shè)沒(méi)有鎖定規(guī)則,積累的響應(yīng)體將會(huì)轉(zhuǎn)發(fā)給客戶端。

[4]輸出過(guò)濾器:輸出轉(zhuǎn)發(fā)完成

最后,記錄階段開(kāi)始。先運(yùn)行LOGGING規(guī)則來(lái)影響記錄動(dòng)作,這之后如果有必要的話才會(huì)啟動(dòng)審計(jì)記錄子系統(tǒng)來(lái)記錄交互。審計(jì)記錄子系統(tǒng)發(fā)的消息將會(huì)是日志中最后一條交互消息。在這個(gè)例子中,modsecurity告訴我們他沒(méi)有發(fā)現(xiàn)交互當(dāng)中任何值得關(guān)注的事情并且沒(méi)有理由記錄:

[4]開(kāi)始記錄

[4]開(kāi)始LOGGING階段

[4]審計(jì)記錄:忽略了一個(gè)不想管的請(qǐng)求。

?

?

?

?

?

?

?

?

?

?

?

處理階段:

ModSecurity 2.x允許把規(guī)則至于下述五個(gè)階段之一:

請(qǐng)求頭(REQUEST_HEADERS)

請(qǐng)求體(REQUEST_BODY)

響應(yīng)頭(RESPONSE_HEADERS)

響應(yīng)體(RESPONSE_BODY)

記錄(LOGGING)

為了在規(guī)則執(zhí)行時(shí)選擇階段,需要使用階段命令,可以通過(guò)規(guī)則中直接使用,也可以通過(guò)SecDefaultAction指令。

SecDefaultAction “l(fā)og,pass,phase:2”

SecRule REQUEST_HEADER:Host “!^$””deny,phase:1”

注意:要注意規(guī)則的執(zhí)行時(shí)依賴于階段,即使是一個(gè)配置文件中的兩條鄰近的規(guī)則,只要是設(shè)置了在不同的階段中執(zhí)行,他們就不會(huì)是一個(gè)接一個(gè)的生效。配置文件中的規(guī)則順序僅僅是在規(guī)則各自的階段中是重要的。在使用Skip和SkipAfter動(dòng)作時(shí)尤為重要。

注意:LOGGING階段比較特別,無(wú)論前面的各個(gè)階段發(fā)生了什么事,都會(huì)每個(gè)事務(wù)的最后被執(zhí)行。這就意味著哪怕是請(qǐng)求被中斷或是放行事務(wù)時(shí)都會(huì)被執(zhí)行。

請(qǐng)求頭階段:

這個(gè)階段的規(guī)則會(huì)在apache完成請(qǐng)求頭的讀取后立即被執(zhí)行(post-read-request階段),這時(shí),還沒(méi)有讀取請(qǐng)求體,意味著不是所有的參數(shù)都可用。如果你必須讓規(guī)則盡早運(yùn)行,應(yīng)把規(guī)則放在這個(gè)階段(在apache使用這個(gè)請(qǐng)求做某些事前),在請(qǐng)求體被讀取前做些事情,從而決定是否緩存這個(gè)請(qǐng)求體,或者決定你將希望這個(gè)請(qǐng)求體如何被處理(如是否以XML格式解析或不解析)。

注意這個(gè)階段的規(guī)則無(wú)法影響apache的范圍指令(Directory,Location,LocationMatch等)像post-read-request鉤子一樣還無(wú)法得到信息。VirtualHost指令有些例外,如果想在apache的locations使用ModSecurity規(guī)則,那么他們應(yīng)該運(yùn)行在階段2,參考apache請(qǐng)求環(huán)/ModSecurity處理階段圖標(biāo)。

請(qǐng)求體階段:

這是通用輸入分析階段,大部分傳統(tǒng)的應(yīng)用規(guī)則不在這兒,這個(gè)階段你肯定能收到參數(shù)(只有讀取過(guò)請(qǐng)求體后),在請(qǐng)求體階段,ModSecurity支持三種編碼類型。

Application/x-www-form-urlencoded – used to transfer from data

Multipart/from-data – used for file transfers

Text/xml – used for passing XML data

大部分WEB應(yīng)用還沒(méi)有使用其他的編碼方法。

響應(yīng)頭階段:

發(fā)生在響應(yīng)頭被發(fā)送到客戶端之前,如果你想觀察響應(yīng)發(fā)生前就在這兒運(yùn)行,如果你想使用響應(yīng)頭來(lái)決定你是否想緩存響應(yīng)體也行。注意一些響應(yīng)狀態(tài)碼(如404)在請(qǐng)求環(huán)的早期就被apache管理著,我也無(wú)法觸發(fā)預(yù)期。加上apache在后面的鉤子上雙增加了一些響應(yīng)頭(如日期、服務(wù)器和連接信息等),這些我們無(wú)法觸發(fā)和審查。在代理配置模式下或使用phase:5(logging)工作的較好。

響應(yīng)體階段:

這是通用輸出分析階段,這里你能運(yùn)行規(guī)則截?cái)囗憫?yīng)體(當(dāng)然提供緩存)。這個(gè)階段你想檢查輸出的HTML信息公布、錯(cuò)誤信息和失敗的驗(yàn)證文字。

日志階段:

在日志發(fā)生前運(yùn)行的一個(gè)階段,放在這個(gè)階段的規(guī)則只能影響日志記錄器如何執(zhí)行,這個(gè)階段可以檢測(cè)apache記錄的錯(cuò)誤信息,在這個(gè)階段你不能拒絕或阻斷連接,因?yàn)樘t了,這個(gè)階段也允許檢測(cè)其他的響應(yīng)頭,如那在phase:3或者phase:4階段中不可用的。注意在這個(gè)階段,你應(yīng)當(dāng)小心不要繼承破壞性的動(dòng)作到規(guī)則中,這樣的情況在ModSecurity2.5.0及其以后的版本中被當(dāng)做配置錯(cuò)誤。

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

Embedded vs. Reverse Proxy Mode

嵌入式與反向代理模式

Modsecurity并不關(guān)心自己是否處于嵌入式或反向代理模式,反向代理模式時(shí),Apache負(fù)責(zé)向后端服務(wù)器轉(zhuǎn)發(fā)數(shù)據(jù)并接收發(fā)回來(lái)的數(shù)據(jù),所以modsecurity不用關(guān)心。只有一點(diǎn)小區(qū)別,下面我列出來(lái)供參考:

1、? 嵌入式時(shí),通常會(huì)使用一個(gè)資源(一個(gè)script腳本或者一個(gè)file文件)來(lái)滿足每一個(gè)請(qǐng)求。Modsecurity規(guī)則會(huì)檢查這些文件(SCRIPT_*允許訪問(wèn)的變量族)的屬性。反向代理模式時(shí),實(shí)際上是由后端服務(wù)器來(lái)滿足所有的請(qǐng)求。也就是說(shuō)不使用本地資源,并且相關(guān)變量的使用一點(diǎn)意義也沒(méi)有。

2、? 嵌入式時(shí),

?

?

?

?

?

?

?

Integrating with ClamAV

結(jié)合clamav

Clamav是一個(gè)開(kāi)源防病毒軟件,如果你已經(jīng)安裝了Clamav,你可以使用下面的腳本掃描modsecurity的文件。(Clam AntiVirus是一個(gè)類UNIX系統(tǒng)上使用的反病毒軟件包。主要應(yīng)用于郵件服務(wù)器,采用多線程后臺(tái)操作,可以自動(dòng)升級(jí)病毒庫(kù)。)

?

?

?

?

3 Configuration

Modsecurity已經(jīng)編譯好并且準(zhǔn)備好運(yùn)行了,現(xiàn)在我們可以對(duì)他進(jìn)行配置。這一段落以及很多分段,會(huì)講到modsecurity配置的每一部分,并明確的配置每一個(gè)小細(xì)節(jié)。

Table 3.1. Main configuration directives

Directive ?????????????????????????Description

SecArgumentSeparator ???????????????Sets the application/x-www-form-urlencoded parameter separator

SecCookieFormat ????????????????????Sets the cookie parser version(設(shè)置cookie解析器版本)

SecDataDir ??????????????????????????Sets the folder for persistent storage(設(shè)置用于持久性存儲(chǔ)的文件夾)

SecRequestBodyAccess ??????????????Controls request body buffering

SecRequestBodyInMemoryLimit?????? ??Sets the size of the per-request memory buffer

SecRequestBodyLimit ?????????????????Sets the maximum request body size ModSecurity will accept

SecRequestBodyNoFilesLimit ??????????Sets the maximum request body size, excluding uploaded files

SecResponseBodyAccess?????? ???????Controls response body buffering

SecResponseBodyLimit ???????????????Specifies the response body buffering limit

SecResponseBodyLimitAction ?????????Controls what happens once the response body limit is reached

SecResponseBodyMimeType ??????????Specifies a list of response body MIME types to inspect

SecResponseBodyMimeTypesClear ????Clears the list of response body MIME types

SecRuleEngine ??????????????????????Controls the operation of the rule engine

SecTmpDir ??????????????????????????Sets the folder for temporary files

?

Miscellaneous Options各種各樣的選項(xiàng)

這一段落的指令幾乎不會(huì)用到,但是有了他們,我們可以完全掌握modsecurity的配置選項(xiàng)。你也應(yīng)該意識(shí)到他們的存在,并在一些罕見(jiàn)的需要使用它們的時(shí)候會(huì)使用它們。

可以使用SecArgumentSeparator指令改變application/x-www-form-urlencoded編碼的參數(shù)separator。application/x-www-form-urlencoded編碼是用來(lái)傳輸所有的GET參數(shù)和大部分POST參數(shù)的。

SecArgumentSeparator &

實(shí)際上,所有的application都使用一個(gè)&來(lái)達(dá)到這個(gè)目的,但是也有一些不會(huì)。HTML4.01說(shuō)明書(shū)建議,為了方便,application支持使用分號(hào)作為separators(參考段落B.2.2URI屬性值中的&)。PHP則可以把任何字符黨組separator。

SecCookieFormat指令會(huì)從modsecurity支持的兩個(gè)cookie解析器當(dāng)中選出一個(gè)。實(shí)際上,所有的applications都使用Netscape-style cookie(有時(shí)也當(dāng)做version 0)所以,幾乎沒(méi)有理由來(lái)改變這個(gè)設(shè)置:

SecCookieFormat 0

?

?

4 Logging

這一段落詳細(xì)的講述了modsecurity的logging能力。Modsecurity所做的工作中,Logging占了大部分。

Debug Log調(diào)試日志

調(diào)試日志是你進(jìn)行疑難排解的最基本的工具,尤其是在你剛開(kāi)始學(xué)習(xí)modsecurity怎么工作的時(shí)候。

Table 4.1. Debug log directives

Directive??????? ???Description

SecDebugLog ????????Path to the debug log file

SecDebugLogLevel?? ?Debug log level

理論上調(diào)試日志有10個(gè)等級(jí),但不是全部都使用。1-3等級(jí)的消息是有意義的,并且被復(fù)制到Apache的error log中。更高等級(jí)的消息大部分是用來(lái)解決問(wèn)題和調(diào)試的。

Table 4.2. Debug log levels

Debug log level ????Description

0 ??????????????????No logging

1 ??????????????????Errors (e.g., fatal processing errors, blocked transactions)

2 ??????????????????Warnings (e.g., non-blocking rule matches)

3???????????? ??????Notices (e.g., non-fatal processing errors)

4 ??????????????????Informational

5 ??????????????????Detailed

9?????????? ????????Everything!

你會(huì)想把調(diào)試日志的等級(jí)控制的很低(當(dāng)你想把所有的消息復(fù)制到調(diào)試日志時(shí),使用等級(jí)3;或者你只想把它們放在error log中時(shí),使用等級(jí)0)。這是因?yàn)檎{(diào)試日志的消息會(huì)超過(guò)50條(每一條消息都是一條I/O操作),并且平巨額每個(gè)交互至少有7KB的數(shù)據(jù)。為每一個(gè)交互都記錄所有的消息將會(huì)消耗大量的資源。

一個(gè)簡(jiǎn)單的調(diào)試日志行是這樣的:

[18/Aug/2009:08:18:08 +0100] [192.168.3.111/sid#80f4e40][rid#81d0588][/index.html]}

[4] Initialising transaction (txid SopVsH8AAAEAAE8-NB4AAAAD)。

這一命令行以元數(shù)據(jù)開(kāi)頭,而元數(shù)據(jù)通常比消息本身還要長(zhǎng)。

?

?

?

?

?

?

?

?

?

?

?

?

?

5 Rule Language Overview規(guī)則語(yǔ)言概述

?

Operators

截止到目前,所有的例子都是假設(shè)使用正規(guī)模式對(duì)輸入進(jìn)行匹配。盡管正則表達(dá)式非常有用,我們還是經(jīng)常想做一些其他的事情。這時(shí)候就會(huì)用到運(yùn)算符。事實(shí)是modsecurity總是使用一個(gè)運(yùn)算符,而不是你在一個(gè)規(guī)則中指定一個(gè)運(yùn)算符它才使用運(yùn)算符,不指定的話,它就使用正規(guī)模式匹配。所以作為開(kāi)始,下面的規(guī)則明確指定了一個(gè)運(yùn)算符——正規(guī)模式正在匹配一個(gè)!

SecRule ARGS:username “@rx ^(admin|root)$”

上面的規(guī)則檢查請(qǐng)求用戶名是admin還是root。你也許已經(jīng)注意到了幾件事情:

運(yùn)算符以@開(kāi)頭

運(yùn)算符總是被放在第二條SecRule token開(kāi)頭(token貌似指的是引號(hào)部分)

運(yùn)算符后面有一個(gè)空格。無(wú)論運(yùn)算符后面是不是一個(gè)簡(jiǎn)單的運(yùn)算符參數(shù)。@rx運(yùn)算符的參數(shù)是一個(gè)正則表達(dá)式

當(dāng)規(guī)則中帶有明確的運(yùn)算符的時(shí)候,你需要在token周圍使用雙引號(hào),token內(nèi)部總是有一個(gè)空格。沒(méi)有雙引號(hào),Apache將會(huì)混淆。

運(yùn)算符之所以強(qiáng)大在于它提供的廣泛的功能。表5.9中列出的字符串操作符,使用最頻繁。目前你已經(jīng)看到了足夠的使用正規(guī)模式匹配的例子。除了簡(jiǎn)單的匹配運(yùn)算符(@beginsWith,@endsWith等)之外,modsecurity還提供了類似的匹配,可以立即匹配大量的模式。@pm@pmFromFile就是這么用的。

String matching operators字符串匹配運(yùn)算符

字符串匹配運(yùn)算符從輸入提取一個(gè)字符串,然后嘗試將他和提供的參數(shù)進(jìn)行匹配。@rx和@pm是經(jīng)常使用的運(yùn)算符,因?yàn)樗麄兊膙ersatility(@rx)和速度(@pm),剩下 運(yùn)算符也有用,尤其是當(dāng)你 需要不同種類的擴(kuò)展的時(shí)候,@rx和@pm都不支持。

Table 5.9. String matching operators

Operator ??????????????????Description

@beginsWith ??????????????????Begins with

@contains ?????????????????????Contains

@endsWith???????????????????? Ends with

@rx ???????????????????????????Regular pattern match(正規(guī)模式匹配)

@pm ??????????????????????????Parallel matching(平行匹配)

@pmFromFile ?(@pmf in v2.6) ??Parallel matching, with arguments from a file(與文件中的參數(shù)進(jìn)行平行匹配)

@streq ????????????????????????String equal to

@within ???????????????????????Within

Numerical operators數(shù)字運(yùn)算符

表格5.10,使比較數(shù)字值變得很簡(jiǎn)單(previously you had to resort to使用復(fù)雜的正則表達(dá)式)

Table 5.10. Numerical operators

Operator????? ?Description

@eq ???????????Equal

@ge ???????????Greater or equal

@gt ???????????Greater than

@le ???????????Less or equal

@lt ????????????Less than

Validation operators

表格5.11,all validate input in some way.,

Table 5.11. Validation operators

Operator??????????? ?Description

@validateByteRange ????Validates that parameter consists only of allowed byte values

@validateDTD ??????????Validates XML payload against a DTD

@validateSchema ??????Validates XML payload against a Schema

@validateUrlEncoding ???Validates an URL-encoded string

@validateUtf8Encoding ??Validates an UTF-8 encoded string

Miscellaneous operators

?

?

Table 5.12. Miscellaneous operators

Operator ???????Description

@geoLookup ??????Determines the physical location of an IP address

@inspectFile ??????Invokes an external script to inspect a file

@rbl ??????????????Looks parameter against a RBL (real-time block list)

@verifyCC ????????Checks if the parameter is a valid credit card number

Actions

動(dòng)作會(huì)使modsecurity精簡(jiǎn)(tick)。

?

?

Disruptive actions

表格5.13指定了規(guī)則成功匹配時(shí)將會(huì)做什么。每一條規(guī)則都必須和一個(gè)disruptive動(dòng)作結(jié)合。Pass動(dòng)作時(shí)唯一例外,當(dāng)規(guī)則匹配時(shí)他會(huì)繼續(xù)處理規(guī)則。其他所有的動(dòng)作都會(huì)以某一指定方式進(jìn)行攔截。

Table 5.13. Disruptive actions

Action ???????Description

Allow????????? ?Stop processing of one or more remaining phases(停止一個(gè)或更多的剩下階段的處理)

Block????????? ?Indicates that a rule wants to block(規(guī)則會(huì)攔截)

Deny????????? ?Block transaction with an error page(用一個(gè)錯(cuò)誤頁(yè)面攔截交互)

drop ???????????Close network connection(關(guān)閉網(wǎng)絡(luò)連接)

pass?????????? ?Do not block, go to the next rule(不攔截,繼續(xù)下一條規(guī)則)

proxy ??????????Proxy request to a backend web server(對(duì)后端服務(wù)器進(jìn)行代理請(qǐng)求)

redirect ?????????Redirect request to some other web server()

Flow actions

表格5.14中的動(dòng)作會(huì)轉(zhuǎn)變規(guī)則在一個(gè)段中處理的方式。

?

Table 5.14. Flow actions

Action ????Description

chain ??????Connect two or more rules into a single logical rule(把兩條或更多的規(guī)則在一條簡(jiǎn)單的邏輯規(guī)則里進(jìn)行連接)

skip ???????Skip over one or more rules that follow(跳過(guò)緊接下來(lái)的一條或幾條規(guī)則)

skipAfter??? Skip to the rule or marker with the provided ID(跳到指定ID號(hào)的規(guī)則或標(biāo)志)

Metadata actions

表格5.15中的metadata actions提供了規(guī)則的附加信息,把這些信息和error消息結(jié)合起來(lái)就會(huì)更容易理解他們?yōu)槭裁窗l(fā)生的。

Table 5.15. Metadata actions

Action ??Description

id ????????Assign unique ID to a rule(給規(guī)則分配單獨(dú)的ID號(hào))

phase ????Phase for a rule to run in(規(guī)則在哪一段中運(yùn)行)

msg????? ?Message string(消息字符串)

rev ???????Revision number()

severity ???Severity

tag ???????Tag

Variable actions變量動(dòng)作

5.16中的變量動(dòng)作處理變量,你可以用他們來(lái)對(duì)變量進(jìn)行設(shè)置、改變和刪除。

Table 5.16. Variable actions

Action ?????Description

capture ??????Capture results into one or more variables()

deprecatevar ?Decrease numerical variable value over time

expirevar ?????Remove variable after a time period(一個(gè)時(shí)間段之后刪除變量)

initcol???????? Create a new persistent collection(創(chuàng)建一個(gè)新的連續(xù)的集合)

setenv ???????Set or remove an environment variable(設(shè)置或刪除環(huán)境變量)

setvar ???????Set, remove, increment or decrement a variable()

setuid ???????Associate current transaction with an application user ID (username)(用應(yīng)用用戶ID、用戶名和當(dāng)前交互結(jié)合起來(lái))

setsid?????? ?Associate current transaction with an application session ID(用應(yīng)用會(huì)話ID和當(dāng)前交互結(jié)合起來(lái))

Logging actions

5.17的Logging動(dòng)作會(huì)影響日志產(chǎn)生的方式。需要使用ctl動(dòng)作來(lái)整體控制交互記錄。

Table 5.17. Logging actions

Action ???????????????Description

auditlog ?????????????????Log current transaction to audit log(把當(dāng)前交互記錄得到audit log里面)

log????????????????????? Log error message; implies auditlog(記錄錯(cuò)誤信息,implies auditlog)

logdata????????????????? Log supplied data as part of error message()

noauditlog ???????????????Do not log current transaction to audit log(不把當(dāng)前交互記錄到auditlog中)

nolog??????????????????? Do not log error message; implies noauditlog()

sanitiseArg ??????????????Remove request parameter from audit log(從auditlog中刪除請(qǐng)求參數(shù))

sanitiseMatched ??????????Remove parameter in which a match occurred from audit log(從audit log中刪除匹配參數(shù))

sanitiseRequestHeader ????Remove request header from audit log(從audit log中刪除請(qǐng)求頭)

sanitiseResponseHeader ??Remove response header from audit log(從audit log中刪除響應(yīng)頭)

Special actions

5.18的special動(dòng)作是sort的gateways,使用他們可以訪問(wèn)其他功能類。Ctl動(dòng)作有幾個(gè)自己的子動(dòng)作,它能改變交互的引擎配置,而且只能改變當(dāng)前交互的。MultiMatch規(guī)則產(chǎn)生了一種特殊的匹配方式,在每一次轉(zhuǎn)換之后,規(guī)則里的運(yùn)算符都以這種方式執(zhí)行(通常情況下,當(dāng)所有的轉(zhuǎn)換完成之后運(yùn)算符只執(zhí)行這一次)。可以使用t動(dòng)作來(lái)使用0個(gè)或更多的轉(zhuǎn)換,在運(yùn)算符執(zhí)行之前對(duì)變量進(jìn)行轉(zhuǎn)換。

Table 5.18. Special actions

Action ?????Description

ctl ???????????Change configuration of current transaction(改變當(dāng)前交互的配置)

multiMatch ???Activate multi-matching, where an operator runs after every transformation()

t ????????????Specify transformation functions to apply to variables before matching(匹配之前指定變量的轉(zhuǎn)換函數(shù))

Miscellaneous actions

Miscellaneous動(dòng)作包含了不屬于任何組的動(dòng)作。

Table 5.19. Miscellaneous actions

Action ??????Description

append ???????Append content to response body

exec ?????????Execute external script(執(zhí)行外部腳本)

pause??????? ?Pause transaction(暫停交互)

prepend ??????Prepend content to response body()

status ????????Specify response status code to use with deny and redirect(指定響應(yīng)狀態(tài)碼deny和redirect)

xmlns ????????Specify name space for use with XPath expressions(為APath表達(dá)式指定響應(yīng)空間)

?

?

?

?

6 Rule Language Tutorial規(guī)則語(yǔ)言使用指南

Introducing simple rules and operators

最簡(jiǎn)單的規(guī)則值指定一個(gè)變量和一個(gè)正則表達(dá)式。下面的例子中,檢查request URI,看看能不能和正則表達(dá)式模式<script>進(jìn)行匹配。

SecRule REQUEST_URI <script>

正是由于modsecurity允許一個(gè)規(guī)則不指定運(yùn)算符,他會(huì)假設(shè)正則表達(dá)式就是一個(gè)運(yùn)算符,這個(gè)簡(jiǎn)單的規(guī)則才能成立。

?

SecRule REQUEST_URI "@rx <script>"

注意因?yàn)榈诙€(gè)參數(shù)含有空格,必須使用雙引號(hào)。Modsecurity支持很多運(yùn)算符,有些相似,但通常會(huì)有不同的執(zhí)行特點(diǎn)。例如,上面的例子中我使用的正則表達(dá)式模式(<script>)還不足以成為一個(gè)模式。只是一個(gè)字符串而已。因?yàn)樗话魏翁厥庾址N乙材苁褂?#64;contains運(yùn)算符寫(xiě)一個(gè)同樣的規(guī)則:

SecRule REQUEST_URI "@contains <script>"

?

Working with variables

在一條規(guī)則當(dāng)中你可以指定任意多的變量,只要使用“|”字符他們分開(kāi)即可。

SecRule REQUEST_URI|REQUEST_PROTOCOL <script>

對(duì)集合這個(gè)變量來(lái)說(shuō),包含了一條以上的消息。例如ARGS變量,包含了一個(gè)交互中所有的請(qǐng)求參數(shù)。你可以使用“:”運(yùn)算符來(lái)指定集合當(dāng)中的一個(gè)成員,下面這條規(guī)則只查看名字為p的參數(shù):

SecRule ARGS:p <script>

在同一條規(guī)則當(dāng)中你可以多次使用同一個(gè)集合:

SecRule ARGS:p|ARGS:q <script>

實(shí)際上,“:”非常有效,使用正則表達(dá)式的時(shí)候,你可以使用“:”來(lái)指定名字,當(dāng)參數(shù)的名字在運(yùn)行期間會(huì)發(fā)生改變的時(shí)候,這個(gè)功能非常有用。下面這條規(guī)則會(huì)找出所有名字是以字母“p”開(kāi)頭的參數(shù),捕捉密碼或者pea這樣的參數(shù):

SecRule ARGS:/^p/ <script>

如果你沒(méi)有限制規(guī)則只能訪問(wèn)集合中的某些成員時(shí),modsecurity會(huì)認(rèn)為你會(huì)用集合的所有成員。當(dāng)你不知道一個(gè)頁(yè)面會(huì)使用什么參數(shù)的時(shí)候,使用起來(lái)會(huì)很handy。并不是所有的結(jié)合都可以這么使用(ARGS可以,但是ENV不可以)。但是。。。

例如,當(dāng)一個(gè)請(qǐng)求含有p、q、z三個(gè)參數(shù)時(shí),ARGS可以如下擴(kuò)展:

[4] Expanded "ARGS" to "ARGS:p|ARGS:q|ARGS:z".

?

下面這條規(guī)則將會(huì)檢查除z以外的參數(shù):

SecRule ARGS|!ARGS:z <script>

Combining rules into chains

一個(gè)規(guī)則中指定一個(gè)以上的變量時(shí),可以使用OR邏輯運(yùn)算符。任一個(gè)變量匹配,規(guī)則就會(huì)匹配。也可以使用邏輯AND把幾個(gè)規(guī)則組合成一個(gè)。如果你想寫(xiě)一條規(guī)則,實(shí)現(xiàn)在p和q兩個(gè)參數(shù)中發(fā)現(xiàn)一些東西,規(guī)則就匹配,你可以這樣寫(xiě):

SecRule ARGS:p <script> chain

SecRule ARGS:q <script>

這就叫rule chaining,chain這個(gè)動(dòng)作構(gòu)成了兩個(gè)或更多的規(guī)則鏈,并有效的建立了帶有一個(gè)以上的evaluation步驟的一條簡(jiǎn)單規(guī)則。鏈的第一條規(guī)則總是運(yùn)行,而對(duì)子規(guī)則來(lái)說(shuō),只有當(dāng)同一條鏈中它前面的規(guī)則都運(yùn)行完了之后他才運(yùn)行。。。

?

Operator negation否定運(yùn)算符

在運(yùn)算符前面放感嘆號(hào)“!”,就會(huì)得到否定的結(jié)果。例如:你想寫(xiě)一條規(guī)則,當(dāng)用戶名既不是admin也不是root時(shí)規(guī)則匹配(與之前的例子目的相反):

SecRule ARGS:username “!@rx ^(admin|root)$”

不要把運(yùn)算符否定和規(guī)則否定混淆。只有當(dāng)一個(gè)規(guī)則只對(duì)一個(gè)變量使用的時(shí)候兩個(gè)才是一樣的。但是如果變量多于一個(gè)的話,情況就變了:

SecRule ARGS:p|ARGS:q “!@eq 5”

上面的規(guī)則只要有一個(gè)變量不等于5就會(huì)匹配。如果你想寫(xiě)一條規(guī)則實(shí)現(xiàn)兩個(gè)變量都不等于5時(shí)才進(jìn)行匹配,你就必須使用規(guī)則鏈:

SecRule ARGS:p "!@eq 5" chain

SecRule ARGS:q "!@eq 5"

Variable counting

提問(wèn):如何檢查沒(méi)有出現(xiàn)的一些東西,比如常見(jiàn)的規(guī)則,把所有的參數(shù)放在一個(gè)請(qǐng)求中:

SecRule ARGS <script>

一個(gè)請(qǐng)求不含有任何變量時(shí),ARGS會(huì)擴(kuò)展成0個(gè)變量。如果沒(méi)有變量的話,運(yùn)算符將會(huì)運(yùn)行失敗,規(guī)則(或規(guī)則鏈)將不會(huì)匹配。

答案就是使用modsecurity的能力去計(jì)算集合中變量的個(gè)數(shù)。使用&運(yùn)算符可以查看ARGS,檢測(cè)沒(méi)有參數(shù)的情況:

SecRule &ARGS “@eq 0”

&運(yùn)算符可以應(yīng)用于任意集合,包括集合的某一部分。下面這條規(guī)則當(dāng)請(qǐng)求中含有一個(gè)以上username參數(shù)的時(shí)候?qū)?huì)匹配。

SecRule &ARGS:username "!@eq 1"

Using actions

目前這個(gè)指南中的大部分例子都沒(méi)有用動(dòng)作。剛開(kāi)始我們只關(guān)注檢測(cè)機(jī)制。實(shí)際上,連一條簡(jiǎn)單動(dòng)作都不指定的話,你是寫(xiě)不出規(guī)則的。而且,寫(xiě)?yīng)毩⒌囊?guī)則而不是讓規(guī)則依賴于默認(rèn)動(dòng)作,是一個(gè)很好的習(xí)慣。

SecRule第三個(gè)參數(shù)和SecAction第一個(gè)參數(shù)是動(dòng)作。一個(gè)規(guī)則可以沒(méi)有動(dòng)作,也可以有一個(gè)或一個(gè)以上的規(guī)則。如果有一個(gè)以上的動(dòng)作,用“,”和許多空格進(jìn)行分隔。下面這條規(guī)則指定了兩個(gè)動(dòng)作:

SecRule ARGS K1 log,deny

有些動(dòng)作帶有參數(shù),你需要在動(dòng)作和參數(shù)之間放一個(gè)“:”。使用狀態(tài)碼404拒絕,規(guī)則如下:

SecRule ARGS K1 log,deny,status:404

最后,如果提供的參數(shù)帶有空格或逗號(hào),需要用單引號(hào)把參數(shù)值括起來(lái)這種參數(shù)處理方式經(jīng)常用于消息中:

SecRule ARGS K1 “l(fā)og,deny,msg:’Acme attack detected’”

在msg動(dòng)作參數(shù)周圍使用單引號(hào)之外,我把整個(gè)指令參數(shù)用雙引號(hào)括起來(lái)了。這樣Apache才會(huì)正確解析指令行。稍后你將會(huì)看到一些動(dòng)作包含復(fù)雜的參數(shù)(如ctl和setvar),現(xiàn)在討論的語(yǔ)法同樣要應(yīng)用于他們。

?

Understanding action defaults

你已經(jīng)了解了如何指定規(guī)則動(dòng)作,但是如果你不指定的話會(huì)發(fā)生什么呢。Modsecurity有一個(gè)默認(rèn)的動(dòng)作列表。當(dāng)你在配置中添加新的規(guī)則時(shí),這條規(guī)則的動(dòng)作列表和默認(rèn)動(dòng)作列表合并。Modsecurity2.5.11中,默認(rèn)動(dòng)作類表是phase:2,log,auditlog,pass,但是你可以隨時(shí)使用SecDefaultAction指令來(lái)把它覆蓋。最簡(jiǎn)單的例子是,當(dāng)增加的規(guī)則里面沒(méi)有動(dòng)作時(shí),就會(huì)替換性的使用默認(rèn)動(dòng)作列表。一下面這條規(guī)則為例(假設(shè)配置中沒(méi)有其他的規(guī)則或默認(rèn)動(dòng)作。)

SecRule ARGS K1

相當(dāng)于:

SecRule ARGS K1 phase:2,log,auditlog,pass

通常當(dāng)一個(gè)規(guī)則有一個(gè)或一個(gè)以上的動(dòng)作時(shí),合并意味著兩件事情中的一件:

Rule action replaces an action in the default action list規(guī)則動(dòng)作代替默認(rèn)動(dòng)作列表中的一個(gè)動(dòng)作

這非常典型的發(fā)生在disruptive動(dòng)作中,一個(gè)每一條規(guī)則只能有一個(gè)disruptive動(dòng)作。如果在默認(rèn)動(dòng)作列表中和新的規(guī)則中都指定了一個(gè)disruptive動(dòng)作,那么規(guī)則中的那個(gè)將會(huì)把默認(rèn)的覆蓋掉。

Rule action is appended to the ones in the default action list規(guī)則動(dòng)作添加到默認(rèn)動(dòng)作列表中去

有些動(dòng)作會(huì)在動(dòng)作列表中出現(xiàn)不止一次。像很多non-disruptive動(dòng)作,例如:t,setvar,ctl等等。有些情況下規(guī)則動(dòng)作可以完全去除默認(rèn)動(dòng)作,但怎么做到的取決于動(dòng)作。例如轉(zhuǎn)換動(dòng)作指定none作為轉(zhuǎn)換函數(shù)(t:none)的話,就是清空列表重新開(kāi)始。

?

?

SecDefaultAction phase:2,log,deny,status:404

SecRule ARGS K1

SecRule ARGS K2

SecRule ARGS K99

?

?

SecADefaultAction phase:2,log,pass,t:lowercase

SecRule ARGS K1 t:urlDecode

?

?

#first we have some rules that only warn

SecDefaultAction phase:2,log,pass

SecRule ARGS W1

SecRule ARGS W2

SecRule ARGS W19

#Now we have some rules that block

SecDefaultAction phase:2,log,deny,status:500

SecRule ARGS B1

SecRule ARGS B89

?

?

S

?

?

?

?

139

9 Practical Rule Writing實(shí)用規(guī)則寫(xiě)作

Whitelisting白名單

通常寫(xiě)規(guī)則集是為了挑選出不尋常的請(qǐng)求,但事實(shí)是大多數(shù)網(wǎng)絡(luò)包含一個(gè)或多個(gè)請(qǐng)求源,這些請(qǐng)求源不僅是不尋常的,而且是所需要的。網(wǎng)絡(luò)越復(fù)雜,就越需要使用白名單。大多數(shù)情況下,一個(gè)粗陋的監(jiān)視腳本監(jiān)視你的網(wǎng)站,看上去更像是一個(gè)粗陋的Perl腳本攻擊你的網(wǎng)站。你可能會(huì)把安全測(cè)試外包給第三方,并且你不想你的規(guī)則干擾他們的工作。最后,即使你沒(méi)有這些問(wèn)題,你也無(wú)法避免一些不能預(yù)料的情況,Apache會(huì)給自己發(fā)送請(qǐng)求。

Whitelisting theory

?

Integration with other Apache modules與Apache其他模塊整合

Apache最大的優(yōu)點(diǎn)就是它的模塊化。大多數(shù)情況下模塊是單獨(dú)使用的,但是多功能模塊能把一個(gè)模塊與另一個(gè)模塊聯(lián)系起來(lái)。通常modsecurity避免重復(fù)實(shí)現(xiàn)一些其他模塊已經(jīng)實(shí)現(xiàn)了的功能,即使是帶有安全標(biāo)簽的功能。向其他模塊發(fā)送指令或者從其他模塊接收指令需要時(shí)間。

Apache內(nèi)部有兩個(gè)機(jī)制實(shí)現(xiàn)模塊之間的聯(lián)系:

Environment variables環(huán)境變量

通常內(nèi)部模塊使用環(huán)境變量來(lái)實(shí)現(xiàn)與其他模塊之間的信息交換或者相互影響。當(dāng)兩個(gè)模塊需要聯(lián)系時(shí),要配置接受狀態(tài)的模塊來(lái)監(jiān)聽(tīng)環(huán)境變量,并能對(duì)環(huán)境變量進(jìn)行作用。很多模塊建立之初就帶有環(huán)境變量,所以如果你發(fā)現(xiàn)一個(gè)模塊支持環(huán)境變量,那就意味著你能夠用這個(gè)環(huán)境變量通過(guò)setenv動(dòng)作和modsecurity的模塊進(jìn)行通信。因?yàn)樵趍odsecurity內(nèi)部你能夠?qū)嵱肊NV集合檢索已命名變量的值,所以你可以不受限制的使用其他模塊提供的信息來(lái)寫(xiě)規(guī)則。

Optional functions可選函數(shù)

對(duì)一個(gè)模塊來(lái)說(shuō),有了可選函數(shù),就可以輸出一個(gè)或者更多的函數(shù)供其他模塊使用。Modsecurity在可選函數(shù)頂部建立了自己的擴(kuò)展API接口。擴(kuò)展API會(huì)在第十三章,Extending Rule Language.詳細(xì)講解。

你可能感興趣的模塊包括:

?mod_deflate

? mod_headers

? mod_log_config

? mod_rewrite

? mod_setenvif

?

Conditional logging有條件的日志記錄

通常情況下,日志會(huì)把所有Apache處理過(guò)的交互都記錄下來(lái),但是有時(shí)候你只想記錄一部分交互。這就是conditional logging。你可以使用Apache的環(huán)境變量描述你想記錄哪些東西。

? 默認(rèn)記錄 ,但是如果設(shè)置了環(huán)境變量就不記錄

? 默認(rèn)不記錄,但是如果設(shè)置了環(huán)境變量就會(huì)記錄

下面的例子,創(chuàng)建了一個(gè)自定義訪問(wèn)日志,只記錄指定IP地址的交互:

# Detect the condition that require logging

SecRule REMOTE_ADDR "@streq 192.168.1.1" \

phase:1,nolog,pass,setenv:SPECIAL_ACCESS_LOG

# Create a special access log file, which reacts to

# the SPECIAL_ACCESS_LOG environment variable.

CustomLog logs/special_access.log combined env=SPECIAL_ACCESS_LOG

?

?

?

Header manipulation頭操縱

Apache用mod_headers模塊進(jìn)行頭操縱。Header和RequestHeader指令知道怎樣去檢查我前面提到的環(huán)境變量。也就是說(shuō)你可以使用Header和RequestHeader指令有條件的改變請(qǐng)求和響應(yīng)頭。像以前一樣,用modsecurity檢查條件,如果條件符合的話設(shè)置環(huán)境變量。

Mod_Header模塊是一個(gè)Apache平臺(tái)上對(duì)請(qǐng)求頭和響應(yīng)頭進(jìn)行定制的模塊,它的強(qiáng)大之處是可以和ModSecurity的SetEnv指令聯(lián)合使用,如:(張宏超)

下面的例子中使用modsecurity引導(dǎo)mod_headers刪除session(會(huì)話)cookie:

#Simulate a condition that would want us

#to force the user to use another session(模擬一下,強(qiáng)迫用戶使用另一個(gè)會(huì)話)

SecRule ARGS attackPattern “phase:2,t:none,log,pass,setenv:DISABLE_OUTBOUND_SESSION”(當(dāng)遇到攻擊attackPattern時(shí),modsecurity會(huì)給mod_headers發(fā)送環(huán)境變量)

#Expire session cookies when instructed(mod_headers接收到命令時(shí)時(shí)終止會(huì)話cookies)

Header set Set-Cookie “PHPSESSION=;expires=Fri,31-Dec-1999 00:00:00 GMT” \

Env=DISABLE_OUTBOUND_SESSION (當(dāng)mod_headers接收到環(huán)境變量DISABLE_OUTBOUND_SESSION時(shí)就會(huì)刪除會(huì)話cookie,并給用戶返回另一個(gè)會(huì)話)

這個(gè)例子簡(jiǎn)單的來(lái)說(shuō)就是當(dāng)發(fā)現(xiàn)某個(gè)人在攻擊我們的網(wǎng)站時(shí),我們就強(qiáng)制重新給他發(fā)一個(gè)session(張宏超)

(這個(gè)規(guī)則編譯時(shí)候需要有action id號(hào),并且需要在httpd配置文件中加載模塊:

LoadModule headers_module modules/mod_headers.so)

Securing session cookies保護(hù)會(huì)話cookies

在支持用戶認(rèn)證的web應(yīng)用中,會(huì)話cookie功能作為臨時(shí)口令。用戶只提供他們的身份證明一次,假設(shè)證明是正確的,將會(huì)把他們的會(huì)話作為認(rèn)證標(biāo)記。從此刻起,只要知道會(huì)話ID就可以完全控制這次會(huì)話。應(yīng)該非常小心創(chuàng)建會(huì)話cookie,以保證他們的安全。在很多應(yīng)用中,可以通過(guò)修改cookie結(jié)構(gòu)的兩個(gè)方面提高他們的安全:

Use of the httpOnly flag使用httpOnly標(biāo)志

Ie發(fā)明了httpOnly,目的是防止JavaScript訪問(wèn)會(huì)話cookies。攻擊者經(jīng)常使用JavaScript成功實(shí)現(xiàn)XSS攻擊,然后盜竊會(huì)話ID。因?yàn)橹挥蟹?wù)器編碼使用會(huì)話cookies,所以如果阻止JavaScript訪問(wèn)并不會(huì)損失什么。使用httpOnly會(huì)使會(huì)話劫持變得更困難。

Use of the secure flag使用secure標(biāo)志

如果網(wǎng)站使用SSL,攻擊者就無(wú)法訪問(wèn)在網(wǎng)站和用戶之間傳輸?shù)臄?shù)據(jù)。當(dāng)使用SSL時(shí),經(jīng)常忽略了把會(huì)話cookies標(biāo)記為secure。這種疏忽會(huì)使用戶的會(huì)話cookies陷入危險(xiǎn),使攻擊者能夠訪問(wèn)響應(yīng)的會(huì)話。

如果你使用的是Apache2.2.4或更高版本,你就能夠只使用兩條mod_headers指令就可以很快的解決上面這些問(wèn)題。下面的例子使用PHP提高了會(huì)話cookies的安全。

# Add missing httpOnly flag

Header edit Set-Cookie "(?i)^(PHPSESSID=.+(?!httponly))" "$1; httpOnly"

# Add missing secure flag

Header edit Set-Cookie "(?i)^(PHPSESSID=.+(?!secure))" "$1; secure"

通常使用Set-Cookie頭來(lái)創(chuàng)建新的cookies,所以通過(guò)查看Set-Cookie頭,就可以找出沒(méi)有設(shè)置期望標(biāo)志的會(huì)話cookies。如果找到設(shè)置錯(cuò)誤的cookie,我們會(huì)修改頭并加上標(biāo)志。例子使用了很少用但是很有用的特性:

兩個(gè)正則表達(dá)式都以(?i)開(kāi)頭,保證匹配動(dòng)作不區(qū)分大小寫(xiě)。

第二部分里面,一個(gè)negative lookahead assertion(否定先行界定符),造成只有當(dāng)界定符里面的bits沒(méi)有在頭里面出現(xiàn)時(shí)才會(huì)匹配整個(gè)模式。

第四個(gè)參數(shù)使用反響引用($1),第四個(gè)參數(shù)包含的值,會(huì)替換現(xiàn)存的Set-Cookie的值,現(xiàn)存的頭值會(huì)替換反向引用($1)。

?

Advanced Blocking高級(jí)鎖定

簡(jiǎn)單的鎖定是直截了當(dāng)?shù)摹?/p>

使用deny狀態(tài)碼和redirect(重定向)狀態(tài)碼

配置用戶響應(yīng)頁(yè)面(單獨(dú)一個(gè)單元還是應(yīng)用程序安裝的一部分?)

不能鎖定第五階段

鎖定第三和第四階段會(huì)有困難

加上可能帶有mod_deflate的版本

蜜罐鎖定(每個(gè)IP地址/段重定向)

指定了什么時(shí)候鎖定但沒(méi)指定怎么鎖定

延遲(階段)鎖定——設(shè)置一個(gè)標(biāo)志評(píng)估段中的規(guī)則。最大化的檢測(cè)。

基于分?jǐn)?shù)的鎖定(每次交互)

持續(xù)的基于分?jǐn)?shù)的鎖定(每個(gè)IP地址,段,用戶)

外部鎖定

嚴(yán)重性有什么用

可以在鎖定中使用標(biāo)記嗎

用于鎖定的名譽(yù)數(shù)據(jù)庫(kù)(rbl)

用于鎖定的GeoIP

?

Making the most of regular expressions充分使用正則表達(dá)式

盡管modsecurity支持很多操作符,正則表達(dá)式如此強(qiáng)大而且功能廣泛,因?yàn)樵谝?guī)則中經(jīng)常見(jiàn)到正則表達(dá)式。Modsecurity使用Per1兼容正則表達(dá)式庫(kù)http://www.pcre.org ,更常稱為PCRE。這是一個(gè)周所周知應(yīng)用廣泛的正則表達(dá)式庫(kù)。Apache也使用的PCRE。正則表達(dá)式強(qiáng)大的令你驚奇,你會(huì)發(fā)現(xiàn)它比你想象的能干。這個(gè)章節(jié)將會(huì)強(qiáng)調(diào)PCRE最重要的方面以及modsecurity是如何使用它的,但這也只是冰山一角。強(qiáng)烈建議你熟悉一下PCRE參考資料http://www.pcre.org/pcre.txt ,包含了你需要知道的所有東西。

How ModSecurity Compiles Patternsmodsecurity怎樣編譯模式

正則表達(dá)式需要先編譯后使用。編譯是轉(zhuǎn)化成有效的內(nèi)部表示。在configure-time,編譯步驟做盡可能多的工作來(lái)提高庫(kù)的性能,編譯標(biāo)志會(huì)影響模式的使用,你需要注意一下他們。在最重要的地方,即@rx操作符,使用正則表達(dá)式,modsecurity用了兩個(gè)編譯標(biāo)志:

?

PCRE_DOLLAR_ENDONLY

默認(rèn),一個(gè)美元通配符$將會(huì)在字符串結(jié)尾匹配換行符。用戶通常會(huì)發(fā)現(xiàn)一件不可思議的事情,規(guī)則完全控制著哪個(gè)地方允許什么東西,但是$卻把規(guī)則打亂了。通過(guò)使用PCRE_DOLLAR_ENDONLY來(lái)編譯模式,$只能在輸入的結(jié)尾進(jìn)行匹配。

?

以下是從百度文庫(kù)里搜索的:

D(PCRE_DOLLAR_ENDONLY)

如果設(shè)定了此修正符,模式中的行結(jié)束($)僅匹配目標(biāo)字符串的結(jié)尾。沒(méi)有此選項(xiàng)時(shí),如果最后一個(gè)字符是換行符的話,也會(huì)被匹配在里面。如果設(shè)定了m修正符則忽略此選項(xiàng)。

?

PCRE_DOTALL

默認(rèn),模式中的原點(diǎn)元字符匹配除了指定換行符之外的所有字符。在一個(gè)有潛在弱點(diǎn)的安全上下文中,攻擊者使用換行符打破攻擊有效載荷并阻止模式匹配。使用PCRE_DOTALL集,一個(gè)原點(diǎn)元字符會(huì)真正的匹配任何字符。

現(xiàn)在你知道了要使用哪些編譯標(biāo)志,去了解兩個(gè)不用的很重要:

PCRE_CASELESS

匹配時(shí)忽略大小寫(xiě)。

?

以下是從百度文庫(kù)里搜索的:

S(PCRE_DOTALL)

如果設(shè)定了次修正符,模式中的原點(diǎn)元字符(.)匹配所有的字符,包括換行符。沒(méi)有此設(shè)定的話,則不包括換行符。

?

?

?

Table 9.1. Pattern compilation flags

Usage ???????????????????????Compilation flags used

@rx ??????????????????????????PCRE_DOLLAR_ENDONLY, PCRE_DOTALL

@verifyCC ????????????????????PCRE_DOTALL, PCRE_MULTILINE

SecAuditLogRelevantStatus ?????PCRE_DOTALL

SecRuleRemoveByMsg ?????????No flags used

Variable selection (e.g. ARGS)? ??PCRE_CASELESS, PCRE_DOLLAR_ENDONLY, PCRE_DOTALL

Changing how patterns are compiled改變模式編譯的方式

如果你對(duì)modsecurity編譯模式的方式不滿意,但是你會(huì)對(duì)一件事情感到滿意,那就是你可以用PCRE在模式內(nèi)部可以覆蓋編譯標(biāo)志。比如下面這個(gè)例子:沒(méi)有使用任何轉(zhuǎn)換函數(shù),無(wú)論使用什么案例,它將會(huì)匹配單詞attack

SecRule ARGS “(?i)attack” phase:2,t:none

把(?i)部分放在模式開(kāi)頭,為整個(gè)模式觸發(fā)PCRE_CASELESS標(biāo)志。也可以通過(guò)在里面方修飾語(yǔ)的方法,為模式的一部分修改設(shè)置。

SecRule ARGS “attack (?i)keyword” phase:2,t:none

上面這個(gè)例子將會(huì)匹配attack keyword和attack KEYWORD,但不會(huì)匹配ATTACK keyword。如果你在次模式中使用修飾語(yǔ),只修飾余下的模式:

SecRule ARGS “(ken(?i)word) attack” phase:2,t:none

上面的例子將會(huì)匹配keyWORD attack,但不會(huì)匹配keyWORD ATTACK或者KEYWORD attack。

在字母之前使用破折號(hào)-來(lái)刪除一個(gè)標(biāo)志。下面的模式打亂了modsecurity默認(rèn)使用的PCRE_DOTALL標(biāo)志:

SecRule ARGS “(?-s)keyword” phase:2,t:none

你可以用這種方法使用的修飾符的完整列表在表9.2,你可以查閱PCRE參考文件查找他們完整的意思。

Table 9.2. Pattern modifiers

Modifier ???Meaning

i ????????????PCRE_CASELESS

J ???????????PCRE_DUPNAMES

m ???????????PCRE_MULTILINE

s??????????? ?PCRE_DOTALL

U ???????????PCRE_UNGREEDY

x ???????????PCRE_EXTENDED

X?????????? ?PCRE_EXTRA

Common pattern problems常見(jiàn)模式問(wèn)題

正則表達(dá)式出錯(cuò)很常見(jiàn),但是有兩個(gè)更加常見(jiàn):

Forgetting to escape the dot metacharacter ???????忘記忽視元字符點(diǎn).

很容易遺忘一件事情,那就是點(diǎn).是一個(gè)需要被忽視的元字符。因?yàn)镮P地址里面有很多點(diǎn),所以當(dāng)你寫(xiě)一個(gè)模式來(lái)匹配IP地址的時(shí)候,經(jīng)常發(fā)生這種事情。如果沒(méi)有忽視點(diǎn),點(diǎn)將會(huì)匹配任意一個(gè)字符,和非元字符進(jìn)行匹配。

Not using the ^ and $ anchors when matching entire input當(dāng)要匹配整個(gè)輸入的時(shí)候沒(méi)有使用^和$錨

當(dāng)你要匹配整個(gè)輸入的時(shí)候,需要使用^和$。者能夠保證,不管你寫(xiě)的是什么模式,都能夠進(jìn)行全部匹配。如果你忘記了使用^,攻擊者就是在你的模式之前發(fā)送任意內(nèi)容,如果是忘記了使用$,攻擊者就會(huì)在你的模式之后發(fā)送任意內(nèi)容。如果沒(méi)有錨,模式將會(huì)匹配中間的子字符串,而忽略其他任何東西。

?

Regular Expression Denial of Service正則表達(dá)式拒絕服務(wù)攻擊

正則表達(dá)式拒絕服務(wù)攻擊(又稱ReDoS)是一個(gè)比較令人費(fèi)解的問(wèn)題,它能影響每一個(gè)正則表達(dá)式寫(xiě)手。一些正則表達(dá)式結(jié)構(gòu)當(dāng)遇到邊界案例的時(shí)候性能變得很差(指數(shù)級(jí)的)。你一不小心會(huì)寫(xiě)出一個(gè)會(huì)被暗中操縱的模式,攻擊者從外面消耗你大部分服務(wù)器資源。

下面是從Alex’s和Adar’s借用的一些變量模式的例子:

(a+)+

([a-zA-Z]+)*

(a|aa)+

(a|a?)+

(.*a){x},for x>10

?

Resources

當(dāng)和正則表達(dá)式一起工作的時(shí)候會(huì)變得不知所措時(shí),不要緊張。完全正常并且會(huì)得到及時(shí)解決。想要精通正則表達(dá)式?jīng)]必要買書(shū),但是如果買的話肯定會(huì)有幫助的。關(guān)于書(shū)我只關(guān)注一點(diǎn),就是他們都能涵蓋大部分正則表達(dá)式特性,而且我唯一感興趣的是PCRE。你至少應(yīng)該看兩本書(shū):

Mastering Regular Expressions。作者:JeffreyFriedl(O’Reilly,2006),普遍認(rèn)為是正則表達(dá)式的經(jīng)典著作。

Regular Expressions Cookbook,作者:Goyvaerts和Steven Levithan(O’Reilly,2009),是正則表達(dá)式最近增加的版本,更適合實(shí)踐學(xué)習(xí)。

?

?

?

?

?

?

?

Part II: Reference Documentation

14 Reference Manual

Configuration Directives配置指令:

下面一節(jié)概述了modsecurity所有的指令。大部分的modsecurity指令能被用于Apache內(nèi),例如虛擬主機(jī),地址,地址匹配,目錄等等,當(dāng)然還有其他,但是,如果在主配置文件里只能使用一次,這個(gè)在下面的章節(jié)會(huì)詳細(xì)介紹。

這些規(guī)則,和和新規(guī)則庫(kù),應(yīng)該放在httpd.conf文件外面,然后用include指令包含進(jìn)來(lái),這樣有利于更新或整合規(guī)則。如果你想自己定義一個(gè)規(guī)則,那么你應(yīng)該創(chuàng)建一個(gè)文件命名為modsecurity_crs_15_customrules.conf然后放在核心規(guī)則所在文件夾,這樣,你的自定義規(guī)則將在ModSecurity標(biāo)準(zhǔn)的核心規(guī)則庫(kù)后調(diào)用,但在其他核心規(guī)則前調(diào)用,這是很有用的,如果你的站用了”allow”指令它可以檢查核心規(guī)則是否誤報(bào)。

?

注意

建議不要修改核心規(guī)則文件,除非你把它放在你自己的規(guī)則庫(kù)里,這樣當(dāng)你從ModSecurity更新時(shí)會(huì)方便些。

?

SecAction action1,action2,action3

無(wú)條件執(zhí)行動(dòng)作清單,它只接受第一個(gè)也是唯一的一個(gè)參數(shù),其這個(gè)參數(shù)的使用規(guī)則與SecRule的第三個(gè)參數(shù)的使用規(guī)則相同,SecAction是你想無(wú)條件執(zhí)行一個(gè)動(dòng)作時(shí)的最好選擇,這個(gè)指令不受任何交互條件的限制,SecRule指定了一些動(dòng)作,而這些動(dòng)作的發(fā)生是基于請(qǐng)求/響應(yīng)對(duì)數(shù)據(jù)的檢查,當(dāng)你想執(zhí)行initcol動(dòng)作時(shí),這個(gè)指令通常被用來(lái)初始化持久化集合類。例如:

SecAction nolog,phase:1,initcol:RESOURCE=%{REQUEST_FILENAME}

?

SecArgumentSeparator character

SecArgumentSeparator ;

指定的字符作為application/x-www-form-urlencoded內(nèi)容的分隔符,默認(rèn)是&,非常少的情況下應(yīng)用會(huì)使用分號(hào)(;)。這個(gè)指令用于后臺(tái)WEB應(yīng)用在使用非標(biāo)準(zhǔn)的參數(shù)分隔符,如果沒(méi)有在每一個(gè)WEB應(yīng)用中合理設(shè)置這個(gè)指令,那么ModSecurity可能無(wú)法適當(dāng)?shù)姆治鏊械膮?shù),并且規(guī)則匹配的效果可能會(huì)顯著的降低。

SecAuditEngine On|Off|RelevantOnly

配置審計(jì)日志引擎的開(kāi)啟與否,On-默認(rèn)情況下記錄所有事務(wù)的日志,Off-默認(rèn)情況下不記錄所有事務(wù)的日志,RelevantOnly-默認(rèn)只記錄事務(wù)中由warning或error觸發(fā)的日志,或者記錄一些特意考慮過(guò)的狀態(tài)碼

在當(dāng)前事務(wù)可以通過(guò)ctl操作進(jìn)行設(shè)置或修改

以下例子說(shuō)明不同的審計(jì)指令一起使用:

SecAuditEngine RelevantOnly

SecAuditLog logs/audit/audit.log

SecAuditLogParts ABCFHZ

SecAuditLogType concurrent

SecAuditLogStorageDir logs/audit

SecAuditLogRelevantStatus ^(?:5|4\d[^4])

?

SecAuditLog /path/to/auditlog

SecAuditLog /usr/local/apache/logs/audit.log

定義審計(jì)日志文件路徑,伴隨服務(wù)器運(yùn)行開(kāi)始,這個(gè)文件會(huì)以root打開(kāi),你不能為非root權(quán)限的用戶對(duì)這個(gè)文件或存儲(chǔ)這個(gè)文件的目錄有可寫(xiě)權(quán)限。如果串行審計(jì)日志格式使用后,這個(gè)文件將被用作審計(jì)日志條目的存儲(chǔ)。如果同時(shí)審計(jì)日志格式使用這個(gè)文件那就被當(dāng)做索引,并包含所有的審計(jì)日志文件創(chuàng)建信息。如果你計(jì)劃使用同時(shí)審計(jì)日志并發(fā)送審計(jì)日志數(shù)據(jù)到遠(yuǎn)程主機(jī)或商業(yè)ModSecurity管理平臺(tái),那么你需要配置和使用ModSecurity日志搜集器(mlogc)并使用下述格式去得到審計(jì)日志:

SecAuditLog “|/path/to/mlogc/path/to/mlogc.conf”

?

SecAuditLog2 /path/to/auditlog2

SecAuditLog2 /usr/local/apache/logs/audit2.log

定義同時(shí)日志啟用下的第二審計(jì)日志索引文件路徑,在本指令使用之前必須通過(guò)SecAuditLog定義主審計(jì)日志,另外這個(gè)文件僅用于當(dāng)同時(shí)審計(jì)日志使用時(shí)復(fù)制主審計(jì)索引文件,不能用于非同時(shí)審計(jì)日志的情況。

?

SecAuditLogParts PARTS

SecAuditLogParts ABCFHZ(默認(rèn))

定義每個(gè)事務(wù)中記錄到審計(jì)日志中的部分。每部分以一個(gè)獨(dú)立的字母表示,當(dāng)每個(gè)字母出現(xiàn)在列表中,也就是指每個(gè)事務(wù)中的相同部分會(huì)被記錄,全部列表見(jiàn)下文:

A-????? 審計(jì)日志標(biāo)題(強(qiáng)制的)

B-????? 請(qǐng)求標(biāo)題

C-????? 請(qǐng)求體(目前只針對(duì)請(qǐng)求體存在,并且ModSecurity已經(jīng)配置成攔截)

D-????? 為中間人響應(yīng)頭保留,暫未實(shí)現(xiàn)

E-?????? 中間人相應(yīng)題(目前僅對(duì)配置了攔截響應(yīng)體和配置審計(jì)日志引擎記錄有效)。中間人相應(yīng)體和實(shí)際的相應(yīng)體相同,除非ModSecurity攔截了中間人響應(yīng)體,這種情況下,實(shí)際相應(yīng)體會(huì)包含出錯(cuò)信息(可能是apache的默認(rèn)錯(cuò)誤信息,也可能是出錯(cuò)文檔頁(yè)面)。

F-?????? 最終響應(yīng)頭(除了日期和服務(wù)器標(biāo)題以外的被apache添加的盡其內(nèi)容傳遞信息)。

G-????? 為實(shí)際響應(yīng)體保留,暫未實(shí)現(xiàn)

H-????? 審計(jì)日志索引

I-??????? C部分的替換,使用multipart/form-data編碼時(shí),在所有的異常情形下記錄與C相同的數(shù)據(jù),在這種情況下,會(huì)記錄假的application/x-www-form-urlencoded內(nèi)容,這包含參數(shù)的相關(guān)信息,但不是這個(gè)文件的。如果你不想用文件(通常很大)來(lái)存儲(chǔ)你的審計(jì)日志,這是很方便的。

J-??????? 保留。實(shí)現(xiàn)后,這部分會(huì)包含文件使用multipart/form-data編碼上傳的信息。、

K-?????? 這部分包含一個(gè)完整的列表,按順序匹配(每行一個(gè)),這些規(guī)則是完全合格的,從而表明繼承默認(rèn)的動(dòng)作和操作,從2.5.0開(kāi)始支持。

Z-最終分界,意味著是條目的最后(強(qiáng)制的)

?

SecAuditLogRelevantStatus REGEX

SecAuditLogRelevantStatus ^(?:5|4\d[^4])

配置哪些響應(yīng)狀態(tài)碼與審計(jì)日志的目的密切相關(guān),必須將SecAuditEngine設(shè)置為RelevantOnly,其參數(shù)是個(gè)正則表達(dá)式。

這個(gè)指令最主要的目的是允許你配置審計(jì)產(chǎn)生特殊HTTP響應(yīng)狀態(tài)碼的唯一事務(wù),這個(gè)指令通常用于減少審計(jì)日志文件的總體大小。記住一點(diǎn),如果使用了這個(gè)參數(shù),那么返回狀態(tài)碼是200的成功攻擊事件不會(huì)記錄。

?

SecAuditStorageDir /path/to/storage/dir

SecAuditStorageDir /usr/local/apache/logs/audit

配置同時(shí)審計(jì)日志條目存儲(chǔ)時(shí)的路徑,必須同時(shí)設(shè)置SecAuditLogType,啟動(dòng)apache潛,需要先創(chuàng)建目錄,而且必須讓服務(wù)器用戶運(yùn)行時(shí)可以新建文件。

盡管有了記錄日志的機(jī)制,還需要確保指定的本地文件系統(tǒng)上有足夠的磁盤(pán)空間,并且不是在根分區(qū)上。

?

SecAuditLogType Serial|Concurrent

配置使用審計(jì)日志記錄機(jī)制的類型,如果使用Concurrent類型必須指定SecAuditLogStorageDir

Serial-所有的審計(jì)日志條目都被存儲(chǔ)在主審計(jì)日志記錄文件中,隨意使用是很方便,但是他很慢,因?yàn)槿魏螘r(shí)候只有一個(gè)文件被打開(kāi)也只能寫(xiě)入一條審計(jì)日志條目。

Concurrent-審計(jì)日志條目被存儲(chǔ)于不同的文件中,每個(gè)事務(wù)一個(gè),如果你要把審計(jì)日志數(shù)據(jù)發(fā)送到遠(yuǎn)程ModSecurity控制主機(jī)上就是用Concurrent日志模式。

?

SecCacheTransformations(Deprecated/Experimental)

SecCacheTransformations On|Off [options]

SecCacheTransformations On “minlen:64,maxlen:0”

控制transformations的緩存,2.5.6開(kāi)始,緩存是默認(rèn)關(guān)閉的,當(dāng)時(shí)都不贊成開(kāi)啟并降低為實(shí)驗(yàn)性。

On-緩存變化(每階段,每次變化)允許相同的變化只執(zhí)行一次(默認(rèn)的)

Off-不緩存任務(wù)變化,強(qiáng)制所有的變化都被每一條規(guī)則實(shí)行生效

有以下可選項(xiàng)(逗號(hào)分隔):

Incremental:on|off-啟用這個(gè)選項(xiàng)后,緩存每一個(gè)變化,而不只是最后一個(gè)變化(默認(rèn):off)

Maxitems:N-緩存N個(gè)以內(nèi)的變化,超過(guò)時(shí)不再緩存,為0時(shí)表示unlimited,對(duì)于限制緩存一個(gè)使用大數(shù)字的ARGS表單這個(gè)選項(xiàng)是有用的(默認(rèn)512)

Minlen:N-緩存變化的值的最小長(zhǎng)度(默認(rèn)32)

Maxlen:N-緩存變化的值的最大長(zhǎng)度,為0時(shí)表示unlimited(默認(rèn):1024)

?

SeChrootDir /path/to/chroot/dirm

配置web服務(wù)器工作的安全目錄

這個(gè)功能在Windows系統(tǒng)版本上不可用,ModSecurity提供的內(nèi)部chroot功能在簡(jiǎn)單配置上工作的很好,舉個(gè)最簡(jiǎn)單例子,apache只提供靜態(tài)頁(yè)面服務(wù)或使用模塊提供腳本運(yùn)行功能。在一些復(fù)雜設(shè)置時(shí)你會(huì)遇到一些問(wèn)題:

1、? DNS查詢無(wú)法工作(這是因?yàn)檫@一功能在chroot操作后,一經(jīng)查詢就要求加載一個(gè)共享庫(kù))

2、? 你不能使用PHP發(fā)送郵件,因?yàn)镻HP使用sendmail但sendmail在安全目錄之外

3、? 某些情況下apache會(huì)莫名其妙的不干活了(重載)

你需要小心,這個(gè)內(nèi)部chroot功能可能不是100%可用。由于大量默認(rèn)的或是第三方為apache web服務(wù)器提供的模塊,他們不可能去校驗(yàn)在內(nèi)部chroot下是否可用,在沒(méi)有被限制在安全目錄中時(shí),一個(gè)apache的模塊,工作的很正常。特別是如果你正使用的模塊在模塊初始化階段進(jìn)行fork的(如mod_fastcgi,mod_fcgid,mod_cgid),建議你測(cè)試每個(gè)apache進(jìn)行和觀察其工作目錄,進(jìn)程根目錄,以及所打開(kāi)的文件列表。考慮一下你的選擇,在作出決定。

?

SecComponentSignature “COMPONENT_NAME/X.Y.Z(COMMENT)”

SecComponentSignature “Core Rules/1.2.3”

擴(kuò)展組件簽名為modsecurity簽名,這個(gè)指令可以讓ModSecurity增加很多有意義的已知組件,完整的簽名被記錄在事務(wù)審計(jì)記錄中,應(yīng)該讓ModSecurity模塊和規(guī)則集作家使用,使調(diào)試更加容易。

?

SecContentInjection (on|off)

啟用內(nèi)容注入使用行為附加并加在前面

SecCookieFormat 0|1

選擇當(dāng)前配置文本中使用的cookie格式

0-?????? 使用version 0(Netscape)cookies,這是大部分應(yīng)用使用的,也是默認(rèn)值

1-?????? 使用version 1 cookies

?

SecDataDir /path/to/dir

SecDataDir /usr/local/apache/logs/data

指定連續(xù)數(shù)據(jù)(如ip地址數(shù)據(jù),session數(shù)據(jù)等)存儲(chǔ)的路徑,initcol、setsid和setuid需要用到這個(gè)指令,必須讓服務(wù)器用戶對(duì)這個(gè)目錄可寫(xiě)

?

SecdDebugLog /path/to/modsec-debug.log

SecDebugLog /usr/local/apache/logs/modsec-debug.log

指定modsecurity調(diào)試日志文件的路徑

Secdebugloglevel 0|1|2|3|4|5|6|7|8|9

配置冗長(zhǎng)的調(diào)試日志數(shù)據(jù),1~3級(jí)別一直用于產(chǎn)生apache的錯(cuò)誤日志,因?yàn)槟憧梢栽诋a(chǎn)品中一直使用0級(jí)別作為默認(rèn)的日志級(jí)別,級(jí)別5用于調(diào)試,不建議在產(chǎn)品中使用這么高級(jí)別的日志,過(guò)度的日志記錄會(huì)顯著服務(wù)器的性能。

可用的值如下:

0-不記錄,1-僅僅錯(cuò)誤日志(攔截請(qǐng)求),2-警告,3-注意,4-事務(wù)控制的細(xì)節(jié),5-同上,但包含每一個(gè)信息控制的信息,9-記錄所有,包括每一個(gè)調(diào)試細(xì)節(jié)信息

?

SecDefaultAction action1,action2,action3

定義匹配規(guī)則后的默認(rèn)動(dòng)作,例:

SecDefaultAction log,auditlog,deny,status:403,phase:2

備注:SecDefaultAction指令后的規(guī)則都繼承這一設(shè)置,除非為某條規(guī)則制定了一個(gè)特定的動(dòng)作,或者制定了新的 SecDefaultAction。特別注意到,未經(jīng)處理的disruptive動(dòng)作時(shí)不允許的,但是在SecDefaultAction中一不小心就會(huì)繼承了使用disruptive動(dòng)作。

默認(rèn)值是minimal

SecDefaultAction phase:2,log,auditlog,pass

注意:SecDefaultAction必須指定一個(gè)disruptive動(dòng)作和處理階段,而且不能包含元數(shù)據(jù)動(dòng)作。

警告:SecDefaultAction不集成交叉配置的內(nèi)容。

?

SecGeoLookupDb /path/to/db

定義地理數(shù)據(jù)文件路徑,例:

SecGeoLookupDb /usr/local/geo/data/GeoLiteCity.dat? 從maxmind.com提取的免費(fèi)數(shù)據(jù)文件

?

SecGuardianLog |/path/to/httpd-guardian

配置使用httpd-guardian腳本來(lái)監(jiān)視拒絕服務(wù)攻擊(DoS)的指令,例:

SecGuardianLog |/usr/local/apache/bin/httpd-guardian? 使用默認(rèn)的httpd-guardian可以防止客戶端在1分鐘內(nèi)請(qǐng)求120次或5分鐘內(nèi)請(qǐng)求360次。

SecGuardianLog,設(shè)計(jì)此指令用于把所有允許數(shù)據(jù)通過(guò)管理日志功能發(fā)送到另一個(gè)程序。自從apache部署成典型的多進(jìn)程方式,信息共享變得困難了,這一想法就是部署一個(gè)獨(dú)立的外部進(jìn)行使用狀態(tài)機(jī)的方式去觀察所有的請(qǐng)求,提供額外的保護(hù)。

隨著ModSecurity發(fā)布,開(kāi)發(fā)一個(gè)先進(jìn)的外部保護(hù)工具將是一個(gè)重點(diǎn)。然而一個(gè)完整功能的工具已經(jīng)可以做為apache httpd工具項(xiàng)目的一部分,工具名為httpd-guardian,它能用于防御DoS,使用黑名單列表(同一個(gè)項(xiàng)目中)和基于iptables(linux)或者基于pf(*BSD)的防火墻協(xié)同工作,動(dòng)態(tài)的過(guò)濾黑名單中的惡意ip地址。也可以和SnortSam協(xié)同工作。如果已經(jīng)配置過(guò)httpd-guardian,你只需要在apache配置中添加一行就可以部署他:

SecGuardianLog |/path/to/httpd-guardian

?

Secmarker ID

Secmarker 9999

在規(guī)則集中增加一個(gè)固定規(guī)則marker,可用于skipAfter動(dòng)作。Secmarker指令本質(zhì)上是創(chuàng)建了一條規(guī)則,這條規(guī)則什么也不做,其目的只是占用一個(gè)ID號(hào)

SecRule REQUEST_URI “^/$” \

“chain,t:none,t:urlDecode,t:lowercase,t:normalisePath,skipAfter:99”

SecRule REMOTE_ADDR “^127\.0\.0\.1$” “chain”

SecRule REQUEST_HEADERS:User-Agent \

? “^Apache \(internal dummy connection\)$” “t:none”

SecRule &REQUEST_HEADERS:Host “@eq 0” \

? “deny,log,status:400,id:08,severity:4,msg:’Missing a Host Header’”

SecRule &REQUEST_HEADERS:Accept “@eq 0” \

? “l(fā)og,deny,log,status:400,id:15,msg:’Request Missing an Accept Header’”

SecMarker 99

?

SecPcreMatchLimit

?

SecPdfProtect On|Off

啟用PDF XSS保護(hù)功能,一量啟用訪問(wèn)PDF文件的跟蹤,直接訪問(wèn)嘗試被轉(zhuǎn)到包含一次性令牌的鏈接,只有提供有效令牌的請(qǐng)被無(wú)條件允許,無(wú)效令牌的請(qǐng)求也被允許,但被強(qiáng)制下載PDF文件。本實(shí)現(xiàn)用響應(yīng)頭去檢測(cè)PDF文件,因此可以對(duì)一些URI請(qǐng)求中不含有.pdf擴(kuò)展名卻能動(dòng)態(tài)生成PDF文件。

?

SecPdfProtectMethod method

SecPdfProtectMethod TokenRedirection(默認(rèn))

配置理想的保護(hù)方法用于請(qǐng)求的PDF文件進(jìn)行保護(hù)。可有的選項(xiàng)有TokenRedirection和ForcedDownload。令牌重定向方式會(huì)嘗試轉(zhuǎn)到可有的令牌上,這允許PDF文件仍舊能使用內(nèi)聯(lián)方式打開(kāi),但僅用于GET請(qǐng)求方式。強(qiáng)制下載總是導(dǎo)致PDF文件使用二進(jìn)制或附件方式傳遞,后者常用于非GET請(qǐng)求,強(qiáng)制下載方式被認(rèn)為更安全,但對(duì)用戶來(lái)說(shuō)可能會(huì)導(dǎo)致可用性問(wèn)題(“這個(gè)PDF無(wú)法再打開(kāi)了”)。

?

SecPdfProtectSecret secret

secPdfProtectSecret MyRandomSecretString

定義用戶產(chǎn)生一次性令牌的密鑰,你應(yīng)該設(shè)置一個(gè)足夠長(zhǎng)的串作為密鑰(16字符較好),一旦定下密鑰,最好不要修改,可能會(huì)破壞修改前發(fā)出的令牌。但即使你修改了也不是大問(wèn)題,導(dǎo)致過(guò)去的幾秒鐘變成使用令牌強(qiáng)制下載PDF文件。

?

SecPdfProtectTimeout timeout

SecPdfProtectTimeout 10(默認(rèn))

定義令牌超時(shí),令牌過(guò)期后,不能再用于允許訪問(wèn)PDF文件,請(qǐng)求仍舊被允許,但PDF文件會(huì)以附件方式傳送。

?

SecPdfProtectTokenName name

SecPdfProtectTokenName PDFTOKEN(默認(rèn))

定義令牌名,你想改變令牌的名字的唯一原因應(yīng)是你想隱藏你正使用ModSecurity這一事實(shí),這是一個(gè)好的理由,但這并不是提供幫助,因?yàn)閿橙四苷业奖Wo(hù)PDF的算法并能計(jì)算出來(lái),這樹(shù)立了新的標(biāo)志,所以如果你想就去試吧。

?

SecRequestBodyAccess On|Off

ModSecurity是否默認(rèn)緩存并處理請(qǐng)求體,On-訪問(wèn)請(qǐng)求體,Off-不訪問(wèn)請(qǐng)求體。

注意:當(dāng)你想檢查POST_PAYLOAD時(shí)使用這個(gè)命令,這個(gè)指令必須和“phase:2”和REQUEST_BODY一起使用,這三部分任一一個(gè)沒(méi)有配置,你就無(wú)法檢查請(qǐng)求體。

?

SecRequestBodyLimit NUMBER_IN_BYTES

SecRequestBodyLimit 134217728

配置ModSecurity允許的最大請(qǐng)求體的緩存區(qū)大小,默認(rèn)值是131072KB(134217728bytes)。任何超過(guò)此限制的都會(huì)被拒絕,提示413,請(qǐng)求體太大。還有一個(gè)應(yīng)限制,1GB。

?

SecRequestBodyNoFilesLimit NUMBER_IN_BYTES

配置ModSecurity允許的最大請(qǐng)求體的緩存區(qū)大小,除了請(qǐng)求中正在傳送的文件大小。這項(xiàng)指令便于在受到某些使用大尺寸請(qǐng)求進(jìn)行DoS攻擊時(shí)減少影響。提供上傳文件服務(wù)的WEB應(yīng)用必須配置SecRequestBodyLimit為一個(gè)很大的值。由于大文件直接進(jìn)行磁盤(pán)文件存取,不會(huì)加大內(nèi)存的消耗。但是,仍然有可能有人利用超大請(qǐng)求體限制和發(fā)送大量大小的非上傳請(qǐng)求。該指令消除這一漏洞。

SecRequestBodyLImit 131072

備注:默認(rèn)為1MB(1048576 bytes)。這個(gè)值比較古老了,大部分應(yīng)用應(yīng)該到128KB或者更低,任何超過(guò)此限制的都會(huì)被拒絕,提示413,請(qǐng)求體太大。還有一個(gè)應(yīng)限制,1GB

?

SecRequestBodyInMemoryLimit NUMBER_IN_BYTES

SecRequestBodyInMemoryLimit 131072

配置ModSecurity使用內(nèi)存保存的最大請(qǐng)求體大小,默認(rèn)的限制是128KB,在內(nèi)存中最多存儲(chǔ)128KB。

?

SecResponseBodyLimit NUMBER_IN_BYTES

SecResponseBodyLimit 524228

配置允許緩存的最大相應(yīng)體大小,任何超過(guò)此限制的響應(yīng)都會(huì)被拒絕,并出現(xiàn)狀態(tài)碼:500:內(nèi)部服務(wù)器錯(cuò)誤。這一設(shè)置不影響使用MIME類型的響應(yīng),緩存不為此做標(biāo)記(因?yàn)檫@個(gè)類型標(biāo)記為非緩存),有一個(gè)硬編碼為1GB。

默認(rèn)配置成512KB

?

SecResponseBodyLimitAction Reject|ProcessPartial

Reject 響應(yīng)體將被丟棄,傳輸中斷,返回狀態(tài)碼:500(內(nèi)部服務(wù)器錯(cuò)誤)

ProcessPartial 只檢測(cè)緩存中的響應(yīng),剩下的允許通過(guò)

配置SecResponseBodyLimit控制碰到響應(yīng)體限制的情況,默認(rèn)時(shí)ModSecurity拒絕超過(guò)指定長(zhǎng)度的響應(yīng)體,然而一些WEB站點(diǎn),因?yàn)橛休^大的響應(yīng)體,所以要指定一個(gè)合理的限制很困難。這類網(wǎng)站不得不提升限制,來(lái)達(dá)到控制首位限制的目的(控制內(nèi)存消耗)。當(dāng)達(dá)到一個(gè)限制,網(wǎng)站管理員有能力選擇只檢查響應(yīng)的第一部分,這部分在限制的范圍內(nèi),剩下的允許通過(guò)。有些爭(zhēng)辯說(shuō),響應(yīng)的一部分未經(jīng)檢查,就允許通過(guò),是個(gè)漏洞,理論上這是對(duì)的,但僅適用于攻擊者控制輸出的情況(如可以使輸出任意長(zhǎng))。在這種情況下,防止漏洞是不可能的。攻擊者在數(shù)據(jù)發(fā)送回來(lái)之前可以壓縮,打亂或者加密數(shù)據(jù),使數(shù)據(jù)可以穿越任意監(jiān)控設(shè)備。

?

SecResponseBodyMImeType mime/type

SecResponseBodyMImeType text/plain text/html

為響應(yīng)數(shù)據(jù)緩存配置推薦的MIME類型。可以使用多個(gè)SecResponseBodyMimeType指令來(lái)增加MIME類型。默認(rèn)值是text/plain text/html

?

SecResponseBodyMimeTypesClear

清除推薦的響應(yīng)體緩存MIME類型,允許你重新開(kāi)始配置。

?

SecResponseBodyAccess On|Off

配置響應(yīng)體是否被緩存并被分析。如果你計(jì)劃?rùn)z查HTML的響應(yīng),需要使用這個(gè)指令。;這個(gè)指令必須和”P(pán)hase:4”處理階段動(dòng)作和REQUEST_BODY變量/位置一起使用,這三部分任意一個(gè)沒(méi)有配置,你就無(wú)法檢查請(qǐng)求體。可選值如下:

On-訪問(wèn)響應(yīng)體(僅支持使用MIME類型)

Off-不嘗試訪問(wèn)響應(yīng)體

?

SecRule VARIABLES OPERATOR [ACTIONS]

SecRule是ModSecurity主要的指令,用于分析數(shù)據(jù),并根據(jù)結(jié)果執(zhí)行動(dòng)作。

例子:SecRule REQUEST_URI ”attack” \

”phase:1,t:none,t:urlDecode,t:lowercase,t:normalisePath”

?

OPERATOR描述如何進(jìn)行檢查

ACTIONS描述當(dāng)一個(gè)操作符成功匹配一個(gè)變量時(shí)將執(zhí)行怎樣一個(gè)動(dòng)作。

VARIABLES描述哪些變量被檢查,舉個(gè)例子,下述規(guī)則則是當(dāng)?shù)刂窓诶镉小癲irty”這個(gè)單詞時(shí)會(huì)拒絕交互。

SecRule ARGS dirty

?

每條規(guī)則可以指定一個(gè)或多個(gè)變量:

SecRule ARGS|REQUEST_HEADERS:User-Agent dirty

還有第三種格式的選擇符 –Xpath表達(dá)式的支持。Xpath表達(dá)式只能用來(lái)對(duì)付特殊的XML變量,只有請(qǐng)求體使用XML格式時(shí)可用:

SecRule XML:/xPath/Expression dirty

注意:不是所有的集合都支持所有的操作符格式,你需要查閱各個(gè)集合的文檔檢查是否支持。

?

集合Collections

一個(gè)變量可以包含一個(gè)或多個(gè)數(shù)據(jù)塊,這取決于該變量的性質(zhì)和它的使用方式。當(dāng)一個(gè)變量包含一個(gè)以上的值,我們稱它為一個(gè)集合。

集合在規(guī)則運(yùn)行前都是可以擴(kuò)展的。如:

SecRule ARGS dirty

可以進(jìn)行如下擴(kuò)展:

SecRule ARGS:p dirty

SecRule ARGS:q dirty

在一個(gè)請(qǐng)求中只有兩個(gè)參數(shù),分別為p和q。

集合有幾種特性:

只讀:

在運(yùn)行時(shí)用交互數(shù)據(jù)創(chuàng)建,如ARGS(包含所有請(qǐng)求參數(shù)值列表)和REQUEST_HEADERS(包含所有請(qǐng)求頭值的列表)。

瞬態(tài)讀/寫(xiě):

每個(gè)交互都創(chuàng)建一個(gè)空的TX集合,規(guī)則可以從中讀取并且可以寫(xiě)入(如使用setvar動(dòng)作),但在此集合中存儲(chǔ)的信息并不持續(xù)至交互結(jié)束。

連續(xù)的讀/寫(xiě):

有幾個(gè)集合能被寫(xiě)入并且持久存儲(chǔ)。這些集合可在交互中跟蹤客戶,例如IP、SESSION和USER等類型的集合。

規(guī)則里的操作符:

最簡(jiǎn)單的請(qǐng)況是用一個(gè)正則表達(dá)式作為規(guī)則的第二個(gè)參數(shù),我們已經(jīng)在上面舉過(guò)這樣的例子,如果你這樣做,ModSecurity就假定你要使用rx(正則表達(dá)式)操作符,你也可以很明確的通過(guò)使用@來(lái)指定你想要的操作符,緊跟@之后的是操作符的名字,在規(guī)則第二個(gè)參數(shù)的開(kāi)頭。例如:

SecRule ARGS “@rx dirty”

注意我們?yōu)槭裁幢仨毷褂秒p引號(hào)把第二個(gè)規(guī)則參數(shù)括起來(lái)呢,這是因?yàn)榈诙€(gè)參數(shù)里面包含空格。一些帶空格字符和數(shù)字會(huì)跟在操作符名字后面,如果出現(xiàn)非空格的字符,他們將被視為一個(gè)特殊的參數(shù)作為操作符。這種情況下制定的參數(shù)中的正則表達(dá)式被作為模式進(jìn)行匹配。

如果你使用取非操作符取反操作符返回的結(jié)果,可以讓@處于第二個(gè)字符。

SecRule &ARGS “!@rx ^0$”

?

取非操作符:

操作符的結(jié)果可以通過(guò)在第二個(gè)字符前使用感嘆號(hào)來(lái)取反,下述規(guī)則匹配在User-Agent請(qǐng)求頭中找不到dirty單詞:

SecRule REQUEST_HEADERS:User-Agent !dirty

你能用感嘆號(hào)與任一個(gè)參數(shù)聯(lián)合使用,這樣做,感嘆號(hào)優(yōu)先,后面跟上明確的操作符說(shuō)明,下述規(guī)則與前面的例子有相同的效果。

SecRule REQUEST_HEADERS:User-Agent “!@rx dirty”

如果你在多個(gè)變量中使用取非操作符,者可呢過(guò)無(wú)法立即清楚將會(huì)發(fā)生什么情況,考慮下述例子:

SecRule ARGS:P|ARGS:Q !dirty

這個(gè)規(guī)則與下面意思相同

SecRule ARGS:p !dirty

SecRule ARGS:q !dirty

警告:取非針對(duì)單個(gè)操作符,而不是針對(duì)整個(gè)變量列表。

規(guī)則中的動(dòng)作:第三個(gè)參數(shù),ACTIONS可以忽略,因?yàn)橛袀€(gè)輔助功能,即他可以在默認(rèn)的動(dòng)作清單中指定。如果這個(gè)參數(shù)沒(méi)有被忽略,當(dāng)規(guī)則匹配時(shí),這個(gè)參數(shù)指定的動(dòng)作會(huì)聯(lián)合默認(rèn)的動(dòng)作列表創(chuàng)建一個(gè)實(shí)際的動(dòng)作列表被執(zhí)行。

?

SecRuleInheritance On|Off

配置當(dāng)前環(huán)境是否繼承父節(jié)點(diǎn)環(huán)境(大部分情況下都配置成可繼承,你應(yīng)當(dāng)查一下文檔的每一個(gè)指令,已明確他繼承與否),On從父環(huán)境下繼承規(guī)則,Off-不從父環(huán)境下繼承規(guī)則。

指定資源的環(huán)境(如:Location,Directory,等)不能覆蓋主服務(wù)器或虛擬服務(wù)器上配置的phase1規(guī)則。這是因?yàn)閜hase1在請(qǐng)求處理進(jìn)程之前運(yùn)行,早于apache分發(fā)請(qǐng)求的資源,虛擬服務(wù)環(huán)境可以覆蓋主服務(wù)器配置的phase1規(guī)則。

例如:下面的例子顯示了在主apache配置范圍的哪個(gè)地方啟用ModSecurity,不過(guò),你可以為你的虛擬主機(jī)做不同的配置。第一個(gè)例子中,頭一個(gè)虛擬主機(jī)沒(méi)有繼承ModSecurity的主配置指令,而第二個(gè)做到了。

SecRuleEngine On

SecDefaultAction log,pass,phase:2

<VirtualHost *:80>

SerberName app1.com

ServerAlias www.app1.com

SecRuleInheritance Off

SecDefaultAction log,deny,phase:1,redirect:http://www.site2.com

</VirtualHost>

<VirtualHost *:80>

ServerName app2.com

ServerAlias www.app2.com

SecRuleInheritance On SecRule ARGS “attack”

</VirtualHost>

注意:Configuration Sections是apache的一個(gè)概念,指令<Directory>,<Files>,<Location>和<VirtualHost>都是用于創(chuàng)建Configuration Sections的,更多的信息請(qǐng)看apache的文檔部分中的Configuration Sections

?

SecRuleEngine On|Off|DetectionOnly

配置規(guī)則引擎,On-處理規(guī)則,Off-不處理規(guī)則,DetectionOnly-處理規(guī)則但不中斷交互,即使規(guī)則這樣配置了也不去執(zhí)行。這個(gè)指令針對(duì)每一條規(guī)則處理也可以通過(guò)ctl動(dòng)作進(jìn)行控制(ctl:ruleEngine=off)

?

SecRuleRemoveById RULEID ACTIONLIST

SecRuleRemoveById 1 2 “9000-9010”

SecRuleRemoveById 1 2 5 10-20 “400-556” 673

使用ID方式從上級(jí)環(huán)境中刪除規(guī)則,這個(gè)指令支持多個(gè)參數(shù),每個(gè)參數(shù)可以使一個(gè)規(guī)則ID,也可以是范圍。帶有空格的參數(shù)必須使用雙引號(hào)括起來(lái)。

?

SecRuleRemoveByMsg REGEX

SecRuleRemoveByMsg “FAIL”

使用規(guī)則方式從上級(jí)環(huán)境中刪除規(guī)則,這個(gè)指令支持多個(gè)參數(shù),每個(gè)指令是一個(gè)應(yīng)用于消息的正則表達(dá)式(指定使用的消息動(dòng)作)

?

SecRuleScript(試驗(yàn)性的)

SecRuleScript /path/to/script.lua [ACTIONS]

SecRuleScript ”/path/to/file.lua” “block”

這個(gè)指令創(chuàng)建一個(gè)特殊的規(guī)則,執(zhí)行l(wèi)ua腳本來(lái)決定是否匹配,和SecRule主要的不同是這個(gè)沒(méi)有目的也沒(méi)有操作符,這個(gè)腳本可以從ModSecurity環(huán)境中取到所有的變量,并使用(Lua)操作符來(lái)進(jìn)行測(cè)試,第二個(gè)參數(shù)可選,與SecRule相同,是一個(gè)動(dòng)作列表。

注意:所有的 Lua腳本在配置時(shí)進(jìn)行編譯并存入內(nèi)存,要重載腳本,你必須通過(guò)apache重啟來(lái)重載整個(gè)ModSecurity配置。

示例腳本:

---------------Your script must define the main entry

---------------pointl,as below.

Function main()

?? ----------Log something at level 1.Normally you shouldn’t be

?? ----------logging anything,especially not at level 1,but this is

?? ----------jusy to show you can.Useful for debugging.

m.log(1,”Hello world!”);

--------------Retrieve one variable.

Local var1 = m.getvar(“REMOTE_ADDR”);

--------------Retrieve one variable,applying one transformation function.

--------------The second parameter is a string.

Local var2 = m.getvar(“ARGS”,”lowercase”);

--------------Retrieve one variable,applying several transformation functions.

--------------The second parameter is now a list.You should note that m.getvar()

--------------requires the use of comma to separate collection names from

--------------variable names.This is because only one variable is returned.

Local var3 = m.getvar(“ARGS.P”,{“l(fā)owercase”,”compressWhitespace”});

-------------If you want this rule to match return a string

-------------containing the error message.The message must contain the name

-------------of the variable where the problem is located.

-------------return “Variable ARGS:p looks suspicious!”

-------------Otherwise,simply return nil.

Return nil;

End

第一個(gè)例子,我僅每次提取一個(gè)變量,這種情況下,你需要事先知道變量,然而很多時(shí)候,你想檢查一些事先不知道的變量名字,就像下面這個(gè)例子。

Example showing use of m.getvars() to retrieve many variables at noce:

Function main()

???????? Retrieve script parameters.

Local d = m.getvars(“ARGS”,{“l(fā)owercase”,htmlEntityDecode”});

???????? Loop through the parameters.

For I = 1,#d do

???????? Examine parameter value.

If(string.find(d[i].value,”<script”))then

???????? Always specify the name of the variable where the

???????? Problem is located in the error message.

Return(“Suspected XSS in variable”? d[i].name..”.”);

End

End

???????? Nothing wrong found.

Return nil;

End

注意:Lua支持被標(biāo)示試驗(yàn)方式的編程接口可以繼續(xù)發(fā)展,同時(shí)我們努力讓其最佳方式運(yùn)行

?

SecRuleUpdateActionById RULEID ACTIONLIST

SecRuleUpdateActionById 12345 deny,status:403

按ID方式更新指定規(guī)則的動(dòng)作列表,本指令合并指定的動(dòng)作列表和規(guī)則的動(dòng)作列表,存在兩個(gè)限制,一是規(guī)則ID不能被改變,也不能換階段。另外還需要注意的是動(dòng)作可以duo8ci被附加到原來(lái)的。

SecAction\

“t:lowercase,phase:2,id:12345,pass,msg:’The Message’,log,auditlog”

SecRuleUpdateActionById 12345

“t:compressWhitespace,deny,status:403,msg:’A new message’”

The example above will cause the rule to be executed as if it was speciafied as follows:

SecAction\

“t:lowercase,phase:2,id:12345,log,auditlog,t:compressWhitespace,deny,status:403,msg:’A new message’”

?

SecServerSignature “WEB SERVER SOFTWARE”

SecServerSignature “Netscape-Enterprise/6.0”

通知ModSecurity改變響應(yīng)頭令牌數(shù)據(jù)中當(dāng)前使用的“Server:”,按指令的先后順序執(zhí)行,你必須完整的配置apache ServerTokens指令。通過(guò)該指令,ModSecurity會(huì)改寫(xiě)服務(wù)器簽名數(shù)據(jù)并存入內(nèi)存空間的數(shù)據(jù)集中。如果ServerTokens沒(méi)有完整設(shè)置,那么內(nèi)存空間就沒(méi)有希望的足夠大來(lái)存入我們看到的新數(shù)據(jù)。

?

SecTmpDir /path/to/dir

SecTmpDir /tmp

配置臨時(shí)文件創(chuàng)建的路徑,需要提供apache用戶進(jìn)程的可寫(xiě)權(quán)限,這個(gè)目錄的位置也是當(dāng)apache檢查數(shù)據(jù)用完內(nèi)存時(shí)(比SecRequestBodyInMemoryLimit指令指定的還多的數(shù)據(jù))會(huì)將數(shù)據(jù)交換到磁盤(pán)上的位置。

?

SecUploadDir /path/to/dir

SecUploadDir /tmp

配置攔截文件存儲(chǔ)的目錄,這個(gè)目錄必須和SecTmpDir定義的臨時(shí)目錄在同一個(gè)文件系統(tǒng)上,(This directory must be on the same filesystem as the temporary directory defiled with SecTmpDir.This directive is used with SecUploadKeepFiles.)

?

SecUploadFileMode octal_mode|”default”

SecUploadFileMode 0640

用8進(jìn)制(和chmod一樣)配置所有上傳文件的模式(權(quán)限),這個(gè)功能在不支持8進(jìn)制文件的操作系統(tǒng)上不可用。默認(rèn)模式(0600)僅允許有讀寫(xiě)許可的賬號(hào)修改這個(gè)文件,如果其他賬號(hào)也需要訪問(wèn)(使用clamd是個(gè)好例子),那么這個(gè)指令時(shí)必須的。不管怎樣,要慎用這個(gè)指令,避免將敏感數(shù)據(jù)顯露給未授權(quán)用戶,使用“default”值時(shí),還原默認(rèn)設(shè)置。

?

SecUploadKeepFiles On|Off|RelevantOnly

配置是否保存事務(wù)處理后的攔截文件,該指令要求已經(jīng)定義存儲(chǔ)目錄(使用SecUploadDir),On-保存上載文件,Off-不保存上載文件,RelevantOnly-只保存被確認(rèn)與請(qǐng)求有關(guān)的文件

?

SecWebAppId “NAME”

SecWebAppId “WebApp1”

創(chuàng)建服務(wù)器上的一個(gè)分區(qū)只屬于一個(gè)WEB應(yīng)用,通過(guò)使用分區(qū)來(lái)避免會(huì)話ID和用戶UD之間的沖突,在同一臺(tái)服務(wù)器上部署多個(gè)應(yīng)用時(shí)一定要使用這個(gè)命令,如果不使用,會(huì)話ID之間的沖突可能發(fā)生,默認(rèn)值是default

<VirtualHost *:80>

ServerName app1.com

ServerAlias www.app1.com

SecWebappId “App1”

SecRule REQUEST_COOKIES:PHPSESSID !^$ chain,nolog,pass

SecAction setsid:%{REQUEST_COOKIES.PHPSESSID}

</VirtualHost>

<VirtualHost *:80>

ServerName app2.com

ServerAlias www.app2.com

SecWebAppId “App2”

SecRule REQUEST_COOKIES:PHPSESSID !^$ chain,nolog,pass

SecAction setsid:%{REQUEST_COOKIES.PHPSESSID}

</VirtualHost>

配置顯示了兩個(gè)例子,SecWebAppId與apache的VirtualHost指令協(xié)同工作,在一臺(tái)服務(wù)器上應(yīng)創(chuàng)建各自獨(dú)特的集合名稱,一般情況下,當(dāng)啟用setsid時(shí),ModSecurity會(huì)使用”SESSION”的值來(lái)創(chuàng)建集合,這可以保存專用值,然而像上述例子一樣使用SecWebAppId,集合的名字會(huì)變成”App1_SESSION”和”App2_SESSION”。

SecWebAppId相關(guān)的兩個(gè)情況:

1、你正把事務(wù)(transactions)和報(bào)警記錄到ModSecurity Console(控制臺(tái))上,并且你想用WEB應(yīng)用ID來(lái)搜索僅屬于那些應(yīng)用的事務(wù)。

2、你正使用數(shù)據(jù)留存設(shè)施(SESSION和USER集合)并且你需要在屬于不同的應(yīng)用之間的會(huì)話和用戶之間避免沖突。

?

?

?

?

處理階段:

ModSecurity 2.x允許把規(guī)則至于下述五個(gè)階段之一:

請(qǐng)求頭(REQUEST_HEADERS)

請(qǐng)求體(REQUEST_BODY)

響應(yīng)頭(RESPONSE_HEADERS)

響應(yīng)體(RESPONSE_BODY)

記錄(LOGGING)

為了在規(guī)則執(zhí)行時(shí)選擇階段,需要使用階段命令,可以通過(guò)規(guī)則中直接使用,也可以通過(guò)SecDefaultAction指令。

SecDefaultAction “l(fā)og,pass,phase:2”

SecRule REQUEST_HEADER:Host “!^$””deny,phase:1”

注意:要注意規(guī)則的執(zhí)行時(shí)依賴于階段,即使是一個(gè)配置文件中的兩條鄰近的規(guī)則,只要是設(shè)置了在不同的階段中執(zhí)行,他們就不會(huì)是一個(gè)接一個(gè)的生效。配置文件中的規(guī)則順序僅僅是在規(guī)則各自的階段中是重要的。在使用Skip和SkipAfter動(dòng)作時(shí)尤為重要。

注意:LOGGING階段比較特別,無(wú)論前面的各個(gè)階段發(fā)生了什么事,都會(huì)每個(gè)事務(wù)的最后被執(zhí)行。這就意味著哪怕是請(qǐng)求被中斷或是放行事務(wù)時(shí)都會(huì)被執(zhí)行。

請(qǐng)求頭階段:

這個(gè)階段的規(guī)則會(huì)在apache完成請(qǐng)求頭的讀取后立即被執(zhí)行(post-read-request階段),這時(shí),還沒(méi)有讀取請(qǐng)求體,意味著不是所有的參數(shù)都可用。如果你必須讓規(guī)則盡早運(yùn)行,應(yīng)把規(guī)則放在這個(gè)階段(在apache使用這個(gè)請(qǐng)求做某些事前),在請(qǐng)求體被讀取前做些事情,從而決定是否緩存這個(gè)請(qǐng)求體,或者決定你將希望這個(gè)請(qǐng)求體如何被處理(如是否以XML格式解析或不解析)。

注意這個(gè)階段的規(guī)則無(wú)法影響apache的范圍指令(Directory,Location,LocationMatch等)像post-read-request鉤子一樣還無(wú)法得到信息。VirtualHost指令有些例外,如果想在apache的locations使用ModSecurity規(guī)則,那么他們應(yīng)該運(yùn)行在階段2,參考apache請(qǐng)求環(huán)/ModSecurity處理階段圖標(biāo)。

請(qǐng)求體階段:

這是通用輸入分析階段,大部分傳統(tǒng)的應(yīng)用規(guī)則不在這兒,這個(gè)階段你肯定能收到參數(shù)(只有讀取過(guò)請(qǐng)求體后),在請(qǐng)求體階段,ModSecurity支持三種編碼類型。

Application/x-www-form-urlencoded – used to transfer from data

Multipart/from-data – used for file transfers

Text/xml – used for passing XML data

大部分WEB應(yīng)用還沒(méi)有使用其他的編碼方法。

響應(yīng)頭階段:

發(fā)生在響應(yīng)頭被發(fā)送到客戶端之前,如果你想觀察響應(yīng)發(fā)生前就在這兒運(yùn)行,如果你想使用響應(yīng)頭來(lái)決定你是否想緩存響應(yīng)體也行。注意一些響應(yīng)狀態(tài)碼(如404)在請(qǐng)求環(huán)的早期就被apache管理著,我也無(wú)法觸發(fā)預(yù)期。加上apache在后面的鉤子上雙增加了一些響應(yīng)頭(如日期、服務(wù)器和連接信息等),這些我們無(wú)法觸發(fā)和審查。在代理配置模式下或使用phase:5(logging)工作的較好。

響應(yīng)體階段:

這是通用輸出分析階段,這里你能運(yùn)行規(guī)則截?cái)囗憫?yīng)體(當(dāng)然提供緩存)。這個(gè)階段你想檢查輸出的HTML信息公布、錯(cuò)誤信息和失敗的驗(yàn)證文字。

日志階段:

在日志發(fā)生前運(yùn)行的一個(gè)階段,放在這個(gè)階段的規(guī)則只能影響日志記錄器如何執(zhí)行,這個(gè)階段可以檢測(cè)apache記錄的錯(cuò)誤信息,在這個(gè)階段你不能拒絕或阻斷連接,因?yàn)樘t了,這個(gè)階段也允許檢測(cè)其他的響應(yīng)頭,如那在phase:3或者phase:4階段中不可用的。注意在這個(gè)階段,你應(yīng)當(dāng)小心不要繼承破壞性的動(dòng)作到規(guī)則中,這樣的情況在ModSecurity2.5.0及其以后的版本中被當(dāng)做配置錯(cuò)誤。

?

?

Variables變量

Modsecurity2.x支持的變量:

ARGS

是一個(gè)集合,可以作為靜態(tài)參數(shù)(以名稱為匹配論點(diǎn))方式或以正則表達(dá)式(以正則表達(dá)式匹配的所有匹配的論點(diǎn)名稱)方式用于它自身(意思為POST負(fù)載中的所有論點(diǎn))

一些變量是事實(shí)上的集合,在運(yùn)行時(shí)可以擴(kuò)展更多的變量

SecRule args dirty??? 測(cè)試所有的請(qǐng)求論點(diǎn)

SecRule ARGS:p dirty?? 有些時(shí)候只想看看集合的一部分,這個(gè)例子是通過(guò)selection操作(colon)查看名為P的變量(注意:通常行情況下,請(qǐng)求可以包含多個(gè)同名的變量)

ScRule ARGS|!ARGS:z dirty???? 指定排除方式,將仔細(xì)檢查所有的請(qǐng)求參數(shù)是否有單詞dirty,除了名字為z的參數(shù)(再則,z參數(shù)可以為0個(gè),也可以為多個(gè))

SecRule &ARGS !^0$?? 統(tǒng)計(jì)一個(gè)集合中有多少個(gè)變量,如果一個(gè)請(qǐng)求中使用了0個(gè)以上的參數(shù),下面的規(guī)則就會(huì)有效果(暫時(shí)忽視了第二個(gè)參數(shù))

SecRule ARGS:/^id_/ dirty??? 有些時(shí)候你需要查看一個(gè)參數(shù)數(shù)組,每個(gè)名字只有稍微不同,這種情況下,你可以為集合操作符自己制定一個(gè)正則表達(dá)式,這個(gè)規(guī)則就是查閱所有以id_打頭的參數(shù)名字。

注意:如果參數(shù)p不存在,則使用ARGS:p不會(huì)對(duì)操作符調(diào)用起到任何作用。

?

ARGS_COMBINED_SIZE

此變量相比apache的LimitRequest指令允許你更有針對(duì)性的設(shè)置Arguments 的總大小,如你可以創(chuàng)建一條規(guī)則確保參數(shù)數(shù)據(jù)的大小小于一個(gè)特定的閥值(幫助防止緩存溢出問(wèn)題)例如:如果參數(shù)的大小超過(guò)25個(gè)字符就阻斷他。

SecRule REQUEST_FILENAME “^/cgi-bin/login\.php”\

”chain,log,deny,phase:2,t:none,t:lowercase,t:normalisePath”

SecRule ARGS_COMBINED_SIZE “@gt 25”

?

ARGS_NAMES

是參數(shù)名的集合,你可以搜索你想阻斷的特定的參數(shù)名,在一個(gè)積極策略情況下,你也可以僅僅使用白名單(使用!可以反轉(zhuǎn)規(guī)則)來(lái)審計(jì)參數(shù)名。例:下例規(guī)則僅允許規(guī)則名為p和a的兩個(gè)參數(shù),如果有其他參數(shù)名字在其中,就會(huì)被阻斷。

SecRule REQUEST_FILENAME “/index.php”\

”chain,log,deny,status:403,phase:2,t:none,t:lowercase,t:normalisePath”

SecRule ARGS_NAMES “!^(p|a)$” “t:none,t:lowercase”

?

ARGS_GET

類似于ARGS,但僅針對(duì)于查詢字符串中包含的參數(shù)

?

ARGS_GET_NAMES

類似于ARGS_NAMES,但僅針對(duì)于查詢字符串中包含的參數(shù)

?

ARGS_POST

類似于ARGS,,但僅針對(duì)于POST字符串中包含的參數(shù)

?

ARGS_POST_NAMES

類似于ARGS_NAMES,但僅針對(duì)于POST字符串中包含的參數(shù)

?

AUTH_TYPE

這個(gè)變量保存認(rèn)證方法用于驗(yàn)證一個(gè)用戶,注意:這個(gè)數(shù)據(jù)在使用非本地認(rèn)證的代理模式部署時(shí)不可用,在代理模式部署下,你需要檢查REQUEST_HEADERS認(rèn)證頭

?

ENV

是個(gè)集合,規(guī)則一個(gè)單獨(dú)的參數(shù)(在colon后),ENV變量通過(guò)setenv設(shè)置,不提供CGI環(huán)境變量的訪問(wèn),例如:

SecRule REQUEST_FILENAME “printenv” pass,setenv:tag=suspicious

SecRule ENV:tag “suspicious”

?

FILES

是個(gè)集合,包含一系列的初始文件名(就如同在遠(yuǎn)程用戶的文件系統(tǒng)上命名的一樣),注意:只有從請(qǐng)求體中提取的文件才是有用的,例:

SecRule FILES ”\.conf$” log,deny,status:403,phase:2

?

FILES_COMBINED_SIZE

單一值,所有上傳文件大小的總和,注意:只有從請(qǐng)求體中提取的文件才是有用的,例:

SecRule FILES_COMBINED_SIZE “@gt 1000”log,deny,status:403,phase:2

?

FILES_NAMES?

W/O參數(shù)集合,包含用于文件上傳的表單字段列表,注意:只有從請(qǐng)求體中提取的文件才是有用的,例:

SecRule FILES_NAMES “^upfile$” log,deny,status:403,phase:2

?

FILES_SIZES?

集合,包含文件尺寸的列表,用于實(shí)施單獨(dú)文件上傳的大小限制。注意:只有從請(qǐng)求體中提取的文件才是有用的,例:

SecRule FILES_SIZES “@gt 100”log,deny,status:403,phase:2

?

FIELS_TMPNAMES???

集合,包含磁盤(pán)上臨時(shí)文件名的集合,和@inspecFile一起使用,注意:只有從請(qǐng)求體中提取的文件才是有用的,例:

SecRule FILES_TMPNAMES “@inspectFile /path/to/inspect_script.pl”

?

GEO

是和@geoLookups操作符一起使用的集合,可以用于匹配地理位置字段進(jìn)行IP或主機(jī)名字的查詢,2.2.0以后版本可用

字段:

COUNTRY_CODE:兩個(gè)字符的國(guó)家代號(hào),如:US、UK等

COUNTRY_CODE3:升級(jí)為3個(gè)字符的國(guó)家代號(hào)

COUNTRY_NAME:完整的國(guó)家名

COUNTRY_CONTINENT:兩個(gè)字符的國(guó)家所在洲的代號(hào),如EU

REGION:兩個(gè)字符表示的區(qū)域,對(duì)美國(guó)來(lái)說(shuō)是州,對(duì)加拿大來(lái)說(shuō)是省,等等

CITY:城市名

POSTAL_CODE:郵政編碼

LATITUDE:緯度

LONGITUDE:經(jīng)度

DMA_CODE:中心城區(qū)代碼(僅指美國(guó))

AREA_CODE:電話區(qū)號(hào)(僅指美國(guó))

例如:

SecRule REMOTE_ADDR “@geoLookup” “chain,drop,msg:’Non-UK IP address’”

SecRule GEO: COUNTRY_CODE “!@streq UK”

?

HIGHEST_SEVERITY 這個(gè)變量是迄今為止所有規(guī)則匹配時(shí)最為嚴(yán)格的,Severities是個(gè)數(shù)值,和比較操作符一起,如@It等

注意:更高的severities,其數(shù)值越小,255表示沒(méi)有設(shè)置severitySecRule

HIGHEST_SEVERITY “@le 2” “phase:2,deny,status:500,msg:’severity

%{HIGHEST_SEVERITY}’”

?

id

說(shuō)明:對(duì)規(guī)則指定一個(gè)唯一的ID或鏈。

動(dòng)作組:元數(shù)據(jù)

例如:

SecRule &REQUEST_HEADERS:Host "@eq 0" \??? "log,id:60008,severity:2,msg:'Request Missing a Host Header'"

注意

這些是保留的范圍:

1-99,999;本地(內(nèi)部)保留,使用你認(rèn)為合適的但是不要在規(guī)則里使用這個(gè)范圍的因?yàn)樗麄円呀?jīng)分配給其他。

100,000-199,999;,引擎內(nèi)部保留使用,分配給沒(méi)有明確標(biāo)識(shí)的規(guī)則。

200,000-299,999;modsecurity.org規(guī)則保留。

300,000-399,999;gotroot.com規(guī)則保留。

400,000-419,999;未使用(可預(yù)約)。

420,000-429,999;為ScallyWhack保留。

430,000-699,999;未使用(可預(yù)約)。

700,000-799,999;為伊萬(wàn)里斯蒂奇保留。

900,000-999,999;為核心規(guī)則項(xiàng)目保留。

1000000及以上;未使用(可預(yù)約)。

?

initcol

說(shuō)明:初始化一個(gè)持久的集合,從存儲(chǔ)里導(dǎo)入數(shù)據(jù)或在內(nèi)存中創(chuàng)建一個(gè)新的集合。

動(dòng)作組:非中斷性

例如:下面的例子啟動(dòng)IP地址跟蹤。

SecAction phase:1,initcol:ip=%{REMOTE_ADDR},nolog

注意:通常你想在第一階段和initcol一起使用以便這個(gè)集合在所有階段都可用。

集合在initcol動(dòng)作開(kāi)始被加載進(jìn)內(nèi)存。這個(gè)集合在存儲(chǔ)里將是持續(xù)的(并且相應(yīng)的計(jì)數(shù)器增加)除非它在交互過(guò)程中改變了。請(qǐng)參考” Persistant Storage”以獲取得多內(nèi)容。

?

REQUEST_COOKIES

這個(gè)變量是一個(gè)所有cookie數(shù)據(jù)的集合。例如:下面的例子使用Ampersand(符號(hào)&)特殊運(yùn)算符計(jì)算集合中變量的個(gè)數(shù)。如果請(qǐng)求不包括任何Cookie頭的話,規(guī)則將會(huì)啟動(dòng)。

SecRule &REQUEST_COOKIES “@eq 0”

?

REQUEST_COOKIES_NAMES

這個(gè)變量是一個(gè)請(qǐng)求頭中cookie名字的集合。例如:如果沒(méi)有JSESSIONID cookie的話,下面的規(guī)則將會(huì)啟動(dòng)。

SecRule &REQUEST_COOKIES_NAMES:JSESSIONID “@eq 0”

?

REQUEST_FILENAME

這個(gè)變量包含去掉QUERY_STRING那一部分之后的相對(duì)REQUEST_URI(例如/index.php)

SecRule REQUEST_FILENAME “^/cgi-bin/login\.php$” phase:2,t:none,t:normalizePath

注意:anti-evasion交互并不默認(rèn)在REQUEST_FILENAME上使用。

?

RESPONSE_HEADERS

這個(gè)變量和REQUEST_HEADERS變量相似,可以在同樣的manner(方法)中使用,例如:

SecRule RESPONSE_HEADERS:X-Cache “MISS”

注意:這個(gè)變量不能訪問(wèn)嵌入式模式中的一些頭。在Apache鉤子里面加上了像Server,Data,Connection和Content-Type這些頭,然后向客戶端發(fā)送數(shù)據(jù)。無(wú)論是在ModSecurity phase:5還是運(yùn)行在代理模式下,這些數(shù)據(jù)都應(yīng)該是可訪問(wèn)的。

?

RESPONSE_HEADERS_NAMES

這個(gè)變量是一個(gè)響應(yīng)頭名字集合。例如:

SecRule RESPONSE_HEADERS_NAMES “Set-Cookie”

注意:和RESPONSE_HEADERS一樣,不能訪問(wèn)嵌入式模式中的一些頭。

?

SESSION

這個(gè)變量是一個(gè)集合,setsid執(zhí)行完之后才能訪問(wèn)它。例如:下面的例子說(shuō)明了怎么用setsid初始化一個(gè)SESSION集合,怎么使用setvar增加session.score的值,怎么設(shè)置session.blocked的值,最后怎么拒絕基于session.blocked的值的集合。

SecRule REQUEST_COOKIES:PHPSESSID !^$ chain,nolog,pass

SecAction setsid:%{REQUEST_COOKIES.PHPSESSID}

SecRule REQUEST_URI “^/cgi-bin/finger$” \

“phase:2,t:none,t:lowercase,t:normalizePath,pass,log,setvar:session.score=+10”

SecRule SESSION:SCORE “@gt 50” “pass,log,setvar:session.blocked=q1”

SecRule SESSION:BLOCKED “@eq 1” “l(fā)og,deny,status:403”

?

SESSIONID

這個(gè)變量使用setsid設(shè)置的一個(gè)值,例如:

SecRule SESSION !^$ chain,nolog,pass

SecRule REQUEST_COOKIES:PHPSESSID !^$

SecAction setsid:%{REQUEST_COOKIES.PHPSESSID}

?

TIME

這個(gè)變量含有一個(gè)表示時(shí)間的格式化字符串(時(shí):分:秒),例如:

SecRule TIME “^(([1](8|9))|([2](0|1|2|3))):\d{2}:\d{2}$”

?

?

TX

交互集合。用來(lái)儲(chǔ)存數(shù)據(jù)塊,創(chuàng)建交互異常計(jì)算等。交互變量用來(lái)設(shè)置1號(hào)請(qǐng)求/響應(yīng)循環(huán)。計(jì)算和賦值將不會(huì)持續(xù)到越過(guò)當(dāng)前請(qǐng)求/響應(yīng)處理過(guò)程。例如:在這個(gè)例子中,使用setvar使tx.score增加5個(gè)點(diǎn)。緊接著計(jì)算這次請(qǐng)求的交互分?jǐn)?shù),并決定是否去允許/拒絕請(qǐng)求通過(guò)。

下面是TX集合的保留名稱:

TX:0----捕捉動(dòng)作中使用@rx或者@pm操作符時(shí)的匹配值

TX:1-9-------捕捉括號(hào)和捕捉動(dòng)作中使用@rx操作符時(shí)的捕捉子表達(dá)式的值。

SecRule WEBSERVER_ERROR_LOG “does not exist” “phase:5,pass,setvar:tx.score=+5”

SecRule TX:SCORE “@gt 20” deny,log

?

XML

可獨(dú)立使用(作為validateDTD和validateSchema的目標(biāo)),也可和XPath表達(dá)式參數(shù)(這可以使他對(duì)任何可接受純文本的函數(shù)來(lái)說(shuō)都是有效目標(biāo))一起使用。

DecDefaultAction log,deny,status:403,phase:2

SecRule REQUEST_HEADERS:Content-Type ^text/xml$ \

Phase:1,t:lowercase,nolog,pass,ctl:requestBodyProcessor=XML

SecRule REQBODY_PROCESSOR “|^xml$” skipAfter:12345

SecRule XML:|employees/employee/name/text() Fred

SecRule XML:|xp:employees/employee/name/text() Fred \

Id:12345,xmlns:xp=http://www.example.com/employees

第一個(gè)XPath表達(dá)式不使用命名空間。他將和類似如下的載荷進(jìn)行匹配:

<employees>

??? <employee>

??????? <name>Fred Jones</name>

??????? <address location=”home”>

??????????? <street>900 Aurora Ave.</street>

??????????? <city>Seattle</city>

??????????? <state>WA</state>

??????????? <zip>98115</zip>

??????? </address>

??????? <address location=”work”>

??????????? <street>2011 152nd Avenue NE</street>

??????????? <city>Redmond</city>

??????????? <state>WA<state>

??????????? <zip>98052</zip>

</address>

??????? <phone location=”work”>(425)555-5665</phone>

??????? <phone location=”home”>(206)555-5555</phone>

??????? <phone location=”mobile”>(206)555-4321</phone>

</employee>

</employees>

第二個(gè)XPath表達(dá)式使用命名空間。它將匹配以下負(fù)載:

<xq:employees xmlns:xp=”http://www.example.com/employees”>

<employee>

??? <name>Fred Jones</name>

??? <address location=”home”>

??????? <street>900 Aurora Ave.</street>

??????? <city>Seattle</city>

??????? <state>WA</state>

??????? <zip>98115</zip>

??? </address>

??? <address location=”work”>

??????? <street>2011 152nd Avenue NE</street>

??????? <city>Redmond</city>

??????? <state>WA</state>

??????? <zip>98052</zip>

??? </address>

??? <phone location=”work”>(425)555-5665</phone>

??? <phone location=”home”>(206)555-5555</phone>

??? <phone location=”mobile”>(206)555-4321</phone>

</employee>

</xp:employees

注意第二個(gè)例子中的命名空間

?

?

?

?

?

?

?

?

?

Transformation functions轉(zhuǎn)換函數(shù)(應(yīng)用,功能):

當(dāng)ModSecurity接收到請(qǐng)求或者響應(yīng)消息,它將把這個(gè)消息數(shù)據(jù)復(fù)制到內(nèi)存當(dāng)中做備份。交互函數(shù)就應(yīng)用于這個(gè)數(shù)據(jù)。原始請(qǐng)求/響應(yīng)數(shù)據(jù)不會(huì)被修改。一個(gè)變量要先使用交互函數(shù)轉(zhuǎn)換之后,才能在規(guī)則中進(jìn)行測(cè)試。

注意:ModSecurity之前的版本并沒(méi)有默認(rèn)交互函數(shù)。

下面的規(guī)則將防止攻擊者不使用混合大小寫(xiě)(mixed case)來(lái)逃避ModSecurity的規(guī)則。

SecRule ARGS:p “xp_cmdshell” “t:lowercase”

?

同一條規(guī)則中可以使用多重交互動(dòng)作,比如下面的規(guī)則也能保證攻擊者不使用URL編碼(%xx編碼)逃避規(guī)則。注意交互函數(shù)的命令能保證一個(gè)URL編碼信件是第一次編碼,而不是轉(zhuǎn)換成小寫(xiě)。

SecRule ARGS:p “xp_cmdshell” “t:urlDecode,t:lowercase”

?

可以使用SecDefaultAction命令來(lái)為每條規(guī)則保證轉(zhuǎn)換發(fā)生,直到下一條規(guī)則。注意交互動(dòng)作時(shí)附加(additive)的,所以如果一條規(guī)則明確的列出動(dòng)作,SecDefaultAction中的轉(zhuǎn)換動(dòng)作仍然執(zhí)行。

SecDefaultAction t:urlDecode,t:lowercase

?

下面是被支持的轉(zhuǎn)換函數(shù):

HtmlEntityDecode

對(duì)輸入的HTML實(shí)體進(jìn)行解碼。支持以下變型:

&#xHH and &#xHH;(H是十六進(jìn)制)

&#DDD and &#DDD;(D是十進(jìn)制)

&quot and &quot;

&nbsp and &nbsp;

&lt and &lt;

&gt and &gt;

這個(gè)函數(shù)可以把任何實(shí)體轉(zhuǎn)換成一個(gè)簡(jiǎn)單的字節(jié),可能會(huì)導(dǎo)致信息丟失。有利于發(fā)現(xiàn)本來(lái)不需要編碼的字節(jié)。這個(gè)函數(shù)不能處理255以上的字符。

?

lowercase

這個(gè)函數(shù)使用current C locale把所有字符轉(zhuǎn)換成小寫(xiě)。

?

none

不是一個(gè)轉(zhuǎn)換函數(shù),命令ModSecurity刪除與當(dāng)前指令結(jié)合的所有轉(zhuǎn)換函數(shù)。

?

TrimLeft

刪除輸入左邊的空格。

?

TrimRight

刪除輸入右邊的空格。

?

trim

刪除輸入左右兩邊的空格。

?

urlDecode

這個(gè)函數(shù)為URL編碼的輸入字符串解碼。無(wú)效編碼(例如非十六進(jìn)制字符,字符串結(jié)尾部分少了一兩個(gè)字符)不會(huì)被轉(zhuǎn)換。可以用@validateUrlEncoding運(yùn)算符檢測(cè)是否是無(wú)效編碼。交互函數(shù)不能針對(duì)URL編碼的變量使用,除非你想執(zhí)行URL二次編碼。

?

urlDecodeUni

除了urlDecode對(duì)%xx解碼之外,urlDecodeUni需要解碼%uXXXX。如果編碼在FF01-FF5E(ASCII碼總寬度),那么高字節(jié)將檢查和并調(diào)整低字節(jié)。否則,只有低字節(jié)可用,高字節(jié)不可用。

?

urlEncode

對(duì)輸入數(shù)據(jù)進(jìn)行URL編碼

?

?

?

?

?

?

Actions

有五個(gè)動(dòng)作組,每個(gè)動(dòng)作分別屬于一個(gè)組:

Disruptive actions

引起modsecurity做些事情。有些情況下這些事情意味著鎖定事務(wù),但并不是所有情況都這樣做。例如,allow動(dòng)作屬于一個(gè)disruptive動(dòng)作組,但是它并不鎖定事務(wù)。每個(gè)規(guī)則中只能有一個(gè)disruptive動(dòng)作(如果有多個(gè)disruptive動(dòng)作,或者繼承的動(dòng)作,只有最后那個(gè)有效)。每個(gè)規(guī)則鏈中也只能有一個(gè)disruptive動(dòng)作(在一個(gè)鏈中,只能在第一條規(guī)則中有disruptive動(dòng)作)。

Non-disruptive actions

做一些事情,但是這些事情并不能影響規(guī)則處理流。例如,設(shè)置一個(gè)變量,或者改變變量的值。任何規(guī)則都可以使用Non-disruptive動(dòng)作,就連一個(gè)鏈中的每一個(gè)規(guī)則也都可以有Non-disruptive動(dòng)作。

Flow actions

這些動(dòng)作影響規(guī)則流(例如skip或者skipAfter)

Meta-data actions

使用Meta-data動(dòng)作可以提供關(guān)于規(guī)則更多的信息。例如:id,rev,severity和msg。

Data actions

不是真正的動(dòng)作,只是容器,用來(lái)保存其他動(dòng)作使用的數(shù)據(jù)。例如,status動(dòng)作包含了blocking(blocking發(fā)生時(shí))使用的狀態(tài)。

?

Allow

所屬動(dòng)作組:Disruptive

當(dāng)成功匹配一個(gè)規(guī)則時(shí),停止規(guī)則的處理(審核)過(guò)程,并允許交互繼續(xù)進(jìn)行。

SecRule TEMOTE_ADDR “^192\.168\.1\.100$” nolog,phase:1,allow

ModSecurity之前的版本,allow動(dòng)作只能影響當(dāng)前的phase。如果在Phase 1階段中有allow動(dòng)作,將會(huì)跳過(guò)phase 1階段剩下的規(guī)則。但是如果在Phase 2階段中有allow動(dòng)作,剩下的規(guī)則將會(huì)繼續(xù)執(zhí)行。從2.5.0版本開(kāi)始,allow動(dòng)作升級(jí)到,可以對(duì)正在執(zhí)行的規(guī)則進(jìn)行細(xì)粒度的控制。下列規(guī)則適用:

1、像上面的例子中單獨(dú)使用一個(gè)allow的話,allow會(huì)影響整個(gè)交互,停止當(dāng)前階段的處理,而且跳過(guò)除了logging階段之外的其他階段(logging階段很特殊,總是執(zhí)行)。

2、如果和參數(shù)phase一起使用,allow將會(huì)導(dǎo)致引擎停止處理當(dāng)前階段,其他階段將會(huì)照常執(zhí)行。

3、如果和request參數(shù)一起使用,allow將會(huì)引起引擎停止處理當(dāng)前階段。下一個(gè)處理階段將是RESPONSE_HEADERS階段。

例如:

#Do not process request but process response

SecAction phase:1,allow:request

?

#Do not process transaction(request和response)

SecAction phase:1,allow

如果你想讓response通過(guò),在RESPONSE_HEADERS階段使用規(guī)則,而且只單獨(dú)使用allow。

#Allow response through

SecAction phase:3,allow

?

Capture

動(dòng)作組:Non-disruptive

當(dāng)和正則表達(dá)式操作符一起使用時(shí),capture創(chuàng)建正則表達(dá)式捕捉的副本,并把這些捕捉副本放到交互變量集合里面。每次成功模式匹配,最多只能復(fù)制10個(gè),每個(gè)以數(shù)字0-9的組合命名。

SecRule REQUEST_BODY “username=(\w{25,})” phase:2,t:none,chain

SecRule TX:1 “(?:(?:a(admin|nonymous)))”

注意:數(shù)字0捕捉整個(gè)的REGEX匹配,1捕捉第一個(gè)括號(hào)里面的數(shù)據(jù)。

?

Chain

動(dòng)作組:Flow

動(dòng)作緊跟著規(guī)則時(shí),把規(guī)則串起來(lái),得到的結(jié)果就是規(guī)則鏈,串起來(lái)的規(guī)則允許有更多復(fù)雜的規(guī)則匹配,在這些這些規(guī)則匹配中,使用大量不同的變量來(lái)創(chuàng)建一個(gè)更好的規(guī)則,并且有利于防止誤報(bào)。

#Refuse to accept POST requests that do

#not specify request body length.Do note that

#this rule should be preceeded by a rule that verifies

#only valid request methods(e.g.GET,HEAD and POST)are used.

SecRule REQEST_METHOD ^POST$ chain,t:none

SecRule REQUEST_HEADERS:Content-Lenth ^$ t:none

注意:

在程序語(yǔ)言概念中,串起來(lái)的規(guī)則有點(diǎn)類似于AND條件聲明。只有當(dāng)所有的變量檢查返回正數(shù)時(shí),規(guī)則鏈中第一部分指定的動(dòng)作才被觸發(fā)。只要規(guī)則鏈有一方面是負(fù)的,那整個(gè)規(guī)則鏈都是負(fù)的。同時(shí)要注意,disruptive動(dòng)作,execution段,metadata動(dòng)作(id,rev,msg),skip,skipAfter動(dòng)作只能通過(guò)鏈開(kāi)始規(guī)則指定。

?

deny

所屬動(dòng)作組:Disruptive

停止規(guī)則處理過(guò)程,并且中斷交互。

所屬動(dòng)作組:Disruptive

?

Id

動(dòng)作組:Meta-data

給規(guī)則或鏈指定一個(gè)ID號(hào)

SecRule &REQUEST_HEADERS:Host “@eq 0” \

“l(fā)og,id:60008,severtity:2,msg:’Reqest Missing a Host Header’”

注意:

保留值范圍:

1-99,999::保留做本地(內(nèi)部)使用,你認(rèn)為怎么合適就怎么用,但是你分配給別人的規(guī)則里面不要用這個(gè)范圍。

100,000-199,999:引擎內(nèi)部使用,指定給一些沒(méi)有明確ID號(hào)的規(guī)則

200,000-299,999:modsecurity.org發(fā)布的規(guī)則使用

300,000-399,999:gotroot.com發(fā)布的規(guī)則使用

400,000-419,999:不可用,僅作保留

420,000-429,999:為ScallyWhack[http://projects.otaku42.de/wiki/Scally-Whack]

430,000-899,999:不可用,僅作保留

900,000-999,999:核心規(guī)則[http://www.modsecurity.org/projects/rules/]設(shè)計(jì)

1,000,000及以上:不可用,僅作保留

?

Log

一個(gè)成功的規(guī)則匹配需要被記錄。這個(gè)動(dòng)作不僅把匹配記錄到Apache error log file(用來(lái)記錄apache的錯(cuò)誤信息)當(dāng)中也要記錄到ModSecurity audit log(調(diào)試、審計(jì)日志)當(dāng)中。

?

msg

動(dòng)作組:Meta-data

給規(guī)則或鏈指定一個(gè)客戶消息。

SecRule &REQUEST_HEADERS:Host “@eq 0” \

“l(fā)og,id:60008,severity:2,msg:’Request Missing a Host Header’”

注意:

Msg消息在錯(cuò)誤日志和/或?qū)徲?jì)日志中,而不作為響應(yīng)頭返回給用戶。

?

noauditlog

所屬動(dòng)作組:Non-disruptive

這個(gè)動(dòng)作表明,當(dāng)成功匹配一個(gè)規(guī)則時(shí),并不記錄審計(jì)日志。不管交互應(yīng)不應(yīng)該被記錄到aodit log中,這次匹配都不能被當(dāng)做(下次判斷的)標(biāo)準(zhǔn)。(感覺(jué)可以用于白名單中)

SecRule REQUEST_HEADERS:User-Agent “Test” allow,noauditlog

注意:如果SecAuditEngine 被設(shè)置為On,那么所有的交互都會(huì)被記錄;如果被設(shè)置成RelevantOnly,你才可以使用noauditlog這個(gè)動(dòng)作來(lái)控制交互是否被記錄。

即使規(guī)則里寫(xiě)了noauditlog,規(guī)則里觸發(fā)了審計(jì)動(dòng)作,還是會(huì)記錄日志,正確的做法是在規(guī)則中加上ctl:auditEngine=Off才會(huì)不記錄日志。(上面是張彪依翻譯版的,言簡(jiǎn)意賅,好理解,我應(yīng)該感到汗顏)(即使noauditlog這個(gè)動(dòng)作是應(yīng)用于具體的規(guī)則當(dāng)中,這個(gè)規(guī)則可能在審計(jì)事件觸發(fā)之前也可能在審計(jì)事件觸發(fā)之后,但是這個(gè)交互都要被記錄在audit log(審計(jì)日志)當(dāng)中。正確的方法是:使用“ctl:auditEngine=off”來(lái)使整個(gè)交互的審計(jì)都不記錄(來(lái)使審計(jì)記錄功能失效)。)

?

nolog

Action Group:Non-disruptive

不記錄規(guī)則匹配,既不記錄在error中,也不記錄在audit logs中。

注意:使用這個(gè)動(dòng)作,也必須說(shuō)明noauditlog

?

pass:

動(dòng)作組:Disruptive

盡管成功匹配了一個(gè)規(guī)則,但繼續(xù)檢查下一條規(guī)則

SecRule REQUEST_HEADERS:User-Agent “Test” log,pass

SecRule中寫(xiě)了pass,SecRule帶了multiple targets,每一次規(guī)則匹配,所有的target都會(huì)被處理,并觸發(fā)non-disruptive動(dòng)作。下面的例子里,每一次匹配,TX:test都增加1

SecRule ARGS “test” log,pass,setvar:TX.test=+1

注意:每一次匹配,都不會(huì)終止交互,并記錄日志,除非阻止日志。

?

pass

動(dòng)作組:Meta-data

把規(guī)則或規(guī)則鏈歸于某一個(gè)有效處理階段之一

SecDefaultAction log,deny,phase:1,t:removeNulls,t:lowercase

SecRule REQUEST_HEADER:User-Agent “Test” log,deny,status:403

注意:記住如果段是錯(cuò)誤的,會(huì)導(dǎo)致目標(biāo)變量為空。即變量或運(yùn)算符(RegEx)正確,但是由于指定了錯(cuò)誤的段,導(dǎo)致丟失惡意數(shù)據(jù)。

Phase:1

Normally you will want to use phase:1 along with initcol so that the collection is available in all phases.

?

redirect

動(dòng)作組:Disruptive

在給定位置發(fā)布redirect來(lái)攔截交互

SecRule REQUEST_HEADERS:User-Agent “test” \

Log,redirect:http://www.hostname.com/failed.html

注意:如果狀態(tài)動(dòng)作是現(xiàn)在時(shí)的并且值可接受(為301,302,303,或者307),這個(gè)狀態(tài)碼將會(huì)用來(lái)重定向,否則,狀態(tài)碼302被用來(lái)重定向

?

setvar

動(dòng)作組: non-disruptive

新建刪除更新集合中的變量

新建變量:setvar:tx.score=10

刪除變量:setvar:!tx.score

增加減小變量:在數(shù)字前面加上+或-:setvar:tx.score=+5

?

severity

動(dòng)作組:Meta-data

指定規(guī)則的嚴(yán)重性

SecRule REQUEST_METHOD “^PUT$” “id:340002,rev:1,severity:CRITICAL,msg:’Restricted HTTP function’”

注意:

嚴(yán)重值遵循系統(tǒng)日志,如下:

0????????????????????? EMERGENCY

1????????????????????? ALERT

2????????????????????? CRITICAL

3????????????????????? ERROR

4????????????????????? WARNING

5????????????????????? NOTICE

6????????????????????? INFO

7????????????????????? DEBUG

用數(shù)字或文字值都可以指定嚴(yán)重程度。但是每個(gè)數(shù)字代表的嚴(yán)重程度很難記憶,所有應(yīng)該使用文字值指定嚴(yán)重程度。數(shù)字值在v2.5.0版本中已經(jīng)取消了,在接下來(lái)的版本更新中也可能會(huì)被取消。

?

skip

動(dòng)作組:Flow

匹配成功時(shí),跳過(guò)一條或更多的規(guī)則或規(guī)則鏈、

SecRule REQUEST_URI “^/$” \

“phase:2,chain,t:none,skip:2”

SecRule REMOTE_ADDR “^127\.0\.0\.1$” “chain”

SecRule REQUEST_HEADERS:User-Agent “^Apache \(internal dummy connection\)$” “t:none”

SecRule &REQUEST_HEADERS:Host “@eq 0” \

“deny,log,status:400,id:960008,severity:4,msg:’Request Missing a Host Header’”

SecRule &REQUEST_HEADER:Accept “@eq 0” \

“l(fā)og,deny,log,status:400,id:960015,msg:’Request Missing an Accept Header’”

注意:skip只應(yīng)用與當(dāng)前正在處理的階段,并且沒(méi)必要應(yīng)用于配置文件里面的規(guī)則里的命令。如果想通過(guò)處理段對(duì)規(guī)則分類,就要使用skip。不能在一個(gè)規(guī)則鏈中跳過(guò)規(guī)則。一個(gè)簡(jiǎn)單的參數(shù)就可以指出要跳過(guò)的規(guī)則或規(guī)則鏈的數(shù)量。

?

skipAfter

動(dòng)作組:Flow

匹配后跳過(guò)規(guī)則或規(guī)則鏈,重新開(kāi)始執(zhí)行指定了ID號(hào)或marker(參考SecMarker)的規(guī)則。

SecRule REQUEST_URI “^/$” “chain,t:none,skipAfter:960015”

SecRule REMOTE_ADDR “^127\.0\.0\.1$”? “chain”\

SecRule REQUEST_HEADERS:User-Agent “^Apache \(internal dummy connection\)$” “t:none”

SecRule &REQUEST_HEADERS:Host “@eq 0” \

“deny,log,status:400,id:960008,severity:4,msg:’Request Missing a Host Header’”

SecRule &REQUEST_HEADERS:Accept “@eq 0” \

“l(fā)og,deny,log,status:400,id:960015,msg:’Request Missing an Accept Header’”

注意:skip只應(yīng)用與當(dāng)前正在處理的階段,并且沒(méi)必要應(yīng)用于配置文件里面的規(guī)則里的命令。如果想通過(guò)處理段對(duì)規(guī)則分類,就要使用跳過(guò)。不能在一個(gè)規(guī)則鏈中跳過(guò)規(guī)則。一個(gè)簡(jiǎn)單的參數(shù)就可以指出要跳過(guò)的規(guī)則或規(guī)則鏈的數(shù)量。

?

?

status

動(dòng)作組:Data

與動(dòng)作deny和redirect動(dòng)作一起使用來(lái)指定響應(yīng)狀態(tài)碼

SecDefaultAction log,deny,status:403,phase:1

注意:Apache在scope位置(例如Directory,location等)定義的status動(dòng)作可能會(huì)被phase:1的動(dòng)作設(shè)置所代替。如果在配置文件中出現(xiàn)的話,Apache將會(huì)觸發(fā)ErrorDocument指令。所以如果你之前已經(jīng)為一個(gè)給定的狀態(tài)定義了一個(gè)自定義錯(cuò)誤頁(yè)的話,那么這個(gè)錯(cuò)誤頁(yè)將會(huì)執(zhí)行并顯示給用戶。

?

t

動(dòng)作組:non-disruptive

當(dāng)轉(zhuǎn)換功能是針對(duì)指定變量,并且變量的結(jié)果是由運(yùn)算符計(jì)算得到時(shí),使用動(dòng)作t

SecDefaultAction log,deny,phase:1,t:removeNulls,t:lowercase

SecRule REQUEST_COOKIES:SESSIONID “47414e81cbbef3cf8366e84eeacba091” \

?? Log,deny,status:403,t:md5,t:hexEncode

注意:先用SecDefaultAction中指定轉(zhuǎn)換功能,在此基礎(chǔ)之上,還需要用SecRule指定轉(zhuǎn)換功能。使用“t:none”可以為某一指定的規(guī)則取消所有轉(zhuǎn)換功能。

?

?

?

?

?

?

Operators運(yùn)算符

規(guī)則中可以使用很多運(yùn)算符,@后面跟運(yùn)算符名稱

eq

相當(dāng)于等號(hào)“=”

SecRule &REQUEST_HEADERS_NAMES “@eq 15”

?

pm

段匹配運(yùn)算符。pm使用一組匹配引擎集(Aho-Corasick)來(lái)使關(guān)鍵字列表得到更快的匹配,It will match any one of its arguments anywhere in the target value.匹配不區(qū)分大小寫(xiě)。

SecRule REQUEST_HEADERS:User-Agent “@pm WebZIP WebCopier Webster WebStripper SiteSnagger ProWebWalker”

上面這個(gè)例子中,如果口令在User-Agent HTTP頭值中得到匹配,將返回403拒絕訪問(wèn)。

?

pmFromFile

段匹配運(yùn)算符。pmFromFile使用一組匹配引擎集(Aho-Corasick)來(lái)使關(guān)鍵字列表得到更快的匹配,它和pm相同,不同在于pmFromFile需要一個(gè)一列文件作為arguments。目標(biāo)值將和文件中任一個(gè)段相匹配。

注意:1、文件的每一行只能有一個(gè)段。行尾標(biāo)記將會(huì)和段剝離,但是段里面不能沒(méi)有空格(End of line markers will be stripped from the phases,however,whitespace will not be trimmed from phases in the file.)。空行和以“#”開(kāi)頭的行被忽略。

2、使用段文件的相對(duì)路徑,可以使帶有規(guī)則集的段文件的內(nèi)容更簡(jiǎn)單。此時(shí),包含規(guī)則的文件路徑被預(yù)置為段文件路徑。

SecRule REQUEST_HEADERS:User-Agent “@pm /path/to/blacklist1 blacklist2” “deny,status:403”

上面的例子中,如果兩個(gè)文件的模式(pattern)在User-Agent的HTTP頭值中得到匹配,那么403拒絕訪問(wèn),表blacklist2需要和包含規(guī)則的文件相同路徑。

?

validateUrlEncoding

?

?

validateUtf8Encoding

檢驗(yàn)變量是不是一個(gè)有效的UTF-8編碼字符串

SecRule ARGS “@validateUtf8Encoding”

注意:UTF-8在大部分web服務(wù)器上都是有效的。0-65535之間的整數(shù)值用UTF-8字節(jié)序列編碼,UTF-8字節(jié)序列沒(méi)有百分?jǐn)?shù)。簡(jiǎn)短的形式只有雙字節(jié)。

檢查以下三類錯(cuò)誤:

Not enough bytes.UTF-8支持2,3,4,5,6字節(jié)編碼。ModSecurity將會(huì)找出一個(gè)或多個(gè)字節(jié)丟失的情況。

Overlong characters。ASCII字符直接映射成Unicode(統(tǒng)一字符編碼)空間,因而只代表一個(gè)簡(jiǎn)單的字節(jié)。但是大多數(shù)ASCII字符也能編碼成2,3,4,5,6個(gè)字符。所有就會(huì)欺騙編碼者去思考這個(gè)字符是不是其他東西(并且這樣也大概會(huì)防止安全檢查)。

?

?

?

?

?

?

?

?

?

?

SecPcreMatchLimit

SecPcreMatchLimitRecursion

這兩個(gè)是設(shè)置pcre的參數(shù)的,用來(lái)避免pcre陷入死循環(huán)之類的。

pcre是實(shí)現(xiàn)正則表達(dá)式匹配的庫(kù),modsecurity規(guī)則里面支持正則表達(dá)式,就是用pcre庫(kù)來(lái)做的。

SecStreamInBodyInspection

SecStreamOutBodyInspection

是兩個(gè)開(kāi)關(guān),是否檢查請(qǐng)求體和響應(yīng)體。

?

?

SecRule REQUEST_HEADERS:Host "^[\d.:]+$" "phase:2,t:none,msg:'Host header is a numeric IP address',severity:1,id:0401006,"

?

?

?

?

?

?

?

MIME:多功能網(wǎng)際郵件擴(kuò)充協(xié)議

MIMEMultipurpose Internet Mail Extensions)是一個(gè)互聯(lián)網(wǎng)標(biāo)準(zhǔn),它擴(kuò)展了電子郵件標(biāo)準(zhǔn),使其能夠支持非ASCII字符、二進(jìn)制格式附件等多種格式的郵件消息。

服務(wù)器將MIME標(biāo)志符放入傳送的數(shù)據(jù)中來(lái)告訴瀏覽器使用哪種插件讀取相關(guān)文件。

MIME能夠支持非ASCII字符、二進(jìn)制格式附件等多種格式的郵件消息。MIME規(guī)定了用于表示各種各樣的數(shù)據(jù)類型的符號(hào)化方法。瀏覽器接收到文件后,會(huì)進(jìn)入插件系統(tǒng)進(jìn)行查找,查找出哪種插件可以識(shí)別讀取接收到的文件。如果瀏覽器不清楚調(diào)用哪種插件系統(tǒng),它可能會(huì)告訴用戶缺少某插件,或者直接選擇某現(xiàn)有插件來(lái)試圖讀取接收到的文件,后者可能會(huì)導(dǎo)致系統(tǒng)的崩潰。Microsoft公司應(yīng)用于Windows系統(tǒng)下的瀏覽器使用ActiveX控件,而不是Netscape插件,這種瀏覽器不必象其它瀏覽器那樣依靠MIME的編碼。"

在HTTP中,MIME類型被定義在Content-Type header中。

在ASP中,設(shè)定MIME類型的方法是通過(guò)Response對(duì)象的ContentType屬性。

?

0601001

#950103

SecRule TX:PARANOID_MODE "@eq 1" "chain,phase:1,t:none,msg:'Path Traversal Attack',id:0601001,severity:1"

?????? SecRule REQUEST_FILENAME|ARGS_NAMES|ARGS|XML:/* "(?:\x5c|(?:%(?:c(?:0%(?:9v|af)|1%1c)|2(?:5(?:2f|5c)|f)|u221[56]|1u|5c)|\/))(?:%(?:u2024|2e)|\.){2}(?:\x5c|(?:%(?:c(?:0%(?:9v|af)|1%1c)|2(?:5(?:2f|5c)|f)|u221[56]|1u|5c)|\/))" "t:none,t:lowercase,capture"

?

轉(zhuǎn)載于:https://www.cnblogs.com/xiachj/p/4112194.html

總結(jié)

以上是生活随笔為你收集整理的modsecurity配置指令学习的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

成人无码视频免费播放 | 国产凸凹视频一区二区 | 俺去俺来也在线www色官网 | 国产av久久久久精东av | 中文字幕亚洲情99在线 | 人人妻人人澡人人爽欧美精品 | 无码人妻少妇伦在线电影 | 波多野结衣一区二区三区av免费 | 色窝窝无码一区二区三区色欲 | 荫蒂被男人添的好舒服爽免费视频 | aⅴ在线视频男人的天堂 | 1000部夫妻午夜免费 | 国产精品免费大片 | 久久 国产 尿 小便 嘘嘘 | 一本一道久久综合久久 | 亚洲精品午夜国产va久久成人 | 在线播放亚洲第一字幕 | 国产精品资源一区二区 | 中文字幕+乱码+中文字幕一区 | 玩弄少妇高潮ⅹxxxyw | 国产午夜福利100集发布 | 无码成人精品区在线观看 | 精品偷自拍另类在线观看 | 中文字幕乱码人妻二区三区 | 久久久久国色av免费观看性色 | aⅴ亚洲 日韩 色 图网站 播放 | 男女性色大片免费网站 | 无码纯肉视频在线观看 | 亚洲精品鲁一鲁一区二区三区 | 色综合久久久无码中文字幕 | 丁香花在线影院观看在线播放 | 国产极品视觉盛宴 | 少妇高潮喷潮久久久影院 | 特黄特色大片免费播放器图片 | 中文字幕中文有码在线 | 午夜男女很黄的视频 | a在线观看免费网站大全 | √天堂资源地址中文在线 | 无码国产激情在线观看 | 久久久久成人片免费观看蜜芽 | 国产av一区二区精品久久凹凸 | 综合激情五月综合激情五月激情1 | 99久久精品午夜一区二区 | 国产乡下妇女做爰 | 久久天天躁狠狠躁夜夜免费观看 | 国产成人精品一区二区在线小狼 | 亚洲国产精品久久久天堂 | 欧洲熟妇精品视频 | 熟妇人妻中文av无码 | 久久99精品久久久久婷婷 | 动漫av一区二区在线观看 | 欧洲熟妇色 欧美 | 一本久道久久综合狠狠爱 | 少妇性俱乐部纵欲狂欢电影 | 成熟人妻av无码专区 | 麻豆国产人妻欲求不满谁演的 | 亚洲精品国产第一综合99久久 | 清纯唯美经典一区二区 | 曰本女人与公拘交酡免费视频 | 亚洲熟熟妇xxxx | 久久精品国产99精品亚洲 | 久久久久99精品成人片 | 精品久久8x国产免费观看 | 午夜熟女插插xx免费视频 | 国产成人人人97超碰超爽8 | 国产舌乚八伦偷品w中 | 一本大道伊人av久久综合 | 老头边吃奶边弄进去呻吟 | 久久99精品国产麻豆 | 久久久亚洲欧洲日产国码αv | 国产午夜福利亚洲第一 | 红桃av一区二区三区在线无码av | 少妇高潮喷潮久久久影院 | 色老头在线一区二区三区 | 亚洲国产精品无码一区二区三区 | 一本一道久久综合久久 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 国产激情无码一区二区 | 国产精品久久精品三级 | 动漫av一区二区在线观看 | 亚洲乱亚洲乱妇50p | 国产精品a成v人在线播放 | 亚洲午夜久久久影院 | 日韩精品一区二区av在线 | 成在人线av无码免观看麻豆 | 国产真实乱对白精彩久久 | 久久久久久久女国产乱让韩 | 国产极品美女高潮无套在线观看 | 国产成人精品优优av | 无遮挡啪啪摇乳动态图 | 鲁一鲁av2019在线 | 欧美三级a做爰在线观看 | 中文毛片无遮挡高清免费 | 精品欧洲av无码一区二区三区 | 欧美老熟妇乱xxxxx | 国产一区二区不卡老阿姨 | 丝袜 中出 制服 人妻 美腿 | 老熟女重囗味hdxx69 | 成人一在线视频日韩国产 | 久久97精品久久久久久久不卡 | 国产99久久精品一区二区 | 四虎永久在线精品免费网址 | 国产亚洲精品久久久ai换 | 亚洲精品欧美二区三区中文字幕 | 欧美xxxx黑人又粗又长 | 亚洲码国产精品高潮在线 | 国产另类ts人妖一区二区 | 无码人妻精品一区二区三区不卡 | 亚洲日本va午夜在线电影 | 国产两女互慰高潮视频在线观看 | 丰满少妇高潮惨叫视频 | 影音先锋中文字幕无码 | 国产人妻精品一区二区三区 | 亚洲精品国产精品乱码视色 | 欧美午夜特黄aaaaaa片 | 亚洲の无码国产の无码影院 | 国产情侣作爱视频免费观看 | 未满成年国产在线观看 | 骚片av蜜桃精品一区 | 波多野42部无码喷潮在线 | 白嫩日本少妇做爰 | 亚洲熟妇色xxxxx欧美老妇y | 国产精品久久久久影院嫩草 | 伊人色综合久久天天小片 | 日本一区二区三区免费播放 | 永久免费观看美女裸体的网站 | 狠狠色噜噜狠狠狠7777奇米 | 人人爽人人澡人人高潮 | 国产成人精品无码播放 | 红桃av一区二区三区在线无码av | 中文字幕中文有码在线 | 久久婷婷五月综合色国产香蕉 | 成人片黄网站色大片免费观看 | 国产香蕉97碰碰久久人人 | 丰满岳乱妇在线观看中字无码 | 国产成人无码午夜视频在线观看 | 国产莉萝无码av在线播放 | 国产精品久久久久久亚洲毛片 | 国产精品对白交换视频 | 色五月五月丁香亚洲综合网 | 粉嫩少妇内射浓精videos | 亚洲国产成人av在线观看 | 亚洲中文字幕无码中文字在线 | 亚洲国产一区二区三区在线观看 | 无码国模国产在线观看 | 国产97人人超碰caoprom | 亚洲自偷精品视频自拍 | 亚洲一区av无码专区在线观看 | 日本www一道久久久免费榴莲 | 亚洲精品国产品国语在线观看 | 国产莉萝无码av在线播放 | 久久午夜夜伦鲁鲁片无码免费 | 999久久久国产精品消防器材 | 熟女俱乐部五十路六十路av | 国产午夜无码视频在线观看 | 精品国精品国产自在久国产87 | 我要看www免费看插插视频 | 亚洲熟悉妇女xxx妇女av | 国产一区二区三区影院 | 久久久久人妻一区精品色欧美 | 秋霞成人午夜鲁丝一区二区三区 | 国产高潮视频在线观看 | 99精品视频在线观看免费 | 激情五月综合色婷婷一区二区 | 亚洲精品国偷拍自产在线麻豆 | 欧美兽交xxxx×视频 | 国产成人无码午夜视频在线观看 | 欧美激情内射喷水高潮 | 午夜理论片yy44880影院 | 日本一卡2卡3卡四卡精品网站 | 国产香蕉尹人视频在线 | 日韩精品a片一区二区三区妖精 | 欧美人妻一区二区三区 | 中文字幕 人妻熟女 | 精品无码国产一区二区三区av | 特黄特色大片免费播放器图片 | 红桃av一区二区三区在线无码av | 日韩在线不卡免费视频一区 | 亚洲成a人片在线观看无码3d | 欧美午夜特黄aaaaaa片 | 亚洲无人区一区二区三区 | 亚洲の无码国产の无码影院 | 亚洲精品午夜国产va久久成人 | 欧美一区二区三区 | 亚洲综合在线一区二区三区 | 免费人成在线视频无码 | 国内综合精品午夜久久资源 | 国产美女精品一区二区三区 | 国产精品亚洲综合色区韩国 | 无码午夜成人1000部免费视频 | 在线看片无码永久免费视频 | 成熟女人特级毛片www免费 | 国产精品国产三级国产专播 | 在教室伦流澡到高潮hnp视频 | 一本大道久久东京热无码av | 色一情一乱一伦一视频免费看 | 国产精品久久久久7777 | 亚洲乱码日产精品bd | 亚洲成a人片在线观看无码3d | 一本色道久久综合狠狠躁 | 蜜桃av抽搐高潮一区二区 | 内射爽无广熟女亚洲 | 丰满少妇熟乱xxxxx视频 | 欧美人与牲动交xxxx | 国产精品久久久久9999小说 | 久久久久人妻一区精品色欧美 | 无码精品人妻一区二区三区av | 亚洲综合无码一区二区三区 | 日本va欧美va欧美va精品 | 天天摸天天透天天添 | 一二三四在线观看免费视频 | 精品国产福利一区二区 | 精品久久久无码人妻字幂 | 日本精品少妇一区二区三区 | 亚洲成a人片在线观看无码3d | 波多野结衣av在线观看 | 亚洲欧美精品伊人久久 | 欧美自拍另类欧美综合图片区 | 清纯唯美经典一区二区 | 日韩精品a片一区二区三区妖精 | 午夜福利试看120秒体验区 | 久久久久99精品成人片 | 国产真实乱对白精彩久久 | 久久精品人人做人人综合试看 | 久久精品中文字幕一区 | 成熟人妻av无码专区 | 伊人久久大香线焦av综合影院 | 99久久精品国产一区二区蜜芽 | 丰满少妇熟乱xxxxx视频 | 18禁止看的免费污网站 | 国产精品人人爽人人做我的可爱 | 亚洲一区二区三区香蕉 | 丰满人妻被黑人猛烈进入 | 欧美日韩色另类综合 | 亚洲精品一区二区三区大桥未久 | 97精品人妻一区二区三区香蕉 | a国产一区二区免费入口 | 大色综合色综合网站 | 精品乱码久久久久久久 | 人妻人人添人妻人人爱 | 少妇被粗大的猛进出69影院 | 蜜桃av抽搐高潮一区二区 | 亚洲国产日韩a在线播放 | 免费国产成人高清在线观看网站 | 黑人玩弄人妻中文在线 | 亚洲熟悉妇女xxx妇女av | 97夜夜澡人人双人人人喊 | 国产成人综合色在线观看网站 | 日韩精品乱码av一区二区 | 国产绳艺sm调教室论坛 | 欧美肥老太牲交大战 | 国产成人精品久久亚洲高清不卡 | 久久99久久99精品中文字幕 | 激情内射日本一区二区三区 | 中文字幕中文有码在线 | 日本熟妇大屁股人妻 | 精品久久久久久亚洲精品 | 成人aaa片一区国产精品 | 久久99精品久久久久久动态图 | 99久久精品无码一区二区毛片 | 一个人看的www免费视频在线观看 | 麻豆av传媒蜜桃天美传媒 | 一本久道高清无码视频 | 中文精品无码中文字幕无码专区 | 久久亚洲精品成人无码 | 在线播放免费人成毛片乱码 | 亚洲男人av香蕉爽爽爽爽 | 无码人妻精品一区二区三区下载 | 色老头在线一区二区三区 | 国产无遮挡又黄又爽免费视频 | 久久亚洲精品中文字幕无男同 | 波多野42部无码喷潮在线 | 午夜时刻免费入口 | 人妻少妇精品无码专区动漫 | 亚洲成av人综合在线观看 | 131美女爱做视频 | 亚洲欧美日韩成人高清在线一区 | 日日麻批免费40分钟无码 | 丰满少妇弄高潮了www | 国产精品对白交换视频 | 亚洲成av人片天堂网无码】 | 真人与拘做受免费视频 | 婷婷五月综合激情中文字幕 | 亚洲日韩一区二区三区 | 精品久久久无码人妻字幂 | 少妇人妻大乳在线视频 | 日韩av无码一区二区三区不卡 | 精品夜夜澡人妻无码av蜜桃 | 婷婷六月久久综合丁香 | 67194成是人免费无码 | 日韩欧美群交p片內射中文 | 亚洲中文无码av永久不收费 | 国产 精品 自在自线 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 国产成人无码专区 | 免费乱码人妻系列无码专区 | 精品一区二区三区波多野结衣 | 东京热一精品无码av | 狂野欧美性猛xxxx乱大交 | 国产97在线 | 亚洲 | yw尤物av无码国产在线观看 | 亚洲色成人中文字幕网站 | 欧美兽交xxxx×视频 | 午夜福利一区二区三区在线观看 | 97精品人妻一区二区三区香蕉 | 成人aaa片一区国产精品 | 色五月丁香五月综合五月 | 欧美熟妇另类久久久久久多毛 | 久久久久免费看成人影片 | 成人三级无码视频在线观看 | 日本在线高清不卡免费播放 | 午夜精品一区二区三区在线观看 | 亚洲精品国产品国语在线观看 | 国产免费久久精品国产传媒 | 老熟女乱子伦 | 粗大的内捧猛烈进出视频 | 沈阳熟女露脸对白视频 | 国产特级毛片aaaaaaa高清 | 樱花草在线播放免费中文 | 国产av久久久久精东av | 亚洲自偷自拍另类第1页 | 水蜜桃色314在线观看 | 夜精品a片一区二区三区无码白浆 | 欧美性黑人极品hd | 性色欲情网站iwww九文堂 | 一个人看的www免费视频在线观看 | 亚洲人成影院在线观看 | 国产精品第一国产精品 | 又湿又紧又大又爽a视频国产 | 蜜臀av在线播放 久久综合激激的五月天 | www国产亚洲精品久久久日本 | 麻豆果冻传媒2021精品传媒一区下载 | 精品水蜜桃久久久久久久 | 国产成人av免费观看 | 自拍偷自拍亚洲精品10p | 蜜臀av在线播放 久久综合激激的五月天 | 亚洲精品一区国产 | 日韩av无码一区二区三区 | 日日麻批免费40分钟无码 | 亚洲中文无码av永久不收费 | 国语精品一区二区三区 | 国产乱人伦av在线无码 | 97人妻精品一区二区三区 | 国产熟女一区二区三区四区五区 | 久久精品国产大片免费观看 | 夜夜高潮次次欢爽av女 | 无码精品国产va在线观看dvd | 精品一二三区久久aaa片 | 精品少妇爆乳无码av无码专区 | 特黄特色大片免费播放器图片 | 精品人妻av区 | 天堂а√在线中文在线 | 亚洲春色在线视频 | 女人色极品影院 | 四虎国产精品一区二区 | 麻豆国产97在线 | 欧洲 | 午夜男女很黄的视频 | 免费观看黄网站 | 日韩亚洲欧美精品综合 | 爽爽影院免费观看 | а√天堂www在线天堂小说 | 久久久久se色偷偷亚洲精品av | 国产9 9在线 | 中文 | 成人亚洲精品久久久久软件 | 亚洲性无码av中文字幕 | 国产亚洲美女精品久久久2020 | 真人与拘做受免费视频一 | 亚洲天堂2017无码 | 人妻天天爽夜夜爽一区二区 | 欧美日本日韩 | 亚洲精品午夜无码电影网 | 日本一卡2卡3卡四卡精品网站 | 日本爽爽爽爽爽爽在线观看免 | 欧美性生交活xxxxxdddd | 亚洲欧美日韩成人高清在线一区 | 国产高清不卡无码视频 | av香港经典三级级 在线 | 中文字幕亚洲情99在线 | 久久久久av无码免费网 | 亚洲精品国偷拍自产在线麻豆 | 亚洲自偷自拍另类第1页 | 色综合久久久久综合一本到桃花网 | 欧美国产日产一区二区 | 丰满少妇弄高潮了www | 国産精品久久久久久久 | 国产av无码专区亚洲a∨毛片 | 色偷偷人人澡人人爽人人模 | 欧美野外疯狂做受xxxx高潮 | 又大又硬又黄的免费视频 | 成年美女黄网站色大免费全看 | 久久无码专区国产精品s | 欧美国产日韩久久mv | 亚洲欧美日韩综合久久久 | √天堂中文官网8在线 | 国产精品久久久av久久久 | 婷婷色婷婷开心五月四房播播 | 女高中生第一次破苞av | 久久久国产精品无码免费专区 | 少妇厨房愉情理9仑片视频 | 无码午夜成人1000部免费视频 | 国产成人人人97超碰超爽8 | 少妇无套内谢久久久久 | 亚洲精品一区二区三区在线观看 | 好男人社区资源 | 黑人粗大猛烈进出高潮视频 | 狂野欧美激情性xxxx | 免费无码午夜福利片69 | 人妻中文无码久热丝袜 | 欧美亚洲日韩国产人成在线播放 | 美女扒开屁股让男人桶 | 清纯唯美经典一区二区 | 国产成人精品三级麻豆 | a片在线免费观看 | 人人妻人人澡人人爽精品欧美 | 欧美精品一区二区精品久久 | 久久天天躁狠狠躁夜夜免费观看 | 亚洲综合无码一区二区三区 | 国产精品久久久久久久9999 | 国产一区二区三区日韩精品 | 久久午夜无码鲁丝片午夜精品 | 黑人巨大精品欧美黑寡妇 | 国产精品亚洲一区二区三区喷水 | 中文字幕av伊人av无码av | 激情五月综合色婷婷一区二区 | 亚洲七七久久桃花影院 | 精品无人国产偷自产在线 | 精品无码国产自产拍在线观看蜜 | 亚洲日韩中文字幕在线播放 | 欧美第一黄网免费网站 | 在线观看国产一区二区三区 | 中文字幕人妻无码一区二区三区 | 99久久婷婷国产综合精品青草免费 | 四虎国产精品一区二区 | 男女作爱免费网站 | 国产精品亚洲一区二区三区喷水 | 国产偷抇久久精品a片69 | 黑人大群体交免费视频 | 未满小14洗澡无码视频网站 | 国产欧美熟妇另类久久久 | 亚洲va中文字幕无码久久不卡 | 日日摸夜夜摸狠狠摸婷婷 | 无码av最新清无码专区吞精 | 国产无遮挡又黄又爽又色 | 中文字幕乱码中文乱码51精品 | 欧美丰满老熟妇xxxxx性 | 少妇邻居内射在线 | 131美女爱做视频 | 夜先锋av资源网站 | 欧美人与禽猛交狂配 | 日韩无码专区 | 精品日本一区二区三区在线观看 | 精品欧洲av无码一区二区三区 | 国产成人精品优优av | 伊人久久大香线蕉午夜 | 日本免费一区二区三区最新 | 国产欧美精品一区二区三区 | 国产真实夫妇视频 | 成熟女人特级毛片www免费 | 久久国产劲爆∧v内射 | 丰满人妻精品国产99aⅴ | 国产午夜精品一区二区三区嫩草 | 日本又色又爽又黄的a片18禁 | 狠狠躁日日躁夜夜躁2020 | 亚洲精品成人av在线 | 国产精品香蕉在线观看 | 日韩精品无码免费一区二区三区 | 国产av一区二区精品久久凹凸 | 东京一本一道一二三区 | 国产av一区二区三区最新精品 | 成人精品视频一区二区三区尤物 | 中文字幕人妻无码一夲道 | 亚洲精品午夜国产va久久成人 | 日本免费一区二区三区最新 | 天天拍夜夜添久久精品大 | 男女猛烈xx00免费视频试看 | 国产精品久久久久久亚洲毛片 | 人人妻人人澡人人爽人人精品 | 奇米影视7777久久精品人人爽 | 在线观看欧美一区二区三区 | 国产艳妇av在线观看果冻传媒 | 中国女人内谢69xxxxxa片 | 精品午夜福利在线观看 | 日本一本二本三区免费 | 一本大道久久东京热无码av | 99精品国产综合久久久久五月天 | 亚洲大尺度无码无码专区 | 疯狂三人交性欧美 | 成人女人看片免费视频放人 | 人人妻人人澡人人爽欧美精品 | 欧美人与禽猛交狂配 | 中文亚洲成a人片在线观看 | 亚洲一区二区三区香蕉 | 漂亮人妻洗澡被公强 日日躁 | 久久综合给合久久狠狠狠97色 | 2019nv天堂香蕉在线观看 | 国产精品久久久久7777 | 国产极品美女高潮无套在线观看 | 国产乱子伦视频在线播放 | 午夜福利电影 | 精品国产麻豆免费人成网站 | 亚洲欧美综合区丁香五月小说 | 国产电影无码午夜在线播放 | 亚洲精品一区二区三区在线观看 | 中文字幕+乱码+中文字幕一区 | 性欧美熟妇videofreesex | 狠狠躁日日躁夜夜躁2020 | 国产黄在线观看免费观看不卡 | 欧美人妻一区二区三区 | 免费人成在线观看网站 | 亚洲熟妇色xxxxx亚洲 | 中文字幕av无码一区二区三区电影 | 国产精品美女久久久久av爽李琼 | 白嫩日本少妇做爰 | 亚洲男人av天堂午夜在 | 无码毛片视频一区二区本码 | 动漫av一区二区在线观看 | 人人妻人人藻人人爽欧美一区 | 国内精品九九久久久精品 | 男女超爽视频免费播放 | 99久久婷婷国产综合精品青草免费 | 中文字幕av无码一区二区三区电影 | 国产情侣作爱视频免费观看 | 欧美变态另类xxxx | 在线观看国产一区二区三区 | 亚洲精品欧美二区三区中文字幕 | 伊在人天堂亚洲香蕉精品区 | 国产精品成人av在线观看 | 午夜福利试看120秒体验区 | 中文字幕av伊人av无码av | 久久久精品成人免费观看 | 久久综合给久久狠狠97色 | 麻豆国产人妻欲求不满 | 国产美女精品一区二区三区 | 人妻天天爽夜夜爽一区二区 | 久久亚洲日韩精品一区二区三区 | 国产性生交xxxxx无码 | 亚洲欧美综合区丁香五月小说 | 国产后入清纯学生妹 | 高潮毛片无遮挡高清免费 | 日日麻批免费40分钟无码 | 六月丁香婷婷色狠狠久久 | 久久亚洲中文字幕精品一区 | 无码人妻少妇伦在线电影 | av无码久久久久不卡免费网站 | 人人妻人人澡人人爽人人精品浪潮 | 亚洲精品久久久久中文第一幕 | 日日鲁鲁鲁夜夜爽爽狠狠 | 久久综合九色综合97网 | 国模大胆一区二区三区 | 亚洲日本一区二区三区在线 | 免费国产成人高清在线观看网站 | 亚洲精品午夜无码电影网 | 狂野欧美性猛xxxx乱大交 | 18精品久久久无码午夜福利 | 欧美人与动性行为视频 | 久久久精品国产sm最大网站 | 伊在人天堂亚洲香蕉精品区 | 午夜丰满少妇性开放视频 | 国产精品久久国产精品99 | 未满成年国产在线观看 | 内射白嫩少妇超碰 | 国产精品va在线播放 | 男女猛烈xx00免费视频试看 | 国产欧美亚洲精品a | 久久99精品国产麻豆 | 清纯唯美经典一区二区 | 欧美精品国产综合久久 | 久久精品国产99久久6动漫 | 人妻中文无码久热丝袜 | а天堂中文在线官网 | 久久精品国产亚洲精品 | 精品厕所偷拍各类美女tp嘘嘘 | 又紧又大又爽精品一区二区 | 欧美 日韩 亚洲 在线 | 久久久久99精品成人片 | 99re在线播放 | 国产成人精品视频ⅴa片软件竹菊 | 国产色视频一区二区三区 | 欧美国产日韩久久mv | 国産精品久久久久久久 | 日本精品高清一区二区 | 日韩少妇白浆无码系列 | 精品久久久无码人妻字幂 | 国产性生大片免费观看性 | 成年美女黄网站色大免费全看 | 日本精品高清一区二区 | 亚洲另类伦春色综合小说 | 国产成人综合在线女婷五月99播放 | 日韩在线不卡免费视频一区 | 亚洲国产日韩a在线播放 | 大地资源网第二页免费观看 | 18黄暴禁片在线观看 | 2020最新国产自产精品 | 国产人妻人伦精品1国产丝袜 | 大乳丰满人妻中文字幕日本 | 蜜臀av无码人妻精品 | 人妻少妇被猛烈进入中文字幕 | 在线视频网站www色 | 国产亲子乱弄免费视频 | 人人妻人人澡人人爽欧美精品 | 人人超人人超碰超国产 | 九一九色国产 | 扒开双腿疯狂进出爽爽爽视频 | 特黄特色大片免费播放器图片 | 国产偷自视频区视频 | 亚洲男人av香蕉爽爽爽爽 | 国色天香社区在线视频 | 人人妻人人澡人人爽人人精品 | 成人无码视频在线观看网站 | 无码任你躁久久久久久久 | 午夜嘿嘿嘿影院 | 亚洲男人av香蕉爽爽爽爽 | 好男人社区资源 | 国产人妻精品午夜福利免费 | 欧美日韩视频无码一区二区三 | 成熟女人特级毛片www免费 | 国产亚洲精品久久久久久久久动漫 | 色综合久久中文娱乐网 | 55夜色66夜色国产精品视频 | 久久久婷婷五月亚洲97号色 | 久久久久久久人妻无码中文字幕爆 | 精品无码国产自产拍在线观看蜜 | 无码人妻精品一区二区三区下载 | 丰满人妻翻云覆雨呻吟视频 | 纯爱无遮挡h肉动漫在线播放 | 久久精品中文字幕大胸 | 日本大乳高潮视频在线观看 | 精品国产一区二区三区四区 | 成人一区二区免费视频 | 日本精品人妻无码77777 天堂一区人妻无码 | 日本精品少妇一区二区三区 | 天干天干啦夜天干天2017 | 国产亚洲精品久久久久久国模美 | 久久99久久99精品中文字幕 | 丰满人妻翻云覆雨呻吟视频 | 天天拍夜夜添久久精品大 | 无码人妻精品一区二区三区不卡 | 欧美丰满熟妇xxxx | 狠狠色噜噜狠狠狠狠7777米奇 | 国内丰满熟女出轨videos | 综合网日日天干夜夜久久 | 99久久久无码国产aaa精品 | 日韩欧美中文字幕公布 | 亚洲gv猛男gv无码男同 | 国产精品香蕉在线观看 | 高潮毛片无遮挡高清免费视频 | 国产美女精品一区二区三区 | 亚洲一区二区三区含羞草 | 久久精品人人做人人综合试看 | 女人高潮内射99精品 | 内射后入在线观看一区 | 国产国产精品人在线视 | 亚洲综合另类小说色区 | 网友自拍区视频精品 | 亚洲国产精品毛片av不卡在线 | 国内揄拍国内精品少妇国语 | 亚洲七七久久桃花影院 | 国产亚洲精品久久久ai换 | 精品夜夜澡人妻无码av蜜桃 | 精品国产福利一区二区 | 久久天天躁夜夜躁狠狠 | 久久久久亚洲精品男人的天堂 | 中文字幕日产无线码一区 | www成人国产高清内射 | 人人妻人人澡人人爽欧美精品 | 成人精品一区二区三区中文字幕 | 国产两女互慰高潮视频在线观看 | 俺去俺来也在线www色官网 | 欧美兽交xxxx×视频 | 国产亚洲精品精品国产亚洲综合 | 亚洲人亚洲人成电影网站色 | 最近的中文字幕在线看视频 | 色婷婷久久一区二区三区麻豆 | 中文字幕无码免费久久99 | 亚洲精品国偷拍自产在线观看蜜桃 | 狂野欧美性猛交免费视频 | 伊在人天堂亚洲香蕉精品区 | 国产一区二区三区四区五区加勒比 | 久久综合九色综合97网 | 无码任你躁久久久久久久 | 人妻熟女一区 | 97色伦图片97综合影院 | 激情内射亚州一区二区三区爱妻 | 国产成人无码av片在线观看不卡 | 18黄暴禁片在线观看 | 一本色道久久综合狠狠躁 | 欧美自拍另类欧美综合图片区 | 无套内谢的新婚少妇国语播放 | 亚洲人成网站免费播放 | 国产麻豆精品一区二区三区v视界 | 欧美老人巨大xxxx做受 | 漂亮人妻洗澡被公强 日日躁 | 亚洲毛片av日韩av无码 | 日日天干夜夜狠狠爱 | 日韩精品a片一区二区三区妖精 | 男女下面进入的视频免费午夜 | 最新版天堂资源中文官网 | 国产xxx69麻豆国语对白 | 欧美怡红院免费全部视频 | 亚洲日韩中文字幕在线播放 | 久久国产36精品色熟妇 | 久久午夜无码鲁丝片 | 天干天干啦夜天干天2017 | 亚洲精品久久久久avwww潮水 | 波多野42部无码喷潮在线 | 国产日产欧产精品精品app | 亚洲精品国产精品乱码不卡 | 无码成人精品区在线观看 | 大肉大捧一进一出视频出来呀 | 欧美日韩在线亚洲综合国产人 | 99精品国产综合久久久久五月天 | 人人妻人人澡人人爽欧美一区九九 | 中文字幕中文有码在线 | 免费国产成人高清在线观看网站 | 国产精品久久久av久久久 | 精品熟女少妇av免费观看 | 精品久久综合1区2区3区激情 | 波多野结衣乳巨码无在线观看 | 午夜精品久久久内射近拍高清 | 久久精品中文闷骚内射 | 国产免费久久精品国产传媒 | 少妇太爽了在线观看 | 久久亚洲精品中文字幕无男同 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 中文字幕无码免费久久9一区9 | 国产精品爱久久久久久久 | 国产激情一区二区三区 | 天天躁日日躁狠狠躁免费麻豆 | 成人欧美一区二区三区黑人免费 | 欧美熟妇另类久久久久久多毛 | 国产真实伦对白全集 | 久久久久久国产精品无码下载 | 国产精品18久久久久久麻辣 | 亚洲精品国产精品乱码视色 | 国产乱人偷精品人妻a片 | 风流少妇按摩来高潮 | 国模大胆一区二区三区 | 国产精品无码永久免费888 | 丁香花在线影院观看在线播放 | 国产一精品一av一免费 | 亚洲爆乳大丰满无码专区 | 国产香蕉尹人综合在线观看 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 亚洲国产午夜精品理论片 | 国产精品无码久久av | 西西人体www44rt大胆高清 | 成人aaa片一区国产精品 | 色婷婷av一区二区三区之红樱桃 | 乱人伦人妻中文字幕无码久久网 | 欧美日本精品一区二区三区 | 又湿又紧又大又爽a视频国产 | 久9re热视频这里只有精品 | 中文字幕无码人妻少妇免费 | 久久久www成人免费毛片 | 黑人巨大精品欧美一区二区 | 色欲av亚洲一区无码少妇 | 又色又爽又黄的美女裸体网站 | 免费看男女做好爽好硬视频 | 少女韩国电视剧在线观看完整 | 老熟女乱子伦 | 帮老师解开蕾丝奶罩吸乳网站 | 亚洲国精产品一二二线 | 亚洲熟悉妇女xxx妇女av | 亚洲区小说区激情区图片区 | 国产精品人人爽人人做我的可爱 | 成人三级无码视频在线观看 | 国产一精品一av一免费 | 丁香啪啪综合成人亚洲 | 久久亚洲日韩精品一区二区三区 | 久久99精品国产麻豆 | 人人爽人人澡人人高潮 | 狂野欧美性猛xxxx乱大交 | 99麻豆久久久国产精品免费 | 国产人妻精品一区二区三区不卡 | 夜精品a片一区二区三区无码白浆 | 亚洲成av人片天堂网无码】 | 日本精品人妻无码免费大全 | 精品国产一区二区三区四区在线看 | 国产精品高潮呻吟av久久4虎 | 国产黄在线观看免费观看不卡 | 中文字幕无码日韩欧毛 | √8天堂资源地址中文在线 | 无码av最新清无码专区吞精 | 女人被男人爽到呻吟的视频 | 欧美日本精品一区二区三区 | 久久国产精品精品国产色婷婷 | 美女黄网站人色视频免费国产 | 国产真人无遮挡作爱免费视频 | 伊在人天堂亚洲香蕉精品区 | 无码人妻出轨黑人中文字幕 | 亚洲の无码国产の无码步美 | 成人aaa片一区国产精品 | а√天堂www在线天堂小说 | 亚洲人成人无码网www国产 | 中文字幕无码热在线视频 | 成在人线av无码免费 | 国产熟妇另类久久久久 | 天天爽夜夜爽夜夜爽 | 久久精品人人做人人综合试看 | 久久久久免费精品国产 | 色综合久久中文娱乐网 | 久久亚洲精品成人无码 | 狠狠躁日日躁夜夜躁2020 | 又紧又大又爽精品一区二区 | 欧美精品国产综合久久 | 激情人妻另类人妻伦 | 亚洲综合无码一区二区三区 | 1000部夫妻午夜免费 | 欧美人与物videos另类 | 国产成人精品久久亚洲高清不卡 | 欧美人与善在线com | 久久精品丝袜高跟鞋 | 男女猛烈xx00免费视频试看 | 中文字幕精品av一区二区五区 | 国产成人综合色在线观看网站 | 一个人看的www免费视频在线观看 | 亚洲国产精品久久久天堂 | 国内丰满熟女出轨videos | 亚洲熟熟妇xxxx | 中文字幕无线码 | 一区二区三区乱码在线 | 欧洲 | 久久久亚洲欧洲日产国码αv | 99国产欧美久久久精品 | 一本久道高清无码视频 | √天堂中文官网8在线 | 天天做天天爱天天爽综合网 | 亚洲中文字幕乱码av波多ji | 丰满少妇熟乱xxxxx视频 | 亚洲精品久久久久avwww潮水 | 狂野欧美激情性xxxx | 给我免费的视频在线观看 | 天天拍夜夜添久久精品大 | 人人妻人人澡人人爽欧美精品 | 一本精品99久久精品77 | 午夜精品久久久久久久 | 中文字幕无码av波多野吉衣 | 玩弄少妇高潮ⅹxxxyw | 51国偷自产一区二区三区 | 婷婷五月综合激情中文字幕 | 色一情一乱一伦一视频免费看 | 精品久久久无码人妻字幂 | 无码人妻精品一区二区三区下载 | 夫妻免费无码v看片 | 欧美喷潮久久久xxxxx | 特级做a爰片毛片免费69 | 亚洲人成无码网www | 久久国内精品自在自线 | 久久久av男人的天堂 | 人人爽人人澡人人人妻 | 久久久亚洲欧洲日产国码αv | 俺去俺来也www色官网 | 妺妺窝人体色www婷婷 | 欧美成人家庭影院 | 日本免费一区二区三区最新 | 欧美猛少妇色xxxxx | 精品国产av色一区二区深夜久久 | 亚洲区欧美区综合区自拍区 | 国产又爽又猛又粗的视频a片 | 大胆欧美熟妇xx | 国产亚洲人成a在线v网站 | 人妻少妇精品视频专区 | 国产精品欧美成人 | 久久99久久99精品中文字幕 | 丰满少妇弄高潮了www | 我要看www免费看插插视频 | 亚洲最大成人网站 | 精品国产福利一区二区 | 性欧美大战久久久久久久 | 成人精品一区二区三区中文字幕 | 中文字幕乱码亚洲无线三区 | 久久综合给久久狠狠97色 | 装睡被陌生人摸出水好爽 | 乱码av麻豆丝袜熟女系列 | www国产精品内射老师 | 亲嘴扒胸摸屁股激烈网站 | 一本色道婷婷久久欧美 | 精品国产aⅴ无码一区二区 | 国产精品怡红院永久免费 | 国产成人无码av在线影院 | 东京热男人av天堂 | 3d动漫精品啪啪一区二区中 | 国产69精品久久久久app下载 | 中文字幕人妻无码一区二区三区 | 欧美兽交xxxx×视频 | 国产 浪潮av性色四虎 | 乱人伦人妻中文字幕无码久久网 | 给我免费的视频在线观看 | 伊人久久婷婷五月综合97色 | 亚洲一区二区三区在线观看网站 | 精品人人妻人人澡人人爽人人 | 夜精品a片一区二区三区无码白浆 | 300部国产真实乱 | 夜精品a片一区二区三区无码白浆 | 国产精品丝袜黑色高跟鞋 | 亚洲另类伦春色综合小说 | 国产激情无码一区二区app | 中文字幕 人妻熟女 | 人人妻人人澡人人爽人人精品 | 2019nv天堂香蕉在线观看 | 一本无码人妻在中文字幕免费 | 国产电影无码午夜在线播放 | 狠狠色色综合网站 | 国产午夜精品一区二区三区嫩草 | 5858s亚洲色大成网站www | 国产麻豆精品精东影业av网站 | 国产午夜无码精品免费看 | 精品久久综合1区2区3区激情 | 国产激情无码一区二区app | 成人无码精品1区2区3区免费看 | 99久久久国产精品无码免费 | 国产色精品久久人妻 | 天天做天天爱天天爽综合网 | 成 人 免费观看网站 | 色欲久久久天天天综合网精品 | 欧美亚洲日韩国产人成在线播放 | 久久亚洲中文字幕精品一区 | 99视频精品全部免费免费观看 | 国产精品99爱免费视频 | 性欧美熟妇videofreesex | 熟女体下毛毛黑森林 | 无码乱肉视频免费大全合集 | 无码精品国产va在线观看dvd | 日日橹狠狠爱欧美视频 | 97久久超碰中文字幕 | 精品国产一区二区三区四区在线看 | 国产成人一区二区三区别 | 男女性色大片免费网站 | 亚洲精品国产第一综合99久久 | 精品国产一区二区三区四区在线看 | 丰满少妇熟乱xxxxx视频 | 18黄暴禁片在线观看 | 无码精品国产va在线观看dvd | 亚洲精品欧美二区三区中文字幕 | 日本www一道久久久免费榴莲 | 久青草影院在线观看国产 | 亚洲国产精品毛片av不卡在线 | www一区二区www免费 | 欧洲熟妇精品视频 | 日韩视频 中文字幕 视频一区 | 久激情内射婷内射蜜桃人妖 | 亚洲熟妇色xxxxx欧美老妇 | 国产亚洲tv在线观看 | 亚洲国产午夜精品理论片 | 精品日本一区二区三区在线观看 | 日产精品99久久久久久 | 精品亚洲成av人在线观看 | 亚洲国产精华液网站w | 国产美女极度色诱视频www | 极品嫩模高潮叫床 | 日本精品久久久久中文字幕 | 九月婷婷人人澡人人添人人爽 | 丰满人妻一区二区三区免费视频 | 欧美一区二区三区 | 午夜福利不卡在线视频 | 中文字幕无码日韩专区 | 亚洲小说图区综合在线 | 无码一区二区三区在线 | 久热国产vs视频在线观看 | 久久久久久久久蜜桃 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 国产精品.xx视频.xxtv | 国语自产偷拍精品视频偷 | 国语自产偷拍精品视频偷 | 成人片黄网站色大片免费观看 | 欧美老妇交乱视频在线观看 | 久久久久久九九精品久 | 亚洲人成网站在线播放942 | 国产三级精品三级男人的天堂 | 久久精品一区二区三区四区 | 亚洲精品国产a久久久久久 | 午夜精品久久久内射近拍高清 | 亚洲一区二区三区偷拍女厕 | 美女极度色诱视频国产 | 国产成人精品无码播放 | 欧美日韩亚洲国产精品 | 欧美丰满熟妇xxxx性ppx人交 | 国产人妻精品一区二区三区不卡 | 强奷人妻日本中文字幕 | 97精品人妻一区二区三区香蕉 | 国产美女精品一区二区三区 | 亚洲一区二区三区偷拍女厕 | 免费男性肉肉影院 | 亚洲男人av天堂午夜在 | 欧美日韩亚洲国产精品 | 欧美freesex黑人又粗又大 | 99精品视频在线观看免费 | 国产九九九九九九九a片 | 国产精品国产三级国产专播 | 日本一卡2卡3卡四卡精品网站 | 日本xxxx色视频在线观看免费 | 丰腴饱满的极品熟妇 | 国内精品九九久久久精品 | 99riav国产精品视频 | √天堂中文官网8在线 | 国産精品久久久久久久 | 国产精品美女久久久网av | 成人av无码一区二区三区 | 一区二区三区高清视频一 | 久久久精品人妻久久影视 | 四虎影视成人永久免费观看视频 | 久久zyz资源站无码中文动漫 | www成人国产高清内射 | 成人性做爰aaa片免费看 | 亚洲精品鲁一鲁一区二区三区 | 精品aⅴ一区二区三区 | 国产精品久久久午夜夜伦鲁鲁 | 99久久精品无码一区二区毛片 | 午夜熟女插插xx免费视频 | 亚洲国产午夜精品理论片 | 亚洲熟妇色xxxxx欧美老妇y | 久久亚洲a片com人成 | 97久久国产亚洲精品超碰热 | 久久亚洲国产成人精品性色 | 久久精品中文闷骚内射 | 麻豆国产人妻欲求不满 | 国产精品理论片在线观看 | 2020久久超碰国产精品最新 | 久久精品丝袜高跟鞋 | 免费播放一区二区三区 | 人人爽人人爽人人片av亚洲 | 黑人巨大精品欧美黑寡妇 | 少妇的肉体aa片免费 | 无套内射视频囯产 | 色偷偷人人澡人人爽人人模 | 久久www免费人成人片 | 久久久久se色偷偷亚洲精品av | 亚洲色欲久久久综合网东京热 | 国产色xx群视频射精 | 无码精品国产va在线观看dvd | 又紧又大又爽精品一区二区 | 亚洲精品鲁一鲁一区二区三区 | 国产精品99爱免费视频 | 波多野结衣av在线观看 | 图片小说视频一区二区 | 亚洲另类伦春色综合小说 | 无套内谢的新婚少妇国语播放 | 无码av中文字幕免费放 | 国产人妻人伦精品1国产丝袜 | 丰满人妻精品国产99aⅴ | 亚洲日韩乱码中文无码蜜桃臀网站 | 牲交欧美兽交欧美 | 无码国产色欲xxxxx视频 | 特大黑人娇小亚洲女 | 性欧美熟妇videofreesex | 巨爆乳无码视频在线观看 | 久久精品女人的天堂av | 性欧美大战久久久久久久 | 久久精品人妻少妇一区二区三区 | 亚洲经典千人经典日产 | 国产成人精品一区二区在线小狼 | 国产人妻人伦精品1国产丝袜 | 久久久中文久久久无码 | 亚洲精品久久久久久久久久久 | 国产做国产爱免费视频 | 学生妹亚洲一区二区 | 欧美日韩在线亚洲综合国产人 | 亚洲中文字幕av在天堂 | 在线精品国产一区二区三区 | 欧美怡红院免费全部视频 | 国产精品福利视频导航 | 国产综合在线观看 | 大肉大捧一进一出视频出来呀 | 亚洲精品午夜国产va久久成人 | 色婷婷av一区二区三区之红樱桃 | 乱码av麻豆丝袜熟女系列 | 午夜无码人妻av大片色欲 | 成人亚洲精品久久久久 | 天堂а√在线地址中文在线 | 国产国语老龄妇女a片 | 大乳丰满人妻中文字幕日本 | 亚洲一区二区三区含羞草 | 3d动漫精品啪啪一区二区中 | aⅴ亚洲 日韩 色 图网站 播放 | 久久亚洲精品成人无码 | a在线亚洲男人的天堂 | 色综合久久久无码中文字幕 | 亚洲国产精品成人久久蜜臀 | 99久久99久久免费精品蜜桃 | 一二三四在线观看免费视频 | 毛片内射-百度 | 激情综合激情五月俺也去 | 成人无码影片精品久久久 | 亚洲日本一区二区三区在线 | 成人免费视频视频在线观看 免费 | 国产精品久久久午夜夜伦鲁鲁 | 日本乱人伦片中文三区 | 中文字幕乱码中文乱码51精品 | 日本精品少妇一区二区三区 | 影音先锋中文字幕无码 | 牲欲强的熟妇农村老妇女 | 欧美日韩一区二区三区自拍 | 国产乡下妇女做爰 | 国产一区二区三区四区五区加勒比 | 国产成人一区二区三区别 | 内射白嫩少妇超碰 | 日本又色又爽又黄的a片18禁 | 大色综合色综合网站 | 国产精品久久国产三级国 | 久久久久久九九精品久 | 国产精品久久精品三级 | 美女极度色诱视频国产 | 亚拍精品一区二区三区探花 | 亚洲爆乳大丰满无码专区 | 亚洲国产精品久久久久久 | 精品无人区无码乱码毛片国产 | 亚无码乱人伦一区二区 | 国产区女主播在线观看 | 国产成人一区二区三区别 | 欧美刺激性大交 | www一区二区www免费 | 欧美日韩精品 | 色综合久久久无码网中文 | 欧美黑人性暴力猛交喷水 | 蜜桃臀无码内射一区二区三区 | 日产精品99久久久久久 | 国精产品一区二区三区 | 久久久久99精品成人片 | 欧美乱妇无乱码大黄a片 | 强伦人妻一区二区三区视频18 | 99精品国产综合久久久久五月天 | 色偷偷人人澡人人爽人人模 | 精品国产成人一区二区三区 | 大色综合色综合网站 | 成人无码精品1区2区3区免费看 | 美女张开腿让人桶 | 久久aⅴ免费观看 | 曰韩少妇内射免费播放 | 激情综合激情五月俺也去 | 国产精品久久福利网站 | 久久精品人人做人人综合试看 | 亚洲国产欧美日韩精品一区二区三区 | 久久久久人妻一区精品色欧美 | 国产舌乚八伦偷品w中 | 国产精品第一区揄拍无码 | 国产超级va在线观看视频 | 中国大陆精品视频xxxx | 亚洲国精产品一二二线 | 久久久久免费看成人影片 | 亚洲小说春色综合另类 | 欧美兽交xxxx×视频 | 精品无码av一区二区三区 | 无码免费一区二区三区 | 国产偷抇久久精品a片69 | aa片在线观看视频在线播放 | 色一情一乱一伦一区二区三欧美 | 久久精品丝袜高跟鞋 | 久久久成人毛片无码 | 无码免费一区二区三区 | 国产免费久久精品国产传媒 | 成人av无码一区二区三区 | 国产猛烈高潮尖叫视频免费 | 国产偷自视频区视频 | 丝袜足控一区二区三区 | 国产精品无套呻吟在线 | 午夜男女很黄的视频 | 精品夜夜澡人妻无码av蜜桃 | 骚片av蜜桃精品一区 | 成人精品一区二区三区中文字幕 | 久久午夜无码鲁丝片 | 麻豆md0077饥渴少妇 | 麻豆精产国品 | 色 综合 欧美 亚洲 国产 | 欧美freesex黑人又粗又大 | 亚洲乱码中文字幕在线 | 国产精品99爱免费视频 | 国产小呦泬泬99精品 | 无码人妻精品一区二区三区不卡 | 亚洲精品一区二区三区大桥未久 | 欧美xxxx黑人又粗又长 | 国产精品手机免费 | 国产精品无套呻吟在线 | av小次郎收藏 | 欧美xxxx黑人又粗又长 | 国产精品无码一区二区三区不卡 | 日本精品人妻无码77777 天堂一区人妻无码 | 精品国产精品久久一区免费式 | 久久精品成人欧美大片 | 一本加勒比波多野结衣 | 久久久久成人精品免费播放动漫 | 国产亚洲欧美日韩亚洲中文色 | 国产乱人伦偷精品视频 | 又紧又大又爽精品一区二区 | 欧洲欧美人成视频在线 | 色狠狠av一区二区三区 | 人人妻在人人 | 亚洲人成网站在线播放942 | 国产色在线 | 国产 | 亚洲精品综合一区二区三区在线 | 亚洲成a人片在线观看无码3d | 爽爽影院免费观看 | 国产成人无码一二三区视频 | 亚洲人交乣女bbw | 狠狠噜狠狠狠狠丁香五月 | 日日麻批免费40分钟无码 | 蜜桃视频韩日免费播放 | 最新版天堂资源中文官网 | 国产av剧情md精品麻豆 | 日韩av激情在线观看 | 亚洲熟熟妇xxxx | 久久午夜夜伦鲁鲁片无码免费 | 无码播放一区二区三区 | 动漫av网站免费观看 | 国产 浪潮av性色四虎 | 97精品国产97久久久久久免费 | 国产手机在线αⅴ片无码观看 | 狠狠色丁香久久婷婷综合五月 | 欧美日本精品一区二区三区 | 疯狂三人交性欧美 | 亚洲无人区一区二区三区 | 国产99久久精品一区二区 | 在线播放亚洲第一字幕 | 国产手机在线αⅴ片无码观看 | 亚洲爆乳无码专区 | 久青草影院在线观看国产 | 色一情一乱一伦一区二区三欧美 | 亚洲精品成人福利网站 | 无码一区二区三区在线观看 | 亚洲精品国产品国语在线观看 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 亚洲 激情 小说 另类 欧美 | 少妇被黑人到高潮喷出白浆 | 乌克兰少妇xxxx做受 | 精品无人国产偷自产在线 | 亚洲成av人影院在线观看 | 蜜桃视频插满18在线观看 | aⅴ亚洲 日韩 色 图网站 播放 | 亚洲精品国产a久久久久久 | 国产人妻精品午夜福利免费 | 无码一区二区三区在线观看 | 白嫩日本少妇做爰 | av在线亚洲欧洲日产一区二区 | 久久久精品国产sm最大网站 | 最近免费中文字幕中文高清百度 | 暴力强奷在线播放无码 | 亚洲国产精品久久久天堂 | 对白脏话肉麻粗话av | 日本xxxx色视频在线观看免费 | 国模大胆一区二区三区 | 伊人久久大香线蕉av一区二区 | 国产色在线 | 国产 | 亚拍精品一区二区三区探花 | 久久国内精品自在自线 | 精品乱子伦一区二区三区 | aⅴ亚洲 日韩 色 图网站 播放 | 俺去俺来也在线www色官网 | 欧美人与禽猛交狂配 | 欧美日韩色另类综合 | 亚洲中文字幕久久无码 | 性做久久久久久久久 | 日本一区二区三区免费高清 | 午夜福利一区二区三区在线观看 | 无码精品国产va在线观看dvd | 国产婷婷色一区二区三区在线 | 99久久久国产精品无码免费 | 精品国产麻豆免费人成网站 | 国产精品无码成人午夜电影 | 国产成人无码av在线影院 | 国产极品美女高潮无套在线观看 | 欧美精品免费观看二区 | 黑人粗大猛烈进出高潮视频 | 免费国产黄网站在线观看 | 九九久久精品国产免费看小说 | 色妞www精品免费视频 | 给我免费的视频在线观看 | 97se亚洲精品一区 | 5858s亚洲色大成网站www | 性欧美熟妇videofreesex | 亚洲精品一区二区三区在线 | 中文字幕av日韩精品一区二区 | 一本无码人妻在中文字幕免费 | 日韩精品久久久肉伦网站 | 成 人影片 免费观看 | 亚欧洲精品在线视频免费观看 | 麻豆人妻少妇精品无码专区 | 大屁股大乳丰满人妻 | 国产又爽又猛又粗的视频a片 | ass日本丰满熟妇pics | 一个人免费观看的www视频 | 免费无码av一区二区 | 久久99国产综合精品 | 中文字幕无码热在线视频 | 丰满人妻翻云覆雨呻吟视频 | 精品一区二区三区波多野结衣 | 成人无码视频在线观看网站 | 福利一区二区三区视频在线观看 | 欧美丰满熟妇xxxx性ppx人交 | 野外少妇愉情中文字幕 | 中文字幕+乱码+中文字幕一区 | 亚洲中文字幕成人无码 | 日韩精品无码一区二区中文字幕 | 色情久久久av熟女人妻网站 | 亚洲男人av香蕉爽爽爽爽 | 爽爽影院免费观看 | 国产成人精品视频ⅴa片软件竹菊 | 国产高清不卡无码视频 | 国产一区二区三区影院 | 国精产品一品二品国精品69xx | 久久精品视频在线看15 | 中文字幕+乱码+中文字幕一区 | 丰满肥臀大屁股熟妇激情视频 | 亚洲精品成人福利网站 | 亚洲 高清 成人 动漫 | 欧美freesex黑人又粗又大 | 欧洲极品少妇 | 成人免费视频在线观看 | 国产精品美女久久久久av爽李琼 | 亚洲国产精品毛片av不卡在线 | 免费无码一区二区三区蜜桃大 | 18无码粉嫩小泬无套在线观看 | 久久99久久99精品中文字幕 | 国产激情艳情在线看视频 | 中文无码成人免费视频在线观看 | 丝袜 中出 制服 人妻 美腿 | 欧美野外疯狂做受xxxx高潮 | 国产熟女一区二区三区四区五区 | 亲嘴扒胸摸屁股激烈网站 | 1000部夫妻午夜免费 | 亚洲娇小与黑人巨大交 | 久久天天躁狠狠躁夜夜免费观看 | 中文字幕乱码中文乱码51精品 | 中文无码成人免费视频在线观看 | 熟女俱乐部五十路六十路av | 无码人妻黑人中文字幕 | 国产人妖乱国产精品人妖 | 免费看男女做好爽好硬视频 | 国产综合色产在线精品 | 欧洲欧美人成视频在线 | 久久国内精品自在自线 | 成熟女人特级毛片www免费 | 噜噜噜亚洲色成人网站 | 婷婷五月综合激情中文字幕 | 最新国产乱人伦偷精品免费网站 | av人摸人人人澡人人超碰下载 | 午夜男女很黄的视频 | 久久久国产精品无码免费专区 | 久久久av男人的天堂 | 成人无码精品1区2区3区免费看 | 又粗又大又硬又长又爽 | 成人女人看片免费视频放人 | 我要看www免费看插插视频 | 天堂在线观看www | 国产精品久久久久久无码 | 色综合久久久无码网中文 | 欧美人妻一区二区三区 | 欧美自拍另类欧美综合图片区 | 国产精品高潮呻吟av久久4虎 | 欧美阿v高清资源不卡在线播放 | 露脸叫床粗话东北少妇 | 国语精品一区二区三区 | 日本一区二区三区免费播放 | 国产av一区二区精品久久凹凸 | 亚洲精品国偷拍自产在线观看蜜桃 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 日本xxxx色视频在线观看免费 | 国产精品久久国产三级国 | 亚洲 日韩 欧美 成人 在线观看 | 国产成人一区二区三区别 | 国产精品无码mv在线观看 | 国产精品自产拍在线观看 | 亚洲а∨天堂久久精品2021 | 亚洲成a人一区二区三区 | 亚洲欧洲日本无在线码 | 中国大陆精品视频xxxx | 人妻无码αv中文字幕久久琪琪布 | 丰满少妇弄高潮了www | 婷婷六月久久综合丁香 | www成人国产高清内射 | 久久久久久a亚洲欧洲av冫 | 精品人妻中文字幕有码在线 | 国产9 9在线 | 中文 | 大地资源网第二页免费观看 | 天堂在线观看www | 国产成人午夜福利在线播放 | 日韩在线不卡免费视频一区 | 露脸叫床粗话东北少妇 | 亚洲熟妇色xxxxx欧美老妇 | 国产精品亚洲专区无码不卡 | 露脸叫床粗话东北少妇 | 国产熟妇另类久久久久 | 18精品久久久无码午夜福利 | 国产人妻精品一区二区三区 | 又粗又大又硬毛片免费看 | 日本爽爽爽爽爽爽在线观看免 | 久久久精品欧美一区二区免费 | 国产女主播喷水视频在线观看 | 国产亚洲美女精品久久久2020 | 中文字幕无码av波多野吉衣 | 丰满护士巨好爽好大乳 | 国内少妇偷人精品视频 | 日韩无套无码精品 | 98国产精品综合一区二区三区 | 荫蒂添的好舒服视频囗交 | 久久99精品久久久久婷婷 | 精品久久8x国产免费观看 | 日日噜噜噜噜夜夜爽亚洲精品 | 一本大道伊人av久久综合 | 亚洲一区二区三区播放 | 久久国产精品二国产精品 | 精品aⅴ一区二区三区 | 国产精品毛片一区二区 | 亚洲啪av永久无码精品放毛片 | 99麻豆久久久国产精品免费 | 伊人久久大香线蕉亚洲 | 欧美性猛交xxxx富婆 | 中文字幕无码热在线视频 | 亚洲国产精品成人久久蜜臀 | 国产人妻精品一区二区三区不卡 | 中文字幕日韩精品一区二区三区 | 久久综合九色综合97网 | 成熟人妻av无码专区 | 亚洲精品无码人妻无码 | v一区无码内射国产 | √8天堂资源地址中文在线 | 牲欲强的熟妇农村老妇女视频 | 无码国模国产在线观看 | 国产精品久久久久久久9999 | 日韩欧美中文字幕公布 | 女人被男人躁得好爽免费视频 | 欧美人与动性行为视频 | 亚洲欧美色中文字幕在线 | 亚洲国精产品一二二线 | 亚洲精品一区二区三区在线 | 2020久久超碰国产精品最新 | 欧美日本免费一区二区三区 | 久久www免费人成人片 | 亚洲精品美女久久久久久久 | 国产成人综合美国十次 | 内射白嫩少妇超碰 | 女人色极品影院 | 激情综合激情五月俺也去 | 日本精品少妇一区二区三区 | 久久99久久99精品中文字幕 | 麻豆精品国产精华精华液好用吗 | 狠狠色噜噜狠狠狠7777奇米 | 2020久久超碰国产精品最新 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 精品偷自拍另类在线观看 | 最近的中文字幕在线看视频 | 一个人看的www免费视频在线观看 | 黑人粗大猛烈进出高潮视频 | 亚洲精品欧美二区三区中文字幕 | 大屁股大乳丰满人妻 | 内射白嫩少妇超碰 | 亚洲精品成人福利网站 | 好屌草这里只有精品 | 日本一卡2卡3卡四卡精品网站 | 领导边摸边吃奶边做爽在线观看 | 久久久精品成人免费观看 | 国产人妻久久精品二区三区老狼 | 人人妻人人澡人人爽欧美一区九九 | 成人片黄网站色大片免费观看 | 国产麻豆精品精东影业av网站 | 图片区 小说区 区 亚洲五月 | 少妇愉情理伦片bd | 人妻夜夜爽天天爽三区 | 兔费看少妇性l交大片免费 | 免费无码一区二区三区蜜桃大 | 亚洲国产精品毛片av不卡在线 | 97久久精品无码一区二区 | 久久精品无码一区二区三区 | 乱人伦中文视频在线观看 | 人妻无码αv中文字幕久久琪琪布 | 狠狠亚洲超碰狼人久久 | 4hu四虎永久在线观看 | 在线播放无码字幕亚洲 | 久久国产精品偷任你爽任你 | 国产精品亚洲一区二区三区喷水 | 成熟妇人a片免费看网站 | 中国女人内谢69xxxxxa片 | 无套内谢老熟女 | 国产精品-区区久久久狼 | 日本一卡二卡不卡视频查询 | 精品一区二区三区波多野结衣 | 精品厕所偷拍各类美女tp嘘嘘 | 亚洲精品国产精品乱码视色 | 狠狠躁日日躁夜夜躁2020 | 中文字幕乱码中文乱码51精品 | 欧洲vodafone精品性 | 免费无码一区二区三区蜜桃大 | 性欧美大战久久久久久久 | 国产精品久久久久久亚洲毛片 | 欧美丰满熟妇xxxx | 亚洲精品一区二区三区在线 | 久久精品人人做人人综合 | 精品欧美一区二区三区久久久 | 日产精品高潮呻吟av久久 | 天天拍夜夜添久久精品大 | 亚洲人成影院在线无码按摩店 | 日本www一道久久久免费榴莲 | 国产香蕉尹人视频在线 | 日韩少妇内射免费播放 | 亚洲精品中文字幕久久久久 | 麻豆人妻少妇精品无码专区 | 欧美 亚洲 国产 另类 | 嫩b人妻精品一区二区三区 | 成人aaa片一区国产精品 | 六月丁香婷婷色狠狠久久 | 午夜精品久久久内射近拍高清 | 久久久中文字幕日本无吗 | 一本色道婷婷久久欧美 | 精品国产一区二区三区av 性色 | 国产激情艳情在线看视频 | 中文字幕av无码一区二区三区电影 | 台湾无码一区二区 | 国产电影无码午夜在线播放 | 国产精品理论片在线观看 | 国产人妻精品一区二区三区不卡 | 亚洲国产日韩a在线播放 | 免费观看的无遮挡av | 国产黑色丝袜在线播放 | 亚洲色无码一区二区三区 | 久久精品国产99精品亚洲 | 国产色xx群视频射精 | 久久久精品成人免费观看 | 国产在线精品一区二区高清不卡 | 人人超人人超碰超国产 | 免费看男女做好爽好硬视频 | 特黄特色大片免费播放器图片 | 国产香蕉尹人综合在线观看 | 99久久人妻精品免费一区 | 丁香啪啪综合成人亚洲 | 久久久中文字幕日本无吗 | 欧美日韩一区二区综合 | 欧美黑人乱大交 | 超碰97人人做人人爱少妇 | 麻豆国产人妻欲求不满 | 久久亚洲精品中文字幕无男同 | 亚洲日本va午夜在线电影 | 一本久道久久综合婷婷五月 | 啦啦啦www在线观看免费视频 | 国产精品亚洲а∨无码播放麻豆 | 日韩成人一区二区三区在线观看 | 日韩欧美群交p片內射中文 | 好屌草这里只有精品 | 国产suv精品一区二区五 | 久久人人爽人人爽人人片av高清 | 亚洲天堂2017无码中文 | 又色又爽又黄的美女裸体网站 | 国产极品美女高潮无套在线观看 | 六十路熟妇乱子伦 | 精品久久久无码人妻字幂 | 国产农村乱对白刺激视频 | 中文字幕无码热在线视频 | 亚洲国产成人a精品不卡在线 | www一区二区www免费 | 国产精品无码一区二区三区不卡 | aa片在线观看视频在线播放 | 色综合久久网 | 高清国产亚洲精品自在久久 | 色老头在线一区二区三区 | 国语精品一区二区三区 | 精品久久久久久人妻无码中文字幕 | 国产综合色产在线精品 | 学生妹亚洲一区二区 | 国产高潮视频在线观看 | 国产av人人夜夜澡人人爽麻豆 | 国产成人无码av片在线观看不卡 | 人妻插b视频一区二区三区 | 国产精品无套呻吟在线 | 精品人妻av区 | 久久精品国产99久久6动漫 | 人妻少妇精品无码专区二区 | 久久久精品国产sm最大网站 | 久久精品国产精品国产精品污 | a在线亚洲男人的天堂 | 丝袜美腿亚洲一区二区 | 麻豆md0077饥渴少妇 | 久久综合久久自在自线精品自 | 无码成人精品区在线观看 | av无码电影一区二区三区 | 久久久久久国产精品无码下载 | 国产熟妇另类久久久久 | 日韩欧美成人免费观看 | 美女张开腿让人桶 | 国产精品内射视频免费 | 香蕉久久久久久av成人 | 精品欧美一区二区三区久久久 | 欧美真人作爱免费视频 | 丝袜足控一区二区三区 | 国产乱人伦av在线无码 | 国内精品人妻无码久久久影院蜜桃 | 亚洲一区二区三区在线观看网站 | 亚洲午夜无码久久 | √天堂中文官网8在线 | 日本www一道久久久免费榴莲 | 亲嘴扒胸摸屁股激烈网站 | 永久黄网站色视频免费直播 | 亚洲中文字幕va福利 | 内射后入在线观看一区 | 亚洲国产精品美女久久久久 | 天天摸天天碰天天添 | 131美女爱做视频 | 午夜精品久久久久久久 | av人摸人人人澡人人超碰下载 | 国产精品永久免费视频 | 少妇人妻av毛片在线看 | 免费看少妇作爱视频 | 久久久婷婷五月亚洲97号色 | 国产午夜亚洲精品不卡下载 | 成人av无码一区二区三区 | 中文无码成人免费视频在线观看 | 精品少妇爆乳无码av无码专区 | 麻豆精品国产精华精华液好用吗 | 欧美一区二区三区视频在线观看 | 未满小14洗澡无码视频网站 | 亚洲伊人久久精品影院 | 人妻少妇被猛烈进入中文字幕 | 亚洲中文字幕无码中字 | av无码不卡在线观看免费 | 欧美怡红院免费全部视频 | 奇米影视7777久久精品人人爽 | 精品久久8x国产免费观看 | 亚洲爆乳精品无码一区二区三区 | 久久综合九色综合欧美狠狠 | 国产片av国语在线观看 | 国产乱人偷精品人妻a片 | 欧洲精品码一区二区三区免费看 | 波多野结衣aⅴ在线 | 成人精品天堂一区二区三区 | 精品久久久久久人妻无码中文字幕 | 白嫩日本少妇做爰 | 在教室伦流澡到高潮hnp视频 | 国产又爽又黄又刺激的视频 | 捆绑白丝粉色jk震动捧喷白浆 | 亚洲精品国产第一综合99久久 | 综合网日日天干夜夜久久 | 国产疯狂伦交大片 | 无码纯肉视频在线观看 | 76少妇精品导航 | 亚洲欧美中文字幕5发布 | 精品欧洲av无码一区二区三区 | 国产极品美女高潮无套在线观看 | 亚洲爆乳精品无码一区二区三区 | 免费播放一区二区三区 | 免费网站看v片在线18禁无码 | 性色欲网站人妻丰满中文久久不卡 | 久久伊人色av天堂九九小黄鸭 | a片在线免费观看 | 国产成人精品必看 | 亚洲成色在线综合网站 | 国产无套内射久久久国产 | 日本护士xxxxhd少妇 | 熟女体下毛毛黑森林 | 色综合久久久久综合一本到桃花网 | 国产凸凹视频一区二区 | 女人被男人爽到呻吟的视频 | 少妇厨房愉情理9仑片视频 | 亚洲狠狠婷婷综合久久 | 免费视频欧美无人区码 | 丝袜美腿亚洲一区二区 | 中国女人内谢69xxxxxa片 | 高清不卡一区二区三区 | 四虎国产精品一区二区 | 又大又硬又黄的免费视频 | 无遮无挡爽爽免费视频 | 国产无套内射久久久国产 | 精品 日韩 国产 欧美 视频 | 国产欧美亚洲精品a | 日韩欧美中文字幕在线三区 | 久久无码人妻影院 | 国产一区二区三区日韩精品 | 久在线观看福利视频 | 中文字幕乱妇无码av在线 | 成人无码视频在线观看网站 | 精品夜夜澡人妻无码av蜜桃 | 2020久久香蕉国产线看观看 | 国产精品久久久久久久9999 | 一本久道久久综合婷婷五月 | 亚洲日本va中文字幕 | 国模大胆一区二区三区 | 国产九九九九九九九a片 | 欧美黑人性暴力猛交喷水 | 久久久久久a亚洲欧洲av冫 | 久久亚洲国产成人精品性色 | 人妻尝试又大又粗久久 | 图片小说视频一区二区 |