一、判斷題
1、DNS既使用TCP協議,又使用UDP協議。
答案:正確
解析:注意到DNS名字服務器使用的熟知端口號無論對UDP還是TCP都是53.這意味着DNS均支持UDP和TCP訪問。 (《TCP/IP詳 解卷1》)
DNS在區域傳輸的時候使用TCP協議,其他時候使用UDP協議。
DNS區域傳輸的時候使用TCP協議:
1.輔域名字服務器會定時(一般3小時)向主域名服務器進行查詢以便了解主域名服務器數據是否有變動。如有變動,會執行一次區域傳送,進行數據同步。區域傳送將使用TCP而不是UDP,因爲數據同步傳送的數據量比一個請求應答的數據量要多得多。
2.TCP是一種可靠連接,保證了數據的準確性。
域名解析時使用UDP協議:
客戶端向DNS服務器查詢域名,一般返回的內容都不超過512字節,用UDP傳輸即可。不用經過三次握手,這樣DNS服務器負載更低,響應更快。理論上說,客戶端也可以指定向DNS服務器查詢時用TCP,但事實上,很多DNS服務器進行配置的時候,僅支持UDP查詢包。
2、小明使用JavaScript判斷當前網頁是否屬於www.example.org。假設location、document均未被代碼重載或覆蓋,它的判斷方式爲:
if (location.protocol ==="https" || location.protocol ==="http" && document.domain.indexOf("www.example.org") != -1)
pass;
能夠判斷嗎?
答案:
3、在Web容器日誌中有如下GET請求:
"/?filter=md5&s=Index/think\Request/input&data=1"
認爲它是正常thinkphp請求?
答案:
4、透明代理模式、反向代理模式、主機防護模塊都可應用到WAF的部署架構?
答案:
解析:· WAF部署模式分類
根據WAF工作方式及原理不同可以分爲四種工作模式:透明代理模式、反向代理模式、路由代理模式及端口鏡像模式。前三種模式也被統稱爲在線模式,通常需要將WAF串行部署在WEB服務器前端,用於檢測並阻斷異常流量。端口鏡像模式也稱爲離線模式,部署也相對簡單,只需要將WAF旁路接在WEB服務器上游的交換機上,用於只檢測異常流量。
所以這裏主機防護模塊是不正確的。
5、OpenWRT是一個嵌入式Linux發行版,常用作路由系統,自帶WiFi防蹭網功能?
答案:
解析: OpenWrt 項目由 2004 年 1 月開始, 第一個版本是基於 Linksys 提供的 GPL 源碼及 uclibc 中的 buildroot 項目, 這個版本稱爲 “stable” 版, 在網上至今仍有很多項目使用這個版本, 較爲有名 Freifunk-Firmware 和 Sip@Home[參見百度百科]
關於OpenWrt有個中文應用技術網(www.openwrt.org.cn)
二 不定項選擇
1、哪些密碼體制,除了有保密功能,還具有鑑別的功能?
答案:
2、在ARM環境下,sp=0x80000000,則執行LDMFD sp!;{R0~R7, LR} 後,sp=()
答案:
解析: 根據ATPCS規則,我們一般使用FD(FullDescending)類型的數據棧!所以經常使用的指令就有STMFD和LDMFD。這兩個指令一般用於進行程序搬移等大規模操作前的cpu現場保護和操作結束後的現場恢復,屬於非單一連續的壓棧和出棧。
3、智能廠商解決“特斯拉”線圈此類小黑盒攻擊的方案有()
答案:收到強電壓衝擊導致內部元件失效,所以解決方案主要是增加電磁衝擊防護。
解析:特斯拉線圈是用來產生瞬時高壓閃電的,可以簡單理解爲一個變壓器,而小黑盒產生的是高頻電磁脈衝輻射(非電離輻射,對身體沒有影響),也就是EMP,可以瞬間讓周圍的電子設備失效。 如果電路沒有做好電磁屏蔽的話,外面的磁場也會對電路板裏的電流形成干擾。要是磁場產生的電流過大,還會造成電路板裏面的元器件失靈或者損壞,對於智能鎖的影響之一就是重啓智能鎖電路造成的開門。防護大概分成兩類吧:
第一類,就是在設計中加入“保護電路”,讓電路板不容易受到電磁波的影響。
第二類,就是增加安全屏蔽罩。簡單說就是用全金屬包裹在電路板外面,電磁波就沒辦法進入它內部了。
4、nmap的哪些選項是使用了SSL協議?(-sV,-sT,-sn,-A)
答案:-sV可以探測出使用SSL協議的服務
解析:-sV 端口版本探測 ,使用TCP協議
-sT 使用TCP連接,使用TCP協議
-sn Ping掃描,禁用端口發現,使用ARP協議
-A 系統詳細信息探測,使用TCP協議
所以這裏應該是理解有誤,應該是哪些可以探測到使用SSL協議的服務
5、下面用於安卓App動態測試的工具有?(Drozer, ApkTool, Androguard, JD-Gui)
答案:
解析: Drozer - 一款針對Android應用程序漏洞檢測工具(安全檢測框架),可以進行交互( 見https://labs.mwrinfosecurity.com/tools/drozer/)
ApkTool - Android的apk程序反編譯工具,同時會用到dex2jar與JD-Gui工具,( dex2jar.jar,將apk中的classes.dex轉化成Jar文件,再通過jd-gui工具反編譯jar文件。)
Androguard - Apk的靜態分析工具。
JD-Gui - 一款JAVA反編譯工具。
6、下面哪些函數可以實現MySQL注入帶外通道攻擊?
(UTL_INADDR、UPDATEXML、UTL_HTTP、LOAD_FILE)
答案:
解析: 有時候注入發現並沒有回顯,也不能利用時間盲注,那麼就可以利用帶外通道,也就是利用其他協議或者渠道,如http請求、DNS解析、SMB服務等將數據帶出。
UTL_INADDR - 用於取得局域網或Internet環境中的主機名和IP地址.
UPDATEXML - 可以實現MySQL的報錯注入
UTL_HTTP - Oracle中可以通過UTL_HTTP發送http請求
LOAD_FILE - 可以實現MySQL注入
7、下面哪些協議屬於網絡層協議?(Ping、SSL、Https、SNMP)
答案:
解析:
(1)應用層:TELNET、FTP、TFTP、SMTP、SNMP、HTTP、BOOTP、DHCP、DNS、SSH、HTTPS
(2)表示層:
文本:ASCII,EBCDIC
圖形:TIFF,JPEG,GIF,PICT
聲音:MIDI,MPEG,QUICKTIME
(3)會話層:NFS、SQL、RPC 、X-WINDOWS、ASP(APPTALK會話協議)、SCP
(4)傳輸層:TCP、UDP、SPX 、SSL、TSL(實際上SSL、TSL並不適用於OSI,難以具體界定屬於哪一層。 《計算機網絡-自頂向下方法》中提到:SSL在技術上位於應用層,但從開發者的角度看,它是一個提供TCP服務的運輸層協議。)
(5)網絡層:IP、IPX、ICMP(Ping命令使用ICMP協議)、ARP、RARP、RIP、OSPF(Open Shortest Path First開放式最短路徑優先)
(6)數據鏈路層:SDLC、HDLC、PPP、STP(Spanning Tree Protocol)、幀中繼
(7)物理層:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45
8、有些MySQL諸如點使用sqlmap這類工具可以獲取到表結構是因爲?
答案:
解析:
9、遠程管理Linux是,()方式採用加密數據?(Rlogin、SSH、Telnet、Rsh)
答案:
分析:
Rlogin - 最初是是現在unix系統中的遠程登錄協議。由於客戶端進程和服務器進程已經事先知道了對方的操作系統類型,因此也就省去了選項協商機制。總的來說,它與telnet協議類似,不過內部實現要相對簡單。明文傳輸
Telnet - 是通過客戶端與服務器之間的選項協商機制,實現了提供特定功能的雙方通信。明文傳輸
SSH - Secure Shell, SSH協議是建立在應用層和傳輸層上的安全協議,加密傳輸
Rsh - Remote shell,明文傳輸
10、下面不屬於安卓的遠程攻擊面的有?(URI Schema、JSAPI、開放端口、Exported Receiver)
答案:
解析:
11、關於PHP審計,下面說法()
答案:
解析:
12、下面不屬於DNS記錄類型的是()(MX、AAAA、EXT、NS)
答案:
解析:
縮寫 |
全稱 |
|
SOA |
Start Of Authority Record |
起始授權記錄 |
A(v4)、AAAA(v6) |
Address Record |
地址記錄 |
CNAME |
Canonical Name Record |
規範(別名)記錄 |
MX |
Mail eXchange Record |
郵件交換記錄 |
NS |
Name Server Record |
域名服務器記錄 |
PTR |
PoinTer Record |
記錄用於定義與IP地址相關的名稱 |
13、假定一個構造函數爲:
A(int aa, int bb)
{
a = aa++;
b = a * ++bb;
}
則執行Ax(3, 4)語句後,x.a,x.b的值爲?
答案:
解析:
14、在ARM環境下,以下哪些指令可以從 Non Secure World(如Linux內核)切換至 Secure World(如TrustZone)
(SMC、HVC、SVC、TMC)
答案:
解析:
15、爲了避免某些瀏覽器主動嗅探頁面類型,需要在返回包中帶上哪個響應頭?
(X-Frame-Options、Content-Security-Policy、Access-Control-Allow-Origin、X-Content-Type-Options)
答案:
解析:
16、滲透測試中,哪些命令可以用於搜索敏感配置文件?
(locate *.conf、whereis *.conf、find l -name *.conf、search *.conf)
答案:
解析:
17、哪種指紋識別方式防禦假指紋攻擊效果最好?(電容、超聲波、光學、電容+RF射頻)
答案:
解析:
18、假設參數id存在union注入,下列哪些請求可以繞過正則
"\bunion(\s|\d)*(.|\n)+?\bselect"
並對MySQL正常解析?
A、 id=1 inion%a0select 1, 2
B、 id=1 + union(select 1, 2)
C、 id=1 union/**/ select 1, 2
D、 id=1.0union select 1,
答案:
解析:
19、關於DDOS攻擊描述正確的是?
答案:
解析:
20、執行完C代碼 printf("%d", total) 輸出total的值爲多少?
unsigned char total = 0;
unsigned char MAX = 0x100;
unsigned char i = 0;
while (1) {
total +=i++;
if (i == MAX) break;
}
printf("%d\n",total);
答案:128
解析:字符變量實際上也被當做int變量處理,無符號字符佔一個字節,也就是8bit,而且最高位是0,即表示的最大正整數爲127(0111 1111),而對十六進制數0x100,字節數爲4,也就是32bit,因此實際上MAX的有效爲只有其後八位,全0.故所有變量初始都是空字符。在判斷i == MAX時先有i++,所以下一次i == MAX前,i=255(1111 1111),total=129(1000 0001),在下一次,i == 0,total = total + i
也就是 1111 1111
+1000 0001
=1000 0000 =128
21、在Redhat Linux中,哪些命令可以查看kernel信息?(ls kernel、kernek、check、uname)
答案:
解析:在給出的命令中,只有uname -a可以,這隻要在系統下操作即可
22、關於路由器的說法
答案:
解析:
23、哪些工具可以破解密碼?
答案:
解析:
John the Ripper - John the Ripper is a fast password cracker, currently available for many flavors of Unix, Windows, DOS, and OpenVMS. ( https://www.openwall.com/john/)
Patator - 暴力破解測試工具,Patator本身使用Python開發,需要自己提供字典庫
Hydra - hydra是黑客組織thc的一款開源密碼攻擊工具,功能十分強大,支持多種協議的破解,在KALI的終端中執行hydra -h可以看到詳細介紹
Ophcrack - Ophcrack is a free Windows password cracker based on rainbow tables. It is a very efficient implementation of rainbow tables done by the inventors of the method. It comes with a Graphical User Interface and runs on multiple platforms.
24、關於https和http協議區別的描述
答案:
解析:
25、ipv6不包含哪種類型?(廣播、多播、單播、任播)
答案:廣播
解析: IPV6的地址編制打破分類概念,所以沒有廣播。
26、有關多態性(指的是語言編譯方面)
答案:
解析:
27、如果一個頁面設置了CSP,哪些代碼內的JS會因 script-src 'unsafe-inline' 這個關鍵字而被瀏覽器執行?
答案:
解析:CSP:Contetn-Security-Policy,內容安全策略
29哪些協議可以用來屏蔽通信?(ICMP、SSH、DNS、HTTP)
答案:SSH
解析:
29、以下哪種語言可以用來開發以太坊區塊鏈智能合約?(Solidity、PH、C++、Python)
答案:
解析: Solidity 是一門面向合約的、爲實現智能合約而創建的高級編程語言。這門語言受到了 C++,Python 和 Javascript 語言的影響,設計的目的是能在以太坊虛擬機(EVM)上運行。 它的語法接近於Javascript,是一種面向對象的語言。( https://solidity.readthedocs.io/en/v0.5.7/)
30、有關UDP協議的描述
答案:
解析:
三、填空
1、對於暴露的Activity組件而言,如果定義了data android:schema並且category設置爲android.intent.category,(______)則可能存在被遠程攻擊的風險。
答案:
解析:
2、請實現一個安全的計算兩個數最小值的宏,邏輯爲
-三目運算符-- 條件?真值?假值
#define MIN(x, y) ____
答案:#define MIN(x,y) ((x)<(y)?(x):(y))
解析:如果沒有括號可能產生意想不到的結果
3、通常。將以整數右移31位或32位是不推薦的,因爲他們的結果可能不符合開發者的預期,並可能導致非常隱蔽的安全問題。
審計下面代碼:
int a = -1;
int b = a >>31;
int c = a >>32;
則 b + c = a >> 31 + a >> 32是否成立?如果成立請填Yes。如果不成立,則 int anwser = b + c - (a >> 31 + a >> 32) 的值爲多少?對GCC、MSVC結果應一樣。
答案:不成立,anwser=-1
解析:b+c=-2,而a >> 31 + a >> 32爲-1【但是還不理解,求講解】
有這麼幾個概念:左移: 丟棄最高位,0補最低位,如果移動的位數m超過數據本身的位數n,那麼移動的數爲m%n的結果,也就是如果對一個32bit的數移動33位,那麼實際上移動了33%32=1位。
右移: 符號位向右移動後,正數的話補0,負數補1,也就是彙編語言中的算術右移.同樣當移動的位數超過類型的長度時,會取餘數,然後移動餘數個位.這裏右移32位可看作沒有移動。
但是數據在內存中是保存的補碼。故a的保存形式爲0xffffffff。實際上不管怎麼右移它將一直是-1。而a >> 31 + a >> 32爲-1【但是還不理解,求講解】
4、PHP用來過濾注入的兩個函數是()()
答案:
解析:
5、Shell編程時使用方括號測試條件的規則是:方括號兩邊必須有()
答案:空格
解析:
6、HTTP協議最常用的兩種請求方法()()(按字母順序,全部大寫)
答案:GET、POST
解析:
7、Ping命令是通過()協議實現的?
答案:ICMP
解析:
8、 TCP首部6個標誌位,其中()置位時可以異常終止一個連接
答案:RST
解析:
四、問答
1、通過服務器固件(如BIOS)等方式植入木馬後門已成爲很多APT團伙的攻擊手段,如何防範、檢測這種後門?
2、(題目較長,記錄並不完整)某公司有衆多業務,相似業務的流量特性相近,現需要準確識別某公司業務流中TCP協議的ack標誌位的異常流量,數據量足夠多,且時效性要求較高。如何準確、高效識別出TCP流量中的異常流量?
以上部分內容也許並不詳細,不過能提供一個大體的方向,
同時也希望讀者對自己關於某些題的見解通過回覆來一起
分享。