編碼的世界 / 優質文選 / 文明

2021總結web滲透測試崗位面試題(個人親身經歷的總結)


2022年4月28日
-   

目錄 
1·拿到一個待檢測的站,你覺得應該先做什麼?
2·xss
3·sql注入
4·真實ip
5.多地ping
6·應急響應
7·代碼注入漏洞
8·sql注入如何讀寫文件,二次注入,防禦方式
9·csrf和xss區別
10·文件上傳的後段繞過,防禦方式
11·中間件漏洞——IIS、Apache、nginx、Lighttpd、Tomcat
12·xxe與ssrf
13·rce講一下,php函數eval和system popen
14·緩沖區溢出
15·數據庫提權(mysql,mssql,access,oracle)
16·常見的php序列化與反序列化函數
17·如何突破注入時字符被轉義?
18·某個防注入系統,在注入時會提示:
19·如何利用這個防注入系統拿shell?
20·說出至少三種業務邏輯漏洞
21·寬字節注入產生原理以及根本原因
22·代替空格的方法
23·mysql的網站注入,5.0以上和5.0以下有什麼區別
24·TCP/IP——TCP三次握手的過程以及對應的狀態轉換
25· TCP和UDP協議區別
26·流量分析
27·防火牆
28·登錄框
1·拿到一個待檢測的站,你覺得應該先做什麼?
  • 首先明確目標:測試目標的ip(nslookup,ping),域名,
  • 規則:滲透到什麼程度,能否提權
  • 信息收集

a、獲取域名的whois信息,獲取注冊者郵箱姓名電話等,丟社工庫裏看看有沒有泄露密碼,然後嘗試用泄露的密碼進行登錄後台。用郵箱做關鍵詞進行丟進搜索引擎。利用搜索到的關聯信息找出其他郵箱進而得到常用社交賬號。社工找出社交賬號,裏面或許會找出管理員設置密碼的習慣 。利用已有信息生成專用字典。
b、查詢服務器旁站以及子域名站點,因為主站一般比較難,所以先看看旁站有沒有通用性的cms或者其他漏洞。
c、查看服務器操作系統版本,web中間件,看看是否存在已知的漏洞,比如IIS,APACHE,NGINX的解析漏洞
d、查看IP,進行IP地址端口掃描,對響應的端口進行漏洞探測,比如 rsync,心zang出血,mysql,ftp,ssh弱口令等。
常見端口 。 21 ftp 文件傳輸 22ssh安全登錄 3306 mysql 3389遠程桌面 80http 443https 139,445smb文件共享
e、掃描網站目錄結構,看看是否可以遍歷目錄,或者敏感文件泄漏,比如php探針 f、google hack 進一步探測網站的信息,後台,敏感文件
  • 漏洞掃描

開始檢測漏洞,手動+代理 如XSS,cSRF,sql注入,代碼執行,命令執行,越權訪問,目錄讀取,任意文件讀取,下載,文件包含,遠程命令執行,弱口令,上傳,編輯器漏洞,暴力破解等
  • 漏洞利用 利用以上的方式拿到webshell,或者其他權限
  • 權限提升 提權服務器,比如windows下mysql的udf提權,serv-u提權,windows低版本的漏洞,如iis6,pr,巴西烤肉,linux髒牛漏洞,linux內核版本漏洞提權,linux下的mysql system提權以及oracle低權限提權

  • 日志清理(日志,history,訪問ip,上傳文件,是否有留後門)
  • 總結報告及修複方案

2·xss
一、什麼是 XSS
跨站腳本攻擊,XSS屬於客戶端攻擊,受害者最終是用戶,
XSS攻擊最終目的是在網面插入js代碼,而且js能實現什麼,xss就能獲取什麼。比如彈出窗口,盜取用戶Cookie,廢掉頁面,導航到惡意網站!更高端的XSS代碼完全可以進行監控你的鍵盤操作,模仿Windows注銷界面,誘導你輸入開機密碼。
二、XSS漏洞出現的原因
程序對輸入和輸出的控制不夠嚴格,導致腳本輸入後,在前端時被瀏覽器當作有效代碼解析執行從而產生危害.
三、XSS的危害
1、劫持用戶cookie信息
2、“框架釣魚”。操作網頁中的DOM樹結構和內容,在網頁中通過JS腳本,生成虛假的頁面,欺騙用戶執行操作,而用戶所有的輸入內容都會被發送到攻擊者的服務器上。
3、掛馬(水坑攻擊)ms14_064漏洞
4、有局限性的鍵盤記錄
四、 XSS分類
反射型,儲存型,dom型
五、XSS測試方法
1、工具掃描:APPscan、AWVS 2、手工測試:Burpsuite、firefox(hackbar)、XSSER XSSF
六。防禦
前端參數過濾
3·sql注入
一。什麼是sql注入
SQL注入是將惡意的SQL查詢語句輸入參數中的攻擊,之後再將這些參數傳遞給後台的sql服務器加以解析和執行,再返回的過程
二。出現原因
  • ①轉義字符處理不合適;
  • ②不安全的數據庫配置;
  • ③不合理的查詢集處理;
  • ④不當的錯誤處理;

⑤多個提交處理不當。
三。危害
  • 數據庫信息泄漏:數據庫中存放的用戶的隱私信息的泄露。
  • 網頁篡改:通過操作數據庫對特定網頁進行篡改。
  • 網站被掛馬,傳播惡意軟件:修改數據庫一些字段的值,嵌入網馬鏈接,進行掛馬攻擊。
  • 數據庫被惡意操作:數據庫服務器被攻擊,數據庫的系統管理員帳戶被竄改。
  • 服務器被遠程控制,被安裝後門。經由數據庫服務器提供的操作系統支持,讓黑客得以修改或控制操作系統。
  • 破壞硬盤數據,癱瘓全系統。

四。類型
  • 最基礎的注入-union注入攻擊
  • Boolean注入攻擊-布爾盲注
  • 報錯注入攻擊
  • 時間注入攻擊-時間盲注
  • 二次注入攻擊
  • 寬字節注入攻擊
  • base64注入攻擊

五。測試方法
1、工具掃描:APPscan、AWVS ,X-ray 2、手工測試:bs ,sqlmap,
六。預防
  • 首先,盡量避免使用常見的數據庫名和數據庫結構。
  • 正則表達式
  • 字符串過濾
  • 普通用戶權限不要太高

4·真實ip
1.ping,nslookup,子域名:通過查詢子域名對應的ip地址,然後擴展查詢ip所在的C段地址,在C段地址中可能發現主站的真實ip——站長之家。
2.以會員身份發郵件,訂閱服務收到通知查ip(前提是目標站使用的郵件服務是自己服務站,而不是第三方)
3.域名解析歷史
假設以前某個時間點沒有使用CDN,通過查詢目標域名的dns解析歷史,可能得到其真實IP,提供該歷史查詢的網站如微步在線、dnsdb、netcraft、Viewdns、CDN查詢IP, ip138查詢:https://site.ip138.com/  等等。
追蹤平台:SecurityTrails
5.多地ping
通過一些第三方網站的分布式多地ping域名功能,如果得到的ip唯一或者只有少數幾個結果ip,則為真實ip。類似網站:站長工具、just ping等。
5.zmap掃描
3.使用國外主機解析域名
一些CDN可能只做了國內的線路,所以使用國外主機可以獲取到真實IP,直接使用多地Ping即可:站長之家:http://ping.chinaz.com/
6·應急響應
1、工具列表
Pchunter 惡意代碼檢測工具
Process Explorer 惡意代碼檢測工具
Autoruns 顯示Windows啟動時自動運行的程序
D盾 WebShell查殺
Logparser 日志分析工具
Windows的自帶命令集沒有linux的強大,不能完全滿足應急響應時的處置工作,所以一般來說我們都需要借助外部工具進行惡意後門分析
2、檢查項目
  • 注冊表啟動項 查看注冊表中的自啟動項
  • 惡意進程 查看是否存在可疑進程和用戶
  • 系統服務 查看是否存在可疑系統服務
  • 網絡連接 查看是否存在可疑的網絡連接
  • 計劃任務 查看是否存在可疑計劃任務條目

上述的排查項,全部可以使用PChunter和Autoruns完成。
7·代碼注入漏洞
1.eval()
eval($_REQUEST['pass']);
2.preg_replace()——php5.3
$a = $_REQUEST['passs'];
preg_replace($a);
@preg_replace('//e',base64_decode($_REQUEST['pass']),'');
3.assert()——php5 php7都可以用
assert($_REQUEST["PASS"]);
$a=$_GET['1'];$b=$_POST['2'];
4.creat_function()
$newfunc = creat_function('',$_REQUEST['pass'].";");
echo "New anonymous function: $newfunc
";
$newfunc();
5.call_user_func()
call_user_func(create_function(null,'assert($_REQUEST[pass]);'));
6.call_user_func_array()
代碼混淆免殺
8·sql注入如何讀寫文件,二次注入,防禦方式
  • 讀:select load_file
  • 寫:into outfile

union select 1,'<?php @eval($_POST["pass"])?>',3 into outfile 'C:\wwwhtmlshell.php'
9·csrf和xss區別
  • XSS是實現CSRF的諸多手段中的一種
  • XSS是跨站腳本攻擊 是利用站內的信任用戶,盜取cookie發給xss平台
  • CSRF是跨站請求偽造攻擊,csrf是通過偽裝成受信任用戶請求受信任的網站,騙取用戶自願發起的確認。
  • CSRF需要登陸後操作,XSS不需要
  • CSRF是請求頁面api來實現非法操作,XSS是向當前頁面植入js腳本來修改頁面內容。

xss修複方式:對字符實體進行轉義、使用HTTP Only來禁止JavaScript讀取Cookie值、輸入時校驗、瀏覽器與Web應用端采用相同的字符編碼。
csrf修複方式:篩選出需要防範CSRF的頁面然後嵌入Token、再次輸入密碼、檢驗Referer
10·文件上傳的後段繞過,防禦方式
前段更改js限制
大小寫 雙寫 代理
點空格(liunx不用)
::¥date
mine類型更改type元素
文件頭信息繞過-gif89a
偽圖片上傳 copy/b 圖+p 馬(需要可以解析php文件)
條件競爭(多線程對同一共享資源操作)
00截斷
11·中間件漏洞——IIS、Apache、nginx、Lighttpd、Tomcat
  • iis 6.0 文件解析漏洞

1.asa,1.asp文件夾下的文件都當作asp文件解析
1.asp;1.png也會當作asp解析
  • apache:文件擁有多個擴展名,從右往左解析,直到文件可以解析為止
  • nginx:

test.jpg/test.php當php解析
12·xxe與ssrf
xxe:應用程序解析xml時候沒有禁止外部實體的加載,導致可家在外部文件,造成文件讀取,命令執行,內網端口掃描,dos攻擊等危害
ssrf:服務器提供了從其他服務器獲取數據的功能,但是沒有對外網目標地址做過過濾限制
13·rce講一下,php函數eval和system popen
eval代碼執行
system popen命令執行ipconfig
14·緩沖區溢出
通過往程序的緩沖區寫超出其長度的內容,造成緩沖區的溢出,從而破壞程序的堆棧,使程序轉而執行其它指令,以達到攻擊的目的。造成緩沖區溢出的原因是程序中沒有仔細檢查用戶輸入的參數。
15·數據庫提權(mysql,mssql,access,oracle)
  • 1. 查看網站連接數據庫配置文件————config.ini.php
  • 2. 查看數據庫安裝路徑下的mysql文件,md5解密
  • 3. 暴力破解(需要mysql開啟遠程連接)
  • 4. udf提權(Mysql_UDF提權_GuetSec_新浪博客)

配合工具(暗月)上傳
  • 5.mof漏洞提權——僅支持2003及以上,很少用

1.工具建號,提權,找個可寫目錄上傳mof文件
2.執行sql上傳文件
select load_file('C:\wmpub\moon.mof') into dumpfile 'c:/windows/system32/wbem/mof/moon.mof';
16·常見的php序列化與反序列化函數
serialize unserialize
json_encode json_decode
var_export eval
wddx_serialize_value 和 wddx deserialize
17·如何突破注入時字符被轉義?
寬字符注入 hex編碼繞過
18·某個防注入系統,在注入時會提示:
系統檢測到你有非法注入的行為。
已記錄您的ip xx.xx.xx.xx
時間:2016:01-23
提交頁面:test.asp?id=15
提交內容:and 1=1
19·如何利用這個防注入系統拿shell?
在URL裏面直接提交一句話,這樣網站就把你的一句話也記錄進數據庫文件了 這個時候可以嘗試尋找網站的配置文件 直接上菜刀鏈接。
20·說出至少三種業務邏輯漏洞
  • 身份認證安全

1)暴力破解
2)撞庫
3)cookie偽造
  • 數據篡改

1)郵箱篡改
2)訂單ID,用戶ID,手機號,商品編號,支付金額商品數量篡改
  • 未授權訪問

1)橫向越權
2)縱向越權
  • 密碼找回

用戶憑證暴力破解 當當網 : 進行驗證碼的爆破 只有4位的驗證碼比較好跑出來
用戶憑證暴力破解 微信:微信密碼重置漏洞
  • 驗證碼突破

常見類型:驗證碼暴力破解、驗證碼重複使用、驗證碼繞過、驗證碼回顯、驗證碼自動識別
  • 接口調用安全

21·寬字節注入產生原理以及根本原因
當php開啟gpc或者使用addslashes函數時,單引號'被加上反斜杠',其中的URL編碼為%5C,我們傳入%df',等價於%df%5C',此時若程序的默認字符集是GBK,mysql用GBK編碼時會認為%df%5C是一個寬字符縗,於是%df%5C'便等價於縗',產生注入。
22·代替空格的方法
%0a、%0b、%a0 等 /**/ 等注釋符 <>
23·mysql的網站注入,5.0以上和5.0以下有什麼區別
5.0以下沒有information_schema這個系統表,無法列表名等,只能暴力跑表名。
5.0以下是多用戶單操作,5.0以上是多用戶多操做。
24·TCP/IP——TCP三次握手的過程以及對應的狀態轉換
第一次握手:建立連接時,客戶端A發送SYN包(SYN=j)到服務器B,並進入SYN_SEND狀態,等待服務器B確認。
第二次握手:服務器B收到SYN包,必須確認客戶A的SYN(ACK=j+1),同時自己也發送一個SYN包(SYN=k),即SYN+ACK包,此時服務器B進入SYN_RECV狀態。
第三次握手:客戶端A收到服務器B的SYN+ACK包,向服務器B發送確認包ACK(ACK=k+1),此包發送完畢,完成三次握手。
25· TCP和UDP協議區別
1) TCP提供面向連接的傳輸,通信前要先建立連接(三次握手機制); UDP提供無連接的傳輸,通信前不需要建立連接。
2) TCP提供可靠的傳輸(有序,無差錯,不丟失,不重複); UDP提供不可靠的傳輸。
3) TCP面向字節流的傳輸,因此它能將信息分割成組,並在接收端將其重組; UDP是面向數據報的傳輸,沒有分組開銷。
4) TCP提供擁塞控制和流量控制機制; UDP不提供擁塞控制和流量控制機制。
26·流量分析
27·防火牆
28·登錄框
暴力破解
1. 指定用戶名爆破密碼
2. 指定密碼爆破用戶名
SQL注入
1. 萬能密碼
2.SQL注入
XSS+CSRF
任意用戶注冊-如果登陸框附近存在用戶注冊功能時,可以嘗試
1. 失效的身份認證
2. 驗證碼可暴破
任意密碼重置
CSRF重新綁定手機號、郵箱號,
重新綁定時,用戶身份可控,如最後的請求包可以通過修改用戶id來控制綁定的用戶

短信轟炸
1. 單個用戶短信炸彈
2. 輪詢用戶

熱門文章