1. 程式人生 > >騰訊 2016 春招筆試(偽)權威解析

騰訊 2016 春招筆試(偽)權威解析

這篇文章的原文在:原文地址

1、應用程式開發過程中,下面哪些開發習慣可能導致安全漏洞?

  • 在程式程式碼中列印日誌輸出敏感資訊方便測試(√)
  • 在使用陣列前判斷是否越界
  • 在生成隨機數前使用當前時間設定隨機數種子(√)
  • 設定配置檔案許可權為rw-rw-rw-(√)

只說一下第三個吧,給出篇文章隨機數是騙人的
這篇文章中提到的另一篇文章我也給出連結,省去大家查詢的時間當隨機不夠隨機:一個線上撲克遊戲的教訓
看完你就可以瞭解為什麼這個做法也會導致安全漏洞,微信公眾號黑客 Hub 轉載這篇文章時給出的解釋認為這樣不會產生漏洞是錯誤的

2、以下哪些工具提供攔截和修改 HTTP 資料包的功能?

  • BurpSuite
  • HackBar
  • Fiddler
  • Nmap

Fiddler 和 BurpSuite 都可以攔截和修改 HTTP 資料包

常用的 Firefox外掛

  • Firebug(抓包與各種除錯)
  • Tamper Data(攔截修改)
  • Live Http Header(重放功能)
  • Hackbar(編碼解碼/POST提交)
  • Modify Headers(修改頭部)

3、壞人通過 XSS 漏洞獲取到 QQ 使用者的身份後,可以進行以下哪些操作?

  • 偷取 Q 幣
  • 控制使用者攝像頭
  • 劫持微信賬戶
  • 進入 QQ 空間

個人認為只有進入 QQ 空間可以

4、以下哪些工具可以抓取 HTTP 資料包?

  • BurpSuite
  • Wireshark
  • Fiddler
  • Nmap

BurpSuite、Wireshark 和 Fiddler 都是常見的抓包工具

5、以下哪些說法是正確的?

  • iOS 系統從 iOS6 開始引入了 kernel ASLR 安全措施(√)
  • 主流的 iPhone 手機 SoC 晶片內建了 AES 及 RSA 硬體加解密引擎(√)
  • 安卓系統採用了安全引導鏈(Secure Boot Chain),而 iOS 系統則未採用
  • Android 4.1 系統預設啟用了記憶體 ASLR(√)

6、以下哪些是常見的 PHP 一句話木馬?

  • <?php assert($_POST[value]);?>
    (√)
  • <%execute(request("value"))%>
  • <?php @eval($_POST[value]);?>(√)
  • <%if(request.getParameter("f")!=null)(new java.io.FileOutputStream(application.getRealPath("/")+request.getParameter("f"))).write(request.getParameter("t").getBytes());%>

第二個是 asp 的一句話木馬,第四個是 jsp 的一句話小馬,這已經不能算是一句話了,assert 是可以替換 eval 的函式,不過 assert 常被禁用,所以場景很少,不知道算不算得常見?

7、以下哪個說法是正確的?

  • XcodeGhost 是一種可以直接遠端手機控制權的攻擊方式
  • Wormhole 是一種可以直接遠端手機控制權的攻擊方式
  • “心臟滴血”是一種可以直接遠端手機控制權的攻擊方式
  • ShellShock 是一種可以直接遠端手機控制權的攻擊方式

XcodeGhost 是在 2015 年被發現的大量 Xcode 編輯器被第三方程式碼注入,導致編譯出來的 App 都存在後門
Wormhole 是在百度全家桶上大面積爆發的一個後門程式
“心臟滴血”是 OpenSSL 庫存在的漏洞,影響很大
ShellShock 連結的 CVE 號是 CVE-2014-6271,不細說了

8、在同一 bash 下依次執行

root@kali:~/Desktop# whoami
root
root@kali:~/Desktop# function whoami() {echo 1;}
root@kali:~/Desktop# whoami

最後一次執行 whoami 的結果為?

  • root
  • 1(√)
  • echo 1
  • echo 1;

9、以下哪個工具可用來進行 DDOS 攻擊

  • 菜刀
  • WSI
  • Dosend
  • Chkrootkit

Dosend 是一個 DDOS 工具,Chkrootkit 是一個 rootkit 掃描器,菜刀是一個 Webshell 管理工具, WSI 是一個注入掃描工具

10、以下哪些伺服器曾被發現存在檔案解析漏洞?

  • Apache
  • IIS
  • Nginx
  • Squid

Apache、IIS、Nginx 都曾經被發現存在檔案解析漏洞
相關可參考烏雲知識庫這篇文章:檔案解析漏洞的總結
而 Squid Cache 是 HTTP 代理伺服器軟體。Squid 用途廣泛的,可以作為快取伺服器,可以過濾流量幫助網路安全,也可以作為代理伺服器鏈中的一環,向上級代理轉發資料或直接連線網際網路

11、在以下命令中,可用來獲取域名 DNS 記錄的命令是?

  • traceroute
  • ping
  • dig
  • who

traceroute 命令讓你追蹤網路資料包的路由途徑
who 命令顯示關於當前在本地系統上的所有使用者的資訊
dig 命令是一個用於詢問 DNS 域名伺服器的靈活的工具

12、Linux 環境下,檢視日誌檔案的最後 100 行資料,正確的方式是?

  • mv -100 log
  • grep -100 log
  • cat -100 log
  • tail -100 log

tail 尾巴的意思,tail 命令可以從指定點開始將檔案寫到標準輸出

13、Firefox 瀏覽器外掛 HackBar 提供的功能?

  • POST 方式提交資料
  • base64 編碼和解碼
  • 代理修改 Web 頁面內容
  • 修改瀏覽器訪問 Referer

上面講過火狐的外掛:Tamper Data(攔截修改) 和 Modify Headers(修改頭部)

14、以下哪些工具能提供攔截和修改 HTTP 資料包的功能?

  • Metasploit
  • HackBar
  • SQLMap
  • BurpSuite

BurpSuite 是常用的抓包改包工具

15、以下哪幾種工具可以對網站進行自動化 Web 漏洞掃描?

  • HackBar
  • AWVS
  • IBM AppScan
  • Nmap

只有 HackBar 是一個火狐的外掛而已,其餘都可以

16、黑客控制了一臺 Windows 伺服器,發現 IE 瀏覽器使用了代理,可以訪問外網,執行如下命令發現
ping www.baidu.com -n 1
請求超時
telnet www.baidu.com 80
在埠80:連線失敗
通過如上資訊判斷,以下哪些反彈 Shell 操作會失敗

  • windows/meterpreter/reverse_http
  • icmp 協議的後門(√)
  • windows/meterpreter/reverse_https
  • windows/meterpreter/reverse_tcp(√)

ping 是 ICMP 協議, telnet 是 TCP 協議,故此二者不會成功

17、關於 XcodeGhost 事件說法正確的是?

  • 部分 Android 產品也受到影響(√)
  • 應用程式開發者使用了包含有後門外掛的 IDE(√)
  • 當手機被盜時才會有風險(×)
  • 蘋果官方迴應 AppStore 上的應用程式不受影響(×)

百度實驗室發現 Unity-4.X 版本的多平臺遊戲開發工具也存在類似後門,所以 Android 系統也會受到影響

18、Android 應用中導致 HTTPS 中間人攻擊的原因有?

  • 沒有對 SSL 證書進行校驗(√)
  • 沒有對主機名進行校驗(×)
  • SSL 證書被洩露(√)
  • 使用 WIFI 連線網路(√)

19、以下是 AES 加密的明文和密文字串,請問該加密使用了哪種分組模式?

加密前:
0000000000000000
0000000000000000
000000000000000
加密後:
fbcd723ec4f10sf24a9472349f722954
fbcd723ec4f10sf24a9472349f722954
13d7ffbfe87a41c1fef1f429af20babo
  • ECB(√)
  • CBC
  • CFB
  • OFB

分組密碼有五種工作體制:
1.電碼本模式(Electronic Codebook Book (ECB))
2.密碼分組連結模式(Cipher Block Chaining (CBC))
3.計算器模式(Counter (CTR))
4.密碼反饋模式(Cipher FeedBack (CFB))
5.輸出反饋模式(Output FeedBack (OFB))

這應該是最簡單的電碼本模式,不能隱藏明文的模式也是 ECB 的缺點之一

20、下面這段程式碼存在安全問題,會產生什麼安全漏洞?

<?php
%username = $_GET['username'];
echo $username;
mysql_query("select * from orders where username = ".$username." or dir(mysql_error()));
  • 命令注入漏洞
  • SQL 注入漏洞(√)
  • 檔案包含漏洞
  • 反射 XSS 漏洞

不知道會不會產生其他漏洞,PHP 不太懂

21、以下哪些是 CSRF 漏洞的防禦方案?

  • 檢查 HTTP Referer 欄位是否同域(√)
  • 限制 Session Cookie 的生命週期
  • 使用驗證碼(√)
  • Cookie 關鍵欄位設定 HTTP Only 屬性

常見的 CSRF 防禦方案有如下三種:
驗證 HTTP Referer 欄位
新增 Token
新增驗證碼/再次輸入密碼

22、Android Manifest.xml 中哪項配置可能造成安卓應用內部檔案被竊取?

  • android:allowbackup=”true”
  • android:name=”com.tsrc”
  • android:debug=”true”
  • android:targetSdkVersion=”17”

個人認為允許備份和允許除錯會存在洩露風險,如果錯誤請指正

23、以下哪些工具可以抓出 Windows 明文密碼?

  • WCE
  • mimikatz(√)
  • Quarks PwDump
  • CAIN

講道理,這四款工具都能得到 HASH 值,但是明文密碼似乎只有 mimikatz 才能做到
Windows Server 2012 使用者密碼 HASH 抓取
mimikatz 也有輕量偵錯程式的功能,感興趣的同學可以去試一試

24、如果一個網站存在有 CSRF 漏洞,可以通過 CSRF 漏洞做下列哪些事情?

  • 獲取網站使用者註冊的個人資料資訊
  • 修改網站使用者註冊的個人資料資訊
  • 冒用網站使用者的身份釋出資訊
  • 以上都可以(√)

25、以下關於 CC 攻擊說法正確的是?

  • cc 攻擊需要藉助代理進行(√)
  • cc 攻擊利用的是 tcp 協議的缺陷(√)
  • cc 攻擊難以獲取目標機器的控制權(√)
  • cc 攻擊最早在國外大面積流行(√)

CC 攻擊是攻擊者藉助代理伺服器生成指向受害主機的合法請求,實現 DDOS

兩臺機器通訊要進行一個所謂的三次握手,首先是客戶機發出一個請求 (SYN) ,伺服器收到該請求後,填寫會話資訊表 (TCB,儲存在記憶體中),並且向客戶機反饋一個迴應包 (SYN-ACK) ,此時連線處於 TIME_WAIT 狀態,如果最終沒有收到客戶機的 ACK 資訊包,會嘗試隔一段時間再發送一次迴應包 SYN-ACK,這樣經過多次重試後,客戶機還沒有迴應的話,伺服器才會關閉會話,並從 TCB 中刪除掉該會話。這個等待過程大約為 30 秒。當攻擊者同時發起十萬計的請求時 (SYN) 到伺服器開放的埠,並且本身拒絕傳送 SYN-ACK 迴應時,伺服器的的 TCB 將會很快超過負荷,並且攻擊者可以偽造包中的源 IP 地址,這樣攻擊者還不會被伺服器返回的包堵住

26、Android 開發過程中,下面哪些開發習慣可能導致安全漏洞?

  • 在程式程式碼中插入 Log() 方法輸出敏感資訊方便除錯(√)
  • 在應用正式版 Anndroidmanifest.xml 中設定 android:debuggable = “false”
  • 使用 SecureRandom 時使用安全的方法設定 seed
  • 設定應用配置檔案為任意使用者可讀寫(√)

27、iOS 平臺上常用的 HOOK 框架有?

  • Xposed
  • IntentFuzzer
  • Drozer
  • Substrate

可以看出,前三個工具都是針對安卓平臺的,只有 Substrate 是針對 iOS 的
詳細瞭解安卓上的利用工具可以看這盤博文:Android 漏洞挖掘工具總結

28、PHP 提供以下哪些函式來避免 SQL 注入?

  • mysql_real_escape_string(√)
  • escapeshellarg
  • htmlentities
  • addslashes(√)

escapeshellarg 是用來防範命令執行的,htmlentities 是用來防範 XSS 的,只有打勾的那兩個才是防範注入的
詳情請參考烏雲相關文章:PHP安全編碼命令執行

29、執行 nmap 10.5.5.5.1 預設會掃描以下哪個埠?

  • 21
  • 3389
  • 8080
  • 1024

這道題····· 的指令····· nmap 都不認,這就很尷尬
猜測是打錯了,可能想考預設掃描的埠範圍,1-1024 這樣的話就會選 AD

30、黑客通過以下哪種攻擊方式,可能大批量獲取網站註冊使用者的身份資訊?

  • XSS
  • CSRF
  • 越權
  • 以上都不可以(√)

31、sql 注入(mysql資料庫)中常用的延時函式是
sleep()

32、Linux 上檢視使用者 SSH 登陸歷史記錄的指令 last ,它讀取的日誌檔名是什麼?、
/var/log/wtmp
常見的日誌檔案:

/var/log/wtmp,一個使用者每次登入進入和退出時間的記錄
/var/log/btmp,記錄登入失敗的記錄
/var/run/utmp,記錄當前登入的每個使用者 

who 命令查詢 utmp 檔案並報告當前登入的每個使用者
w 命令查詢 utmp 檔案並顯示當前系統中每個使用者和它所執行的程序資訊
last 命令查詢 wtmp 來顯示自從檔案第一次建立以來登入過的使用者
users 命令用單獨的一行打印出當前登入的使用者,每個顯示的使用者名稱對應一個登入會話

33、黑客為了清理自己在伺服器上操作的指令歷史記錄,他可以執行什麼命令?

[root@localhost root]# history -c //清空歷史執行命令
root@localhost root]# echo > ./.bash_history //或清空使用者目錄下的這個檔案即可

bash 執行命令時不是馬上把命令名稱寫入 history 檔案的,而是存放在內部的 buffer 中,等 bash 退出時會一併寫入,可以使用 history -w 命令要求 bash 立即更新 history 檔案

34、國內歷史最久的黑客安全技術峰會是
XCon安全焦點資訊保安技術峰會是國內歷史最悠久、最知名、最權威、舉辦規模最大的資訊保安會議之一

35、2015 年百度被曝出的 WormHole 漏洞的原理是
應用程式開啟了 40310/6259 埠作為後門
詳細分析請看烏雲文章WormHole蟲洞漏洞分析報告

36、ASLR 是對抗_攻擊的技術
ASLR 是位址空間佈局隨機化技術,是一種針對緩衝區溢位的安全保護技術,隨機分配佈局可以有效提高惡意軟體預測目的地址的難度,從而提升阻止緩衝區溢位的成功率,目前主流作業系統已經全部採用

37、Windows 下檢視系統使用者列表的命令是什麼?
Windows 系統,在命令列下執行net user
Linux 系統,在命令列下執行cat /etc/passwd

38、當訪問 Web 網站某個資源不存在時,返回的 HTTP 狀態碼是什麼?
HTTP Status Code 404

39、被稱為“ XSS 終結者”的使用 HTTP 頭部來限制資源的策略是
同源策略,應對辦法是“跨域”

40、C語言中字串“學習C”所佔的記憶體空間大小可能是_位元組
一個漢字佔兩個位元組,儲存字串本身需要五個位元組,字串結束符\0也要計算,故為六個位元組
以後要做個測試才能確定這樣想是否正確

41、zmap 單次執行可以對多個埠同時掃描(√)

42、TCP 和 UDP 協議對比,TCP 傳送資料更安全(√)

43、用 system 啟動的 cmd 執行 net use \10.1.1.10\c$”password/user”administrator”提示連線成功,然後在 administrator 使用者下net use可以看到連線

44、Redis 常用的預設埠是 873(×)
Redis 預設監聽埠是 6379

45、DES、RC4均屬於對稱加密演算法
對稱加密演算法是加解密使用相同的金鑰,常見的對稱加密演算法有DES、3DES、AES、Blowfish、IDEA、RC5、RC6

46、某應用程式需要完成使用者輸入密碼登陸的操作,通過網路與伺服器互動進行校驗,請設計一個安全的網路傳輸方案,並說明原因。(出於效能方面的考慮,不使用https通訊)

47、外部某平臺報告,某網站被黑客上傳了 Webshell 並截圖證明。老闆指定身為安全工程師的你全權協調處理此事,請思考,你需要做些什麼?