騰訊2016實習招聘-安全崗筆試題答案詳細解釋
原文來源於:http://blog.csdn.net/qq_29277155/article/details/51628939 謝謝分享!~
0x00前言
鑑於曾經做過騰訊找招聘-安全技術筆試題目,故留此一記,以作懷念。此外,網上也有公佈的相關的答案,但是其中有些題目稍有錯誤或者解釋不全,所以趁機寫上一記。
0x01 開始
2016年4月2日晚上7:00到9:00,騰訊2016實習招聘-安全技術的筆試題確實考到很多基礎知識。該筆試題有兩部分。第一部分是30道不定項選擇題、10道簡答題和5道判斷題,題量是45,限時80分鐘。第二部分是2道分析題,限時40分鐘。有下面統一給出答案和為每一題做出解釋。
0x02 不定項選擇題-30
1 應用程式開發過程中,下面那些開發習慣可能導致安全漏洞?()
A 在程式程式碼中列印日誌輸出敏感資訊方便調式
B 在使用陣列前判斷是否越界
C 在生成隨機數前使用當前時間設定隨機數種子
D 設定配置檔案許可權為rw-rw-rw-
答案:AD
解釋:
A 為日誌包含敏感資訊,容易洩露賬號密碼介面資料等資訊,可能產生安全漏洞。
B 為陣列大小問題,陣列不越界,可防止溢位安全漏洞。因此是安全的。
C 用當前時間來作為隨機數種子的話,隨著時間的不同,生成的隨機數也會不同。因此是安全的。
D 為配置檔案的許可權問題,rw為可以讀取可以寫入。第一個rw-為檔案所屬使用者、第二個rw-為使用者所在組、第三個rw-為其它使用者的讀寫。可以導致非法寫入和越權訪問,可能產生安全漏洞。
2 以下哪些工具提供攔截和修改HTTP資料包的功能?()
A Burpsuite
B Hackbar
C Fiddler
D Nmap
答案:AC
解釋:
A Burpsuite是可以通過設定瀏覽器代理進行網路滲透的,用於攻擊Web應用的整合平臺。可以進行攔截和修改HTTP資料包。
B Hackbar 是用來進行sql注入、測試XSS和加解密字串的。可以用來快速構建一個HTTP請求(GET/POST)等。但是不能攔截和修改HTTP資料包。
C Fiddler是一個http協議除錯代理工具,它能夠記錄並檢查所有你的電腦和網際網路之間的http通訊。可以進行攔截和修改HTTP資料包。
D Nmap是一款網路埠掃描工具,可以掃描各種埠及其服務甚至是漏洞檢測。但是不能不能攔截和修改HTTP資料包。
3 壞人通過XSS漏洞獲取到QQ使用者的身份後,可以進行一下操作?()
A 偷取Q 幣
B 控制使用者攝像頭
C 劫持
D 進入QQ空間
答案:D
解釋:
XSS漏洞是獲取使用者cookie的,即是獲得使用者cookie等敏感資訊。
A 偷取Q幣。需要使用者進行確認或者輸入密碼,具有很強的互動性。因此無法進行。
B 控制使用者使用者攝像頭。因為開啟攝像頭,需要使用者手動確認。因此無法進行。
C 劫持微信使用者。因為微信登入會驗證手機資訊甚至簡訊驗證,並且只能同時在一個裝置上登入一個微信賬號。因此無法進行。
D 進入QQ空間。 因為登入QQ空間是不需要使用者互動操作的,並且使用cookie獲得使用者身份後,就好像正常使用者一樣可以檢視QQ空間,QQ資料等。
4 以下哪些工具可以抓取HTTP資料包?()
A Burpsuite
B Wireshark
C Fiddler
D Nmap
答案:ABC
解釋:
A Burpsuite是可以通過設定瀏覽器代理進行網路滲透的,用於攻擊Web應用的整合平臺。因此是可以HTTP資料包。
B Wireshark是監聽網路介面資料的,可以設定監聽某個網絡卡來監聽各種網路資料包。因此是可以抓取HTTP資料包。
C Fiddler是一個http協議除錯代理工具,它能夠記錄並檢查所有你的電腦和網際網路之間的http通訊。因此是可以抓取HTTP資料包。
D Nmap是一款網路埠掃描工具,可以掃描各種埠及其服務甚至是漏洞檢測。但是不能抓取HTTP資料包。
5 以下哪些說法是正確的?()
A iOS系統從IOS6開始引入kernelASLR安全措施
B 主流的Iphone手機內建了AES及RSA硬體加速解密引擎
C 安卓系統採用了安全引導鏈(secureboot chain ),而IOS系統則未採用
D Android 4.1 系統預設啟用了記憶體ASLR
答案:ABD
解釋:
A IOS系統從IOS6開始引入kernelASLR安全措施。情況屬實。因此是正確的。
B 主流的Iphone手機內建了AES及RSA硬體加速解密引擎。情況屬實。因此是正確的。
C 安卓系統採用了安全引導鏈(secureboot chain ),而IOS系統則未採用。情況不屬實,原因是IOS系統也採用了安全引導鏈。因此是不正確的。
D Android 4.1 系統預設啟用了記憶體ASLR。情況屬實。因此是正確的。
6 以下哪些是常見的PHP ’ 一句話木馬“ ? ()
A < ?php assert ($_POST(value));?>
B <%execute(request("value"))%>
C <?php @eval ($_POST(value)):?>
D<%if(request.getParameter("!")!=null)(newjavio.FileOutputStream(application.getRealPath("\\") + request.getParmeter("!"))).write (request.getParameter("t").getByte())):%>
答案:ABCD
解釋:
A assert用來判斷一個表示式是否成立,可以遠端連線。可為PHP一句話木馬。
B execute 用來執行表示式,可以執行某些操作。可為asp一句話木馬。
C eval 實現php對錶達式的計算和執行,可以用來執行某些操作。可為PHP一句話木馬。
D 通過判斷執行檔案輸出寫入,故為一句話木馬。
7 以下哪個說法是正確的?()
A xcodeghost 是一種可以直接遠端控制手機控制權的攻擊方式
B wormhole是一種可以直接遠端控制手機控制權的攻擊方式
C ” 心臟滴血“ 是一種可以直接遠端控制手機控制權的攻擊方式
D shellshock是一種可以直接遠端控制手機控制權的攻擊方式
答案:A
解釋:
A 通過Xcode從源頭注入病毒XcodeGhost,是一種針對蘋果應用開發工具Xcode的病毒。於2015年9月被發現。它的初始傳播途徑主要是通過非官方下載的Xcode 傳播,通過CoreService 庫檔案進行感染。當應用開發者使用帶毒的Xcode工作時,編譯出的App 都將被注入病毒程式碼,從而產生眾多帶毒APP。使用者在iOS裝置上安裝了被感染的APP後,裝置在接入網際網路時APP會回連惡意URL地址init.icloud-analysis.com,並向該URL上傳敏感資訊(如裝置型號、iOS 版本)。回連的C&C伺服器會根據獲取到的裝置資訊下發控制指令,從而完全控制裝置,可以在受控裝置上執行開啟網頁、傳送簡訊、撥打電話、開啟裝置上所安裝的其他APP等操作。
因此xcodeghost是一種可以直接遠端控制手機控制權的攻擊方式。
B 百度SDK蟲洞漏洞相關的核心程式碼存在於SDK的com.baidu.hello.moplus中,所有使用該SDK開發的APP,均會開放40310埠響應資料請求。雖然請求限制在本地進行,但攻擊者仍然很容易繞過,這可能導致使用者資料的大量洩漏。百度旗下應用安裝到手機上之後,它會開啟40310/6259埠,任何IP都可以連線該埠。被百度稱為immortalservice的HTTP服務監視來自該埠的資訊,之所以被稱為immortal(不朽),原因是它“會在後臺一直執行,並且如果你手機中裝了多個有wormhole漏洞的app,這些app會時刻檢查40310/6259埠,如果那個監聽40310/6259埠的app被解除安裝了,另一個app會 立馬啟動服務重新監聽40310/6259埠。 ”連線埠的IP需要驗證一些標頭檔案,但很容易通過偽裝繞過。成功與該服務進行通訊後,就可以通過URL給APP下達指令,攻擊者可以從使用者裝置遠端獲取位置資訊,搜尋框資訊,包資訊和其它敏感資料。它可以在使用者裝置上遠端新增聯絡人,掃描下載檔案,上傳特定檔案。所有這些行為只需簡單的通過傳送HTTP請求便可以完成。因為在本地HTTP服務(由Moplus
SDK建立的)中沒有進行身份認證,使得攻擊行為不僅可以通過app開發者,也可以由任何其它人來觸發。只需一個命令,攻擊者或者網路罪犯就可以遠端控制感染的裝置。此外,他們只需要使用nmap進行全網段掃描,測試TCP埠6259或40310的狀態,埠狀態為OPEN的所有Android裝置都可能被遠端控制。需要注意的是在同一個區域網內,以及在同一個的3G/ 4G網路的所有裝置都可以被攻擊。
因此wormhole是一種可以直接遠端控制手機控制權的攻擊方式。
C Heartbleed漏洞,這項嚴重缺陷(CVE-2014-0160)的產生是由於未能在memcpy()呼叫受害使用者輸入內容作為長度引數之前正確進行邊界檢查。攻擊者可以追蹤OpenSSL所分配的64KB快取、將超出必要範圍的位元組資訊複製到快取當中再返回快取內容,這樣一來受害者的記憶體內容就會以每次64KB的速度進行洩露。通過讀取網路伺服器記憶體,攻擊者可以訪問敏感資料,從而危及伺服器及使用者的安全。敏感的安全資料,如伺服器的專用主金鑰,可使攻擊者在伺服器和客戶端未使用完全正向保密時,通過被動中間人攻擊解密當前的或已儲存的傳輸資料,或在通訊方使用完全正向保密的情況下,發動主動中間人攻擊。攻擊者無法控制伺服器返回的資料,因為伺服器會響應隨機的記憶體塊。[8]
漏洞還可能暴露其他使用者的敏感請求和響應,包括使用者任何形式的POST請求資料,會話cookie和密碼,這能使攻擊者可以劫持其他使用者的服務身份。在其披露時,約有17%或五十萬通過認證機構認證的網際網路安全網路伺服器被認為容易受到攻擊。電子前哨基金會,ArsTechnica,和布魯斯·施奈爾都認為心臟出血漏洞是“災難性的”。[8]
漏洞讓特定版本的openSSL成為無需鑰匙即可開啟的“廢鎖”,入侵者每次可以翻檢戶主的64K資訊,只要有足夠的耐心和時間,就可以翻檢足夠多的資料,拼湊出戶主的銀行密碼、私信等敏感資料。對此安全專家提醒,網友在網站完成修復升級後,仍需及時修改原來的密碼。
因此 ” 心臟滴血“ 不是一種可以直接遠端控制手機控制權的攻擊方式,而是一種竊取使用者資訊的攻擊方式。
D Shellshock,又稱Bashdoor,是在Unix中廣泛使用的Bash shell中的一個安全漏洞,首次於2014年9月24日公開。許多網際網路守護程序,如網頁伺服器,使用bash來處理某些命令,從而允許攻擊者在易受攻擊的Bash版本上執行任意程式碼。這可使攻擊者在未授權的情況下訪問計算機系統。執行命令envx='() { :;}; echo Shellshock' bash -c "exit"如果有輸出,就說明存在該漏洞。只要是能通過某種手段為bash傳遞環境變數的程式都受此影響。當然最典型的的就是bash寫的CGI程式了,客戶端通過在請求字串里加入構造的值,就可以輕鬆攻擊執行CGI的伺服器。
因此shellshockbu不是一種可以直接遠端控制手機控制權的攻擊方式,而是可以直接遠端控制伺服器控制權的攻擊方式。
8 在同一個bash 下依次執行
[email protected]:~/Desktop# whoami
root
[email protected]:~/Desktop# function whoami() { echo 1;}
[email protected]:~/Desktop# whoami
最後一次執行的whoami 的結果是什麼?()
A root
B 1
C echo 1
D echo 1;
答案:B
解釋:第一次執行whoami 是正常顯示 root.。functionwhoami() { echo 1;} 通過定義函式whoami , 使得whoami 是一個函式,而初始化值為echo 1 ,而echo 1 的執行結果是1。也就是說,通過呼叫函式whoami 並且初始化(執行echo函式),所以輸出結果為1。
9 以下哪個攻擊可用來執行ddos攻擊?()
A 菜刀
B WSI
C Dosend
D Chkrootkit
答案:C
解釋:
A 中國菜刀是一款專業的網站管理軟體。
B WSI是PHP注入工具。
C Dosend是一款Linux發包攻擊工具,可用來實現DDOS攻擊。參考連結為http://download.csdn.net/detail/linghuncangsang/6664547
D chkrootkit是用來檢測rootkit的。
10 以下哪些伺服器曾被發現檔案解析漏洞?()
A Apache
B IIS
C nginx
D squid
答案:ABC
A Apache解析漏洞。它 是從右到左開始判斷解析,如果為不可識別解析,就再往左判斷.
比如upupimage.php.owf.rar “.owf”和”.rar”?這兩種字尾是apache不可識別解析,apache就會把upupimage.php.owf.rar解析成php.
B IIS 解析漏洞。一是IIS5.x/6.0中的/xx.asp/xx.jpg ,網站下建立資料夾的名字為.asp、.asa 的資料夾,其目錄內的任何副檔名的檔案都被IIS當作asp檔案來解析並執行。
二 是123.asp;.jpg會被伺服器看成是123.asp,IIS6.0 預設的可執行檔案除了asp還包含這三種/upupimage.asa/upupimage.cer /upupimage.cdx
C nginx解析漏洞。一是nginx預設Fast-CGI開啟狀況下,黑闊上傳一個名字為upupimage.jpg,內容為<?PHPfputs(fopen('shell.php','w'),'<?php eval($_POST[cmd])?>');?>的檔案,然後訪問upupimage.jpg/.php,在這個目錄下就會生成一句話木馬 shell.php。
二是Nginx在圖片中嵌入PHP程式碼然後通過訪問xxx.jpg%00.php來執行其中的程式碼,影響版:0.5.,0.6.,0.7 <= 0.7.65, 0.8 <= 0.8.37
D Squid爆出來的更多是拒絕服務攻擊。它是一個高效的Web快取及代理程式,最初是為Unix平臺開發的,現在也被移植到Linux和大多數的Unix類系統中,最新的Squid可以執行在Windows平臺下。
11 以下命令可以用來獲取DNS記錄的是?()
A traceroute
B ping
C dig
D who
答案:C
解釋:
A traceroute 。該命令為追蹤路由情況。
B ping 。該命令為檢測網路是否通暢。
C dig 。linux下查詢域名解析有兩種選擇,nslookup或者dig,如 digwww.csdn.net
D who 。該命令為查詢登入linux系統的使用者數目。
12 linux 環境下,查詢日誌檔案最後100行資料,正確的方式是?()
A mv -100 log
B grep -100 log
C cat -100 log
D tail -100 log
答案:D
解釋:
A mv -100 log 。該為mv命令,是移動檔案或者資料夾的,與檢視日誌無關。
B grep -100 log 。該為grep命令,是篩選或者匹配關鍵詞的,與檢視日誌無關,但是可以配合其他命令進行檢視日誌。
C cat -100 log 。該命令為順序檢視命令,檢視log的前一百行資料(包括空行)。
D tail -100 log。 該命令為倒序檢視名,查詢log檔案的最後100行資料。故選擇D
13 Firefox瀏覽器外掛Hacbar提供的功能()
A POST方式提交資料
B BASE64編碼和解碼
C 代理修改WEB頁面的內容
D修改瀏覽器訪問referer
答案:ABD
解釋:
A POST方式提交資料。通過在hackbar勾選”Enablepost data",hackbar可以顯出示該功能。
B BASE64編碼和解碼。通過在hackbarc選單欄”Encoding",hackbar可以顯出示該功能。
C 代理修改WEB頁面的內容。該功能屬於外掛firebug的。hackbar 無該項功能。
D修改瀏覽器訪問referer。通過在hackbar勾選”EnableReferer ",hackbar可以顯出示該功能。
14 以下哪個攻擊可以提供攔截和修改http資料包功能?()
A Metasploit
B Hackbar
C Sqlmap
D Burpsuite
答案:D
解釋:
A Metasploit 。 它為整合的漏洞攻擊平臺,具有多種攻擊載荷和shell。但是無法提供攔截和修改http資料包。
B Hackbar 是用來進行sql注入、測試XSS和加解密字串的。可以用來快速構建一個HTTP請求(GET/POST)等。但是不能攔截和修改HTTP資料包。
C Sqlmap 是用來進行sql注入,獲取資料庫資訊和獲作業系統資訊,甚至注入後門webshell的,但是不能攔截和修改HTTP資料包。
D Burpsuite是可以通過設定瀏覽器代理進行網路滲透的,用於攻擊Web應用的整合平臺。可以進行攔截和修改HTTP資料包。
15 以下哪幾種工具可以對網站進行自動化web漏洞掃描?()
A hackbar
B AWVS
C IBM appscan
D Nmap
答案:BC
解釋:
A hackbar 是用來進行sql注入、測試XSS和加解密字串的。可以用來快速構建一個HTTP請求(GET/POST)等。但是不能自動化web 漏洞掃描
B AWVS 是業界非常推薦的漏洞掃描神器,它擁有數目非常多而且最強大的漏洞檢測指令碼,國內多數人使用破解版,它可以進行自動化web漏洞掃描。
C IBM appscan 是國外IBM安全公司的一款非常厲害的安全漏洞掃描產品,能夠掃描各種生產環境的WEB,也就是說它也可以進行自動化web 漏洞掃描。
D Nmap是一款網路埠掃描工具,可以掃描各種埠及其服務甚至是系統漏洞檢測,從它的NSE指令碼可以看到它也可以進行WEB漏洞掃描,但是需要複雜的配置命令,故它不能進行自動化web漏洞掃描。
答案:BC
16. 黑客控制一臺Windows伺服器,發現IE瀏覽器使用了代理,可以訪問外網,執行如下命令發現
C:\Users\test>ping www.baidu.com -n 1
正在 Pingwww.a.shifen.com [14.215.177.38] 具有32位元組的資料:
請求超時
C:\Users\test>telnet www.baidu.com 80
正在連結www.baidu.com...無法開啟到主機的連線。
在埠 80: 連線失敗。
通過如上資訊判斷,以下哪些反彈shell操作會失敗
A windows/meterpreter/reverse_http
B icmp協議的後門
C windows/meterpreter/reverse_https
D windows/meterpreter/reverse_tcp
答案: ABCD
解釋:IE瀏覽器使用了代理,可能HTTP協議會受到防火牆限制,故A不對;ping不通百度說明ICMP協議也受影響。故http、https、icmp協議的反彈shell都會失敗,D也是不對的,對方掛了代理,telnet不通,只有通過插入掛了代理的IE程序反彈,或者通過代理反彈.
17 關於XcodeGhost事件的正確說法是()
A 部分Android 產品 也受到了影響
B 應用程式開發使用了包含後門外掛的IDE
C 當手機被盜時才有風險
D蘋果官方迴應APPSTORE上的應用程式不受影響
答案:AB
解釋:通過Xcode從源頭注入病毒XcodeGhost,是一種針對蘋果應用開發工具Xcode的病毒。於2015年9月被發現。它的初始傳播途徑主要是通過非官方下載的Xcode 傳播,通過CoreService 庫檔案進行感染,安卓用了Unity和Cocos2d的也受影響,當應用開發者使用帶毒的Xcode工作時,編譯出的App 都將被注入病毒程式碼,從而產生眾多帶毒APP。使用者在iOS裝置上安裝了被感染的APP後,裝置在接入網際網路時APP會回連惡意URL地址init.icloud-analysis.com,並向該URL上傳敏感資訊(如裝置型號、iOS 版本)。回連的C&C伺服器會根據獲取到的裝置資訊下發控制指令,從而完全控制裝置,可以在受控裝置上執行開啟網頁、傳送簡訊、撥打電話、開啟裝置上所安裝的其他APP等操作。蘋果官方當時下架相關的應用。
故XcodeGhost,是一種針對蘋果應用開發工具的病毒,它是應用程式開發使用了包含後門外掛的IDE,手機下了含有XCODE病毒的應用就會受到影響,蘋果官方迴應,APPSTORE上的應用程式是受到影響,並且下架了一部分受影響的應用,並且部分android產品也受到影響。
18 Android 應用中導致HTTPS中間人攻擊的原因有?()
A 沒有對SSL證書校驗
B 沒有對主機名進行校驗
C SSL證書被洩露
D 使用WIFI連線網路
答案: ABC
解釋:
A 沒有對SSL證書校驗 。
B 沒有對主機名進行校驗
C SSL證書被洩露
D 使用WIFI連線網路
答案: ABC
解釋:
Android 應用中導致HTTPS漏洞的分析:
1)中間人攻擊漏洞位置:
X509TrustManager 、HostnameVerifier、setHostnameVerifier (X509HostnameVerifier hostnameVerifier)
2) 漏洞觸發前提條件:
自定義的X509TrustManager不校驗證書;
或實現的自定義HostnameVerifier不校驗域名接受任意域名;
或使用setHostnameVerifier(ALLOW_ALL_HOSTNAME_VERIFIER);
3) 漏洞原理:
由於客戶端沒有校驗服務端的證書,因此攻擊者就能與通訊的兩端分別建立獨立的聯絡,並交換其所收到的資料,使通訊的兩端認為他們正在通過一個私密的連線與對方直接對話,但事實上整個會話都被攻擊者完全控制。在中間人攻擊中,攻擊者可以攔截通訊雙方的通話並插入新的內容。
客戶端不校驗SSL證書(包含簽名CA是否合法、域名是否匹配、是否自簽名證書、證書是否過期)包含以下幾種編碼錯誤情況:
a. 自實現的不校驗證書的X509TrustManager介面的Java程式碼片段 (其中的checkServerTrusted()方法實現為空,即不檢查伺服器是否可信):
b. 不檢查站點域名與站點證書的域名是否匹配的Java程式碼片段:
c. 接受任意域名的Java程式碼片段:
A 沒有對SSL證書校驗 -----》》》客戶端自定義的X509TrustManager不校驗證書;,攻擊者冒用證書
B 沒有對主機名進行校驗----》》》客戶端實現的自定義HostnameVerifier不校驗域名接受任意域名,攻擊者可以使用域名冒用
C SSL證書被洩露----》》》》 證書頒發機構(Certification Authority)被攻擊導致私鑰洩露等。攻擊者可通過中間人攻擊,盜取賬戶密碼明文、聊天內容、通訊地址、電話號碼以及信用卡支付資訊等敏感資訊,甚至通過中間人劫持將原有資訊替換成惡意連結或惡意程式碼程式,以達到遠端控制、惡意扣費等攻擊意圖。
D 使用WIFI連線網路----《《《客戶端使用WIFI連線對於HTTPS傳輸來說,不會受到影響。因為重點是中間人漏洞攻擊的位置和觸發條件不會受到網路型別的影響。
19. 下圖為AES加密的明文和密文字串,請問該加密使用了哪種分組模式
加密前:
0000000000000000
0000000000000000
0000000000000000
000000000000000
加密後:
fbcd723ec4f10af24a9472349f722954
fbcd723ec4f10af24a9472349f722954
fbcd723ec4f10af24a9472349f722954
13d7ffbfe87a41c1fef1f429af20babc
答案:B
解釋:
ECB:是一種基礎的加密方式,密文被分割成分組長度相等的塊(不足補齊),然後單獨一個個加密,一個個輸出組成密文。
CBC:是一種迴圈模式,前一個分組的密文和當前分組的明文異或操作後再加密,這樣做的目的是增強破解難度。
CFB/OFB實際上是一種反饋模式,目的也是增強破解的難度。
ECB和CBC的加密結果是不一樣的,兩者的模式不同,而且CBC會在第一個密碼塊運算時加入一個初始化向量。
20這段程式碼存在的安全問題,會產生什麼安全漏洞?()
<?php
$username = $_GET(username);
echo $uername
mysql_query("select * from orders where username = "$username"or dir (mysql_error():
?>
A 命令執行漏洞
B SQL注入漏洞
C 檔案包含漏洞
D 反射XSS漏洞
答案:ABD
解釋:
A 命令執行漏洞--->>>>$username = $_GET(username);echo $uername 引數不過濾,可以將username設定某個命令。
B SQL注入漏洞--->>>>mysql_query("select* from orders where username = "$username "or dir (mysql_error(): 引數不過濾,可以將username設定某個帶截斷的查詢語句。
C 檔案包含漏洞--->>>>該程式碼中部設計檔案操作。
D 反射XSS漏洞---->>>引數過濾不嚴格,可以輸入username=<script>alert(1)</script>
21 以下哪些是CSRF漏洞的防禦方案?()
A 檢測HTTPreferer 欄位同域
B 限制sessioncookie的生命週期
C 使用驗證碼
D cookie關鍵欄位設定HttpOnly屬性
答案:ABCD
解釋:
CSRF漏洞防禦主要可以從三個層面進行,即服務端的防禦、使用者端的防禦和安全裝置的防禦。
A 檢測HTTPreferer 欄位同域---》》》》根據HTTP協議,在HTTP頭中有一個欄位叫Referer,它記錄了該HTTP請求的來源地址。在通常情況下,訪問一個安全受限頁面的請求必須來自於同一個網站。比如某銀行的轉賬是通過使用者訪問http://bank.test/test?page=10&userID=101&money=10000頁面完成,使用者必須先登入bank.test,然後通過點選頁面上的按鈕來觸發轉賬事件。當用戶提交請求時,該轉賬請求的Referer值就會是轉賬按鈕所在頁面的URL(本例中,通常是以bank.
test域名開頭的地址)。而如果攻擊者要對銀行網站實施CSRF攻擊,他只能在自己的網站構造請求,當用戶通過攻擊者的網站傳送請求到銀行時,該請求的Referer是指向攻擊者的網站。因此,要防禦CSRF攻擊,銀行網站只需要對於每一個轉賬請求驗證其Referer值,如果是以bank. test開頭的域名,則說明該請求是來自銀行網站自己的請求,是合法的。如果Referer是其他網站的話,就有可能是CSRF攻擊,則拒絕該請求
B 限制sessioncookie的生命週期---》》》CSRF攻擊是有條件的,當用戶訪問惡意連結時,認證的cookie仍然有效,所以當用戶關閉頁面時要及時清除認證cookie
C 使用驗證碼---》》》雖然攻擊者已經通過獲取cookie得到使用者的身份,但是通過在你的表單中包括驗證碼,事實上網站已經消除了跨站請求偽造攻擊的風險。可以在任何需要執行操作的任何表單中使用這個流程。
D cookie關鍵欄位設定HttpOnly屬性-----》》》》可以在一定程度防禦CSRF。
22 android manifest.xml中哪項配置可能造成安卓內部檔案被竊取?()
A android:allowbackup=“ true "
B Android:name = " con.trsc"
C Android: debug = " true "
D Androidtarget sdkversion = "17"
答案:ABC
解釋:
A android:allowbackup=“ true "----》》》》允許app備份,可以導致其他app非法訪問這些資料
B Android:name = " con.trsc"---》》》》沒有設定成私有,可以導致非法越權訪問
C Android: debug = " true "---》》》通過調式,可以呼叫檢視其他檔案
D Androidtarget sdkversion = "17"----》》》》sdk版本資訊
23 以下哪些工具可以抓取windows明文密碼?()
A WCE
B minikatz
C Quarks PWdump
D CAIN
答案:AB
A WCE是與gethashes 和mimikatz齊名的一款hash管理工具,使用wce進行本地和域的hash注入 ,可以在高許可權下獲取明文密碼
B 法國一個牛B的人寫的輕量級偵錯程式,可以幫助安全測試人員抓取Windows密碼。mimikatz 2.0版本,抓密碼命令更加簡單了,新功能還包括能夠通過獲取的kerberos登入憑據,繞過支援RestrictedAdmin模式的win8或win2012svr的遠端終端(RDP) 的登陸認證
C Quarks PwDumpQuarks PwDump 是一個Win32環境下的系統授權資訊匯出工具,目前除此之外沒有任何一款工具可以匯出如此全面的資訊,支援這麼多的OS版本,且相當穩定。它目前可以匯出 :- Local accounts NT/LM hashes + history 本機NT/LM雜湊+歷史登入記錄 – Domain accounts NT/LM hashes + history 域中的NT/LM雜湊+歷史登入記錄 – Cached domain password 快取中的域管理密碼 –
Bitlocker recovery information (recovery passwords & key packages) 使用Bitlocker的恢復後遺留的資訊支援的作業系統 : XP/2003/Vista/7/2008/81 / USAGE
D CAIN主要用於網路資料嗅探,也帶有密碼破解功能,但是不能抓取windows明文密碼
24. 如果一個網站存在CSRF漏洞,可以通過CSRF漏洞做下面哪些事情
A 獲取網站使用者註冊的個人資料資訊
B 修改網站使用者註冊的個人資料資訊
C 冒用網站使用者的身份釋出資訊
D 以上都可以
答案:D
解釋:CSRF成功後,攻擊者可以獲取到使用者身份,所以攻擊者可以獲取使用者的個人資料,甚至是冒用網站使用者釋出資訊。但是一個網站存在CSRF,這個說法可能是某處存在該漏洞或者整個網站都存在。至於在修改或者冒用使用者釋出資訊,這個要依據整個網站的安全架構來說,如果一個網站設定了修改使用者個人資料和釋出資訊都需要驗證碼或者需要個人手機簡訊的再次驗證,這個就難說了。當然這裡我們從最簡單的角度考慮,A、B、C都在小網站都可以實現。
25. 以下關於cc攻擊說法正確的是
A cc攻擊需要藉助代理進行
B cc攻擊利用的時tcp協議的缺陷
C cc攻擊難以獲取目標機器的控制權
D cc攻擊最早在國外大面積流行
答案: ACD
解釋:攻擊者藉助代理伺服器生成指向受害主機的合法請求,可以通過TCP/IP進行,本質是模擬多個使用者不停訪問頁面,導致該頁面的服務無法處理過多請求,從而導致伺服器宕機或者拒絕服務。
26. Android開發過程中,下面哪些開發習慣可能導致安全漏洞
A 在程式程式碼中插入Log()方法輸出敏感資訊方便除錯
B 在應用正式版Andoridmanifest.xml中設定android:debuggable=”false”
C 使用SecureRandom時使用安全的方法設定seed
D 設定應用配置檔案為任意使用者可讀寫
答案:AD
解釋:
A 在程式程式碼中插入Log()方法輸出敏感資訊方便除錯-----》》》》該方式可以在日誌中洩露登入的密碼,可導致安全漏洞。
B 在應用正式版Andoridmanifest.xml中設定android:debuggable=”false”----》》》》》》這個可以防止不法分子對應用進行調式,有一定的安全效果。當然通過JD或者JEB逆向後,將” false“ 改成 ” true“ 的情況,另當別說。
C 使用SecureRandom時使用安全的方法設定seed----》》》》》這個可以產生安全的隨機數。
D 設定應用配置檔案為任意使用者可讀寫----》》》》》這個會導致非法使用者越權訪問敏感資訊,可導致安全漏洞。
27. iOS平臺上常見的Hook框架有
A Xposed
B Intent Fuzz
C Drozer
D Substrate
答案:D
解釋:
A Xposed----》》》這個是android的hook框架,有不少開發者釋出了不錯的框架。
B Intent Fuzz---》》》這個是android 應用元件模糊測試框架,
C Drozer----》》這個是android 綜合滲透測試平臺。
D Substrate---》》》這個是IOS平臺的hook的框架,而Cydia Substrate是android上的強大而實用的HOOK工具。
28. php提供以下哪些函式來避免sql注入
A mysql_real_escape_string
B escapeshellarg
C htmlentities
D addslashes
答案: AD
解釋:
A mysql_real_escape_string-->>>> 該函式通過轉義字串,實現了過濾無效化(消毒)的功能,可以避免sql注入。
B escapeshellarg-->>>> escapeshellarg — 把字串轉碼為可以在 shell 命令裡使用的引數,當然這個是轉義shell注入的,和sql注入沒有太多聯絡,和命令執行有關。
C htmlentities--->>>>>>>該函式是字元轉換為 HTML 實體,沒有避免sqlz注入的功能
D addslashes--->>>addslashes — 使用反斜線引用字串,返回字串,該字串為了資料庫查詢語句等的需要在某些字元前加上了反斜線。這些字元是單引號(')、雙引號(")、反斜線(\)與 NUL(NULL 字元)。實際就是轉義。
29. 執行nmap10.5.5.5.1 預設會掃描以下哪個埠
A 21
B 3389
C 8080
D 1024
答案: AC
解釋:nmap 的預設掃描選項是對常規埠和服務進行探測,常規埠是1000個最可能開發的埠
30. 黑客通過以下哪種攻擊方式,可能大批量獲取網站註冊使用者的身份資訊
A XSS
B CSRF
C 越權
D 以上都不可以
答案 ABC
解釋:
A XSS--->>>獲取管理員的session,從而獲得大量註冊使用者身份資訊。
B CSRF--->>>獲取管理員的cookie,從而獲得大量註冊使用者身份資訊。
C 越權-->>> 越權訪問其他使用者資訊。
故以上三個均可以。
0x03 簡答題-10
31. sql注入(MySQL資料庫)中常用的延時函式是___
答案:sleep()
32. Linux上檢視使用者ssh登陸歷史的指令last,它讀取的日誌檔名是___
答案:/var/log/wtmp
33. 黑客為了清理自己在伺服器上操作的指令歷史記錄,他可以執行什麼命令___
答案:
~/.bash_history
history -c
34. 國內歷史最久的黑客安全技術峰會是__
答案: Xcon
35. 2015年百度被曝出的WormHole漏洞的原理是__
答案:
wormhole 是百度SDK的部分更新模組登陸驗證不夠嚴格,存在被第三方利用的風險。如果你手機中裝了多個有wormhole漏洞的app,這些app會時刻檢查40310/6259埠,如果那個監聽40310/6259埠的app被解除安裝了,另一個app會 立馬啟動服務重新監聽40310/6259埠。 ”連線埠的IP需要驗證一些標頭檔案,但很容易通過偽裝繞過。成功與該服務進行通訊後,就可以通過URL給APP下達指令,比如獲取使用者手機的GPS位 置,給手機增加聯絡人,下載任意檔案到指定路徑如果檔案是apk則進行安裝。
36. aslr是對抗_攻擊的技術
答案:緩衝區溢位
37. windows下檢視系統使用者列表的命令是__
答案:net user
38. 當訪問web網站某個資源不存在時,返回的HTTP狀態碼是__
答案:404
39. 被稱為“XSS終結者”的使用HTTP頭部來限制資源的策略是__
答案:同源策略
40. C語言中字串“學習C”所佔的記憶體空間大小可能是___位元組
答案:5
解釋:
這題有爭議
gb:2+2+1+1 = 6
utf-8: 3+3+1+1 = 8
utf-16:2+2+2+2 = 8
utf-32: 4+4+4+4 = 16
0x04 判斷題-10
41. zmap單次執行可以對多個埠同時掃描
答案:對
解釋:zmap 的單次執行可以同時掃描多個埠,這也是它號稱比nmap 快的原因之一。
42. TCP和UDP協議對比,TCP傳送資料更安全
答案:錯
解釋:TCP只是傳輸可靠,UDP只是最大地交付。嚴格來說,兩者不存在哪個是否更安全的對比。
43. 用system啟動的cmd執行 net use\10.1.1.10\c$”password/user”administrator”提示連線成功,然後在administrator使用者下net use可以看到連線
答案: IPC localhost 10.1.1.10: 135 ESTABLISH
解釋:這個用法比較少見。net use h: \\ip\c$ "密碼" /user:"使用者名稱" 直接登陸後對映對方C:到本地為H:本質是ipct通道的用法
44. Redis常用的預設埠是873
答案:錯
解釋:Redis 預設情況下,會繫結在0.0.0.0:6379,這樣將會將Redis服務暴露到公網上,如果在沒有開啟認證的情況下,可以導致任意使用者在可以訪問目標伺服器的情況下未授權訪問Redis以及讀取Redis的資料。攻擊者在未授權訪問Redis的情況下可以利用Redis的相關方法,可以成功將自己的公鑰寫入目標伺服器的/root/.ssh 資料夾的authotrized_keys檔案中,進而可以直接登入目標伺服器。
45. DES、RC4均屬於對稱加密演算法
答案:對
解釋:常見的非對稱加密演算法有;RSA、Diffie-Hellman(DH) 、橢圓曲線演算法(ECC). 其中使用最廣泛的是RSA演算法。常見的對稱加密演算法有:DES演算法,3DES演算法,TDEA演算法,Blowfish演算法,RC5演算法,IDEA演算法。
0x05 分析題-2
46. 某應用程式需要完成使用者輸入密碼登陸的操作,通過網路與伺服器互動進行校驗,請設計一個安全的網路傳輸方案,並說明原因。(出於效能方面的考慮,不使用https通訊)
參考設計:
1 首先在使用者輸入密碼時,加上比較複雜的驗證碼,同時以時間戳加密生成隨機數,加上csrf_token等
2 然後再把使用者賬號密碼通過前端加密傳輸到伺服器後臺,並且設定同源策略,
3 伺服器驗證客戶端的身份後,通過隨機安全數加密session和cookie返回給客戶端。
4 客戶端與伺服器建立連線。
47. 外部某平臺報告,某網站被黑客上傳了Webshell並截圖證明。老闆指定身為安全工程師的你全權協調處理此事,請思考,你需要做些什麼?
參考回答:
1 首先檢查伺服器上該webshell 存放路徑,分析該webshell的行為。
2 清除webshell及其他後門,然後根據webshell入侵的方式,進行修補漏洞,升級程式。
3 對伺服器進行安全加固,對伺服器上的系統和web服務進行安全設定。
4 綜合上述,攥寫安全報告(例如首先確定是什麼漏洞和伺服器上的運維設定導致黑客可以成功上傳webshell,如新出現的0day 或者伺服器web 的運維配置不當或者弱口令;然後分析了清除了哪些後門,這些後門對伺服器造成了哪些影響-盜用了資料庫、或者安裝了新後門進行DDOS或者其他方面。接著寫為避免了這些漏洞,我做了哪些安全加固--修改web伺服器配置,對系統進行加固,安裝相關的防毒軟體,調整WAF策略等等。最後給出後面定期的安全檢查和維護措施