2014 阿XXX安全工程師實習生招聘筆試總結

本人是一個軟工菜,不是信息安全專業的,但是自己喜歡這一方面,所以就參加了阿X的安全工程師的實習招聘,好吧,有些題目記不清楚了,下面就是簡單回憶的一些零散的題目(順序不定),其實回來才發現這些題目在去年大部分都有,就是當時準備的時候腦殘沒有百度下這個題目:

第一部分(名詞解釋)

1.什麼是WebShell?

話說這個東東常用,但是他的定義只能根據自己所理解的來了,這個當時答的算是最有把握的一個了,看看回來Google的答案吧:WebShell就是以asp、php、jsp或者cgi等網頁文件形式存在的─種命令執行環境,也可以將其稱做爲─種網頁後門。黑客在入侵了─個網站後,通常會將這些asp或php後門文件與網站服務器WEB目錄下正常的網頁文件混在─起,然後就可以使用瀏覽器來訪問這些asp或者php後門,得到─個命令執行環境,以達到控制網站服務器的目的(可以上傳下載文件,查看數據庫,執行任意程序命令等)。國內常用的deWebShell有海陽ASP木馬,Phpspy,c99shell等。


2.什麼是網絡釣魚?

這個以前也做過,就是答題的時候答的太概括了,沒有特指郵件等,其實也不只是郵件釣魚,猥瑣的方法多了去了,下面是Google 的相關答案:釣魚式攻擊是一種企圖從電子通信中,通過僞裝成信譽卓著的法人媒體以獲得如用戶名、密碼和信用卡明細等個人敏感信息的犯罪詐騙過程。這些通信都聲稱來自於風行的社交網站、拍賣網站、網絡銀行、電子支付網站、或網絡管理者,以此來誘騙受害人的輕信。網釣通常是通過e-mail或者實時通信進行。它常常導引用戶到URL與接口外觀與真正網站幾無二致的假冒網站輸入個人數據。就算使用強式加密的SSL服務器認證,要偵測網站是否仿冒實際上仍很困難。網釣是一種利用社會工程技術來愚弄用戶的實例。它憑恃的是現行網絡安全技術的低親和度。種種對抗日漸增多網釣案例的嘗試涵蓋立法層面、用戶培訓層面、宣傳層面、與技術保全措施層面。


3.什麼是溢出?

這個做過緩衝區溢出,但是知道不止是這一種,所有當時只是舉了緩衝區溢出和堆棧溢出兩個例子,看看百科的答案吧:溢出是黑客利用操作系統的漏洞,專門開發了一種程序,加相應的參數運行後,就可以得到你電腦具有管理員資格的控制權,你在你自己電腦上能夠運行的東西他可以全部做到,等於你的電腦就是他的了。溢出是程序設計者設計時的不足所帶來的錯誤。


4.什麼是CC攻擊?

這個也是知道一些,知道他是DDos的變種,正常請求僞造,服務器資源耗盡,最終還是看看百科答案吧:CC攻擊是DDOS(分佈式拒絕服務)的一種,相比其它的DDOS攻擊CC似乎更有技術含量一些。這種攻擊你見不到真實源IP,見不到特別大的異常流量,但造成服務器無法進行正常連接。CC攻擊的原理就是攻擊者控制某些主機不停地發大量數據包給對方服務器造成服務器資源耗盡,一直到宕機崩潰。CC主要是用來攻擊頁面的,每個人都有這樣的體驗:當一個網頁訪問的人數特別多的時候,打開網頁就慢了,CC就是模擬多個用戶(多少線程就是多少用戶)不停地進行訪問那些需要大量數據操作(就是需要大量CPU時間)的頁面,造成服務器資源的浪費,CPU長時間處於100%,永遠都有處理不完的連接直至就網絡擁塞,正常的訪問被中止。


第二部分(知識面考察)

1.你獲取網絡安全知識途徑有哪些?

我當時寫了網絡論壇,舉了幾個例子像看雪,安全焦點,漏洞基地,邪八等地方,但是忘了寫國內的烏雲,FreeBuf 了,唉,第一跪吧;2.書籍,《白帽子講web安全》等,然後就是請教牛人,最後是公司內技術分享(現在XXXX殺軟公司實習),大致這些可以自由發揮吧。


2.Linux的文件權限'-rwsr-xr-x' 是意思?

先吐槽下就是跪在這個S上了,這個是去年的老題目,都沒答對,真是苦了一筆啊,當時還寫了這個題目是出錯了。如果把s,換成e,大家一定很快就知道了這是本賬戶讀寫執行權限,同組其他賬戶讀執行權限,其他組用戶讀執行權限,但是這個S是啥?下面科普一下吧:

文件權限除了r、w、x外還有s、t、i、a權限:

s:文件屬主和組設置SUID和GUID,文件在被設置了s權限後將以root身份執行。在設置s權限時文件屬主、屬組必須先設置相應的x權限,否 則s權限並不能正真生效(c h m o d命令不進行必要的完整性檢查,即使不設置x權限就設置s權限,chmod也不會報錯,當我們ls -l時看到rwS,大寫S說明s權限未生效)。Linux修改密碼的passwd便是個設置了SUID的程序,普通用戶無讀寫/etc/shadow文件 的權限確可以修改自己的密碼。

ls -al /usr/bin/passwd
-rwsr-xr-x 1 root root 32988 2008-12-08 17:17 /usr/bin/passwd

我們可以通過字符模式設置s權限:chmod a+s filename,也可以使用絕對模式進行設置:

設置s u i d:將相應的權限位之前的那一位設置爲4;
設置g u i d:將相應的權限位之前的那一位設置爲2;
兩者都置位:將相應的權限位之前的那一位設置爲4+2=6。

如:chmod 4764 filename   //設置SUID

t :設置粘着位,一個文件可讀寫的用戶並一定相讓他有刪除此文件的權限,如果文件設置了t權限則只用屬主和root有刪除文件的權限,通過chmod +t filename 來設置t權限。

i:不可修改權限  例:chattr u+i filename 則filename文件就不可修改,無論任何人,如果需要修改需要先刪除i權限,用chattr -i filename就可以了。查看文件是否設置了i權限用lsattr filename。

a:只追加權限, 對於日誌系統很好用,這個權限讓目標文件只能追加,不能刪除,而且不能通過編輯器追加。可以使用chattr +a設置追加權限。

3.說說VLAN中能不能實現IP欺騙?

這個也是去年的原題,啥都不說了,我又不是學網絡了,就是一個軟工菜,這個就只能試這來了,這個題目的意思一猜就知道是在一定的技術下可以實現,下面看看Google來的答案吧:VLAN是建立虛擬子網的意思,就是進一步隔離的多個網絡,在一篇文章中看到可以藉助內網代理來實現跨VLAN的通信,實際達到的了同一IP在不同子網,都能通訊,這裏要完全欺騙還是要利用劫持原來IP和網關的數據通信,將原來的雙向TCP拆解成兩個單向的通信,當然劫持數據之後,就可以分別僞造數據到網關和受欺騙端,其實VLAN技術是一種強化IP管理的的技術,但是在沒有IP-Mac綁定的情況下就同樣有被欺騙的危險,這個算是我自己總結的答案,當時在題目中舉的例子是DHCP的情況請而不是靜態IP綁定的情況下就會有問題,呵呵,也算是沾點邊吧。


4.其實HUB、SWITCH、ROUTER三者的區別?

這個說實際有點不清楚,只知道他們各自的用途,知道是HUB是負責份分發信號了,實現並行上網的,SWITCH 是網絡數據交換的,知道ROUTER是在網絡層的,負責將數據包轉發到不同網絡 ,但是還是不能細緻的說明,下面看看Answer 吧:

1)HUB:只負責信息廣播,不對包進行任何封裝,只是一個很簡單的信號放大器,處於第一層
2)SWITCH:會對包進行封裝處理,把包裏的MAC地址分析出來,發向目標端口,所以SWITCH有處理速度上的區別,而且進行VLAN劃分,端口複用等功能,有基於第二層和第三層的交換機,第三層交換機對IP進行分析,功能上較接近ROUTER
3)ROUTER:基於第三層的網絡設備,把包拆分,獲取目標IP信息,重新把包封裝進行發送,具有路由功能,用在不同的網段上進行傳輸。

5.說所Web服務器被入侵後,怎樣進行排查?
這個我是從幾個方面想的,1.代碼審計是必不可少的,查找網站是否有邏輯設計缺陷,並且找出加入的那些猥瑣的webShell,一般可以通過字符串搜索等(前提知道常見的一句話,webShell的關鍵函數等)2.web 登錄賬戶密碼強度,是不是弱密碼,3.網站管理員遠程登錄是否有不符合安全規範的習慣,比如遠程連接弱密碼的,4.網站管理員實地操作的習慣問題,比如用Vim修改了文件,但是加~的備份文件沒刪除等。但是貌似我答的和題目有點跑題了,汗!,最簡單就是1.查看下web 服務器日主,2.看看有沒有異常端口開放,3.使用安全狗等服務器安全軟件清掃。

6.說說什麼是DLL劫持?
當時就想這個是不是Windows 的DLL預加載漏洞,其實是差不多的,就是利用加載器加載DLL的時候優先選擇當前路徑,然後是windows系統路徑,最後是環境變量,只要做一個導入表的同名DLL放在程序執行的目錄下,然後當執行同名函數時就跳到自己想去的地址空間執行,執行完了再回來到真正的系統DLL裏執行,(Windows加載器將可執行模塊映射到進程的地址空間中,加載器分析可執行模塊的輸入表,並設法找出任何需要的DLL,並將它們映射到進程的地址空間中)。

7.如何僞造發件人發送欺詐郵件?
SMTP簡單郵件協議中,所有的發件人信息和郵件內容都是可以實現用戶自定義的,這就是協議本身的問題,允許用戶僞造任意發件人,關鍵是SMTP服務器還具有轉發功能,可以實現爲已知目的服務器投遞轉發的功能,那隻要構造一個轉發郵件,郵件服務器看了自然就轉發投遞出去了,現在騰訊等郵件都做了用戶身份驗證,而有一些SMTP服務器沒有做用戶身份驗證,這些機器就可以被充當爲垃圾詐騙郵件的發送機了。

第三部分(代碼審計,題目順序不定)
1.一個C語言程序,函數傳入數組,沒有檢測數組長度就給局部變量賦值,容易產生溢出,改進就加上 if(strlen (arry) < 30), 當時函數局部變量長度是30的。代碼好像是這樣的:
void test(char * OldName){
  char[30] NewName;
  int len=0;
  for(;OldName[len] != '\0';len++){
 
     NewName[len] = OldName[len];
 
  }
  return;
}


2.php 代碼,使用了Cookie 驗證,容易被cookie 爆破或者造成僞造Coockie登錄,改進辦法是用 Session 驗證(服務器存儲驗證,避免存在不安全的客戶端)或者在cookie 到的數據同時做個用戶驗證,防止他僞造任意用戶登錄

3.是一個JSP的XSS漏洞,就是對httml 標籤的過濾不嚴,可以使用嚴格的正則匹配。代碼大致是這樣的:
println(“<input type=hidden name=msg value=’ ” + msg + ” ‘ />”)


4.是一個PHP的SQL腳本拼接問題,容易引起SQL注入漏洞,應該使用轉義後的參數化的@查詢。代碼大致如下:
$sql = “select (*) from users where username = ‘”.username.”‘ and pw = ‘”.pw.”‘ limit 1″;

$result = mysql_query($sql);


5.是一個是參數過濾漏洞 download(“/xxx/pdf/”+pdf_file),對於要請求的文件沒有進行後綴名驗證,也沒有過濾敏感字符,應該加上後綴名檢測和敏感字符檢測。

寫到這裏,感覺自己是跪了的節奏啊,自己的專業技術素養真是菜了可以,不管怎麼說,感謝阿X讓我得到了一個信息安全筆試的經歷,好吧,安慰下自己,無論結果如何,我曾經努力過,跌倒了也不後悔,做個打不死的小強--- for my dream of security.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章