一些面試題

(1)SQL注入的成因、代碼層防禦方式

對用戶輸入未進行完整過濾就將其拼接到SQL語句中,addslashes()函數可以過濾單雙引號、反斜線和空或者用intval()函數將變量裏所有字符串移出,只返回數字部分。

(2)XSS的成因、代碼層防禦方式、寫出3條xsspayload:

對用戶往Web頁面輸入部分過濾不嚴格導致攻擊者可以插入惡意js代碼。Httpspecialchars()會將輸出HTML標記實體轉義。

Payload:<img src=@ onerror=javascript:alert(/xss/)>

<svg><script>alert(/1/)</script>

Onfocus=alert(/xss/)

(3)mysql的網站注入,5.0以上和5.0以下有什麼區別?

  • 5.0以下沒有information_schema這個系統表,無法列表名等,只能暴力跑表名。
  • 5.0以下是多用戶單操作,5.0以上是多用戶多操做。

(4)在滲透過程中,收集目標站註冊人郵箱對我們有什麼價值?

  • 丟社工庫裏看看有沒有泄露密碼,然後嘗試用泄露的密碼進行登錄後臺。(基本都死了)
  • 社工找出社交賬號,裏面或許會找出管理員設置密碼的習慣 。
  • 利用已有信息生成專用字典。
  • 觀察管理員常逛哪些非大衆性網站,拿下它,你會得到更多好東西。

 (5)判斷出網站的CMS對滲透有什麼意義?

  • 查找網上已曝光的程序漏洞。
  • 如果開源,還能下載相對應的源碼進行代碼審計。

(6)一個成熟並且相對安全的CMS,滲透時掃目錄的意義?

  1. 敏感文件、二級目錄掃描
  2. 站長的誤操作比如:網站備份的壓縮文件、說明.txt、二級目錄可能存放着其他站點

(7)常見的網站服務器容器

IISApachenginxLighttpdTomcat

(8)mysql注入點,用工具對目標站直接寫入一句話,需要哪些條件?

 root權限以及網站的絕對路徑。

(9)如何手工快速判斷目標站是windows還是linux服務器?

linux大小寫敏感,windows大小寫不敏感。

(10)爲何一個mysql數據庫的站,只有一個80端口開放?

  • 更改了端口,沒有掃描出來。
  • 站庫分離。
  • 3306端口不對外開放

(11)3389無法連接的幾種情況。

  •  沒開放3389 端口
  • 端口被修改
  • 防護攔截
  • 處於內網(需進行端口轉發)

(12)如何突破注入時字符被轉義?

  • 寬字符注入
  • hex編碼繞過

(13)在某後臺新聞編輯界面看到編輯器,應該先做什麼?

查看編輯器的名稱版本,然後搜索公開的漏洞。

(14)拿到一個webshell發現網站根目錄下有.htaccess文件,我們能做什麼?

  •    .htaccess是一個純文本文件,它裏面存放着Apache服務器配置相關的指令。
  •     .htaccess主要的作用有:URL重寫、自定義錯誤頁面、MIME類型配置以及訪問權限控制等。主要體現在僞靜態的應用、圖片防盜鏈、自定義404錯誤頁面、阻止/允許特定IP/IP段、目錄瀏覽與主頁、禁止訪問指定文件類型、文件密碼保護等。
  •        .htaccess的用途範圍主要針對當前目錄。

可以插入解析信息:
<FilesMatch "xxx.jpg"> SetHandler application/x-httpd-php </FilesMatch>
這樣就製造了個apache解析漏洞。

(15)提權時選擇可讀寫目錄,爲何儘量不用帶空格的目錄?

因爲exp執行多半需要空格界定參數

(16)某個防注入系統,在注入時會提示:

 系統檢測到你有非法注入的行爲。

 已記錄您的ip xx.xx.xx.xx

 時間:2016:01-23

 提交頁面:test.asp?id=15

 提交內容:and 1=1

如何利用這個防注入系統拿shell?

在URL裏面直接提交一句話,這樣網站就把你的一句話也記錄進數據庫文件了 這個時候可以嘗試尋找網站的配置文件 直接上菜刀鏈接。

(17)上傳大馬後訪問亂碼時,有哪些解決辦法?

瀏覽器中改編碼

(18)目標站禁止註冊用戶,找回密碼處隨便輸入用戶名提示:“此用戶不存在”,你覺得這裏怎樣利用?

  • 先爆破用戶名,再利用被爆破出來的用戶名爆破密碼。
  • 其實有些站點,在登陸處也會這樣提示
  • 所有和數據庫有交互的地方都有可能有注入。

(19)目標站發現某txt的下載地址爲http://www.test.com/down/down.php?file=/upwdown/1.txt,你有什麼思路?

這是下載漏洞!在file=後面嘗試輸入index.php下載他的首頁文件,然後在首頁文件裏繼續查找其他網站的配置文件,可以找出網站的數據庫密碼和數據庫的地址。

(20)甲給你一個目標站,並且告訴你根目錄下存在/abc/目錄,並且此目錄下存在編輯器和admin目錄。請問你的想法是?

直接在網站二級目錄/abc/下掃描敏感文件及目錄。

(21)在有shell的情況下,如何使用xss實現對目標站的長久控制?

  • 後臺登錄處加一段記錄登錄賬號密碼的js,並且判斷是否登錄成功,如果登錄成功,就把賬號密碼記錄到一個生僻的路徑的文件中或者直接發到自己的網站文件中。(此方法適合有價值並且需要深入控制權限的網絡)。
  • 在登錄後纔可以訪問的文件中插入XSS腳本。

(22)目標站無防護,上傳圖片可以正常訪問,上傳腳本格式訪問則403.什麼原因?

原因很多,有可能web服務器配置把上傳目錄寫死了不執行相應腳本,嘗試改後綴名繞過

(23)審查元素得知網站所使用的防護軟件,你覺得怎樣做到的?

在敏感操作被攔截,通過界面信息無法具體判斷是什麼防護的時候,F12看HTML體部 比如護衛神就可以在名稱那看到<hws>內容<hws>。

(24)在win2003服務器中建立一個 .zhongzi文件夾用意何爲?

隱藏文件夾,爲了不讓管理員發現你傳上去的工具。

(25)HTTP狀態碼

301   URL 重定向,永久移動

302   URL 重定向,臨時移動

400   客戶端請求有語法錯誤,不能被服務器理解

401   請求未經授權

403   服務器收到請求,但是拒絕服務

500   服務器內部錯誤

503   服務器當前不能處理客戶端請求,一段時間後可能恢復正常

(26)灰鴿子是一個什麼軟件能夠實現什麼功能

灰鴿子就是一款遠程控制和管理計算機的工具!它的功能有:

  • 1.對遠程計算機文件管理:模枋 Windows 資源管理器,可以對文件進行復制、粘貼、刪除,重命名、遠程運行等,可以上傳下載文件或文件夾,操作簡單易用。
  • 2.遠程控制命令:查看遠程系統信息、剪切板查看、進程管理、窗口管理、鍵盤記錄、服務管理、共享管理、代理服務、MS-Dos模擬(telnet)!
  • 3.捕獲屏幕
  • 4.視頻監控
  • 5.語音監聽和發送
  • 6.鍵盤記錄
  • 7.註冊表模擬器
  • 8代理服務
  • 9.命令廣播

(27)請模擬一次對大型商業網站的攻擊,請寫出你的思路和基本步驟

  1. 收集信息,多利用搜索引擎.
  2. 對服務器進行常規掃描:包括開放端口,常規弱口令(sql,ftp,smtp…),系統溢出漏洞等等;
  3. 看看能不能進行腳本注入攻擊; 網站登陸口有沒有弱口令; 有沒有論壇,留言本之類的; 有沒有上傳漏洞;
  4. 能不能暴庫
  5. 如果能知道網站腳本程序,搜索相關信息,能下載到源碼的,可以下載回本機研究;
  6. 網站一級目錄沒有收穫,可以查詢二級目錄進行新一輪攻擊嘗試; 看看服務器有沒有綁定其他網站域名,旁註; 網站服務器沒辦法突破,可以掃同一網段的機子,如果能入侵其中一臺,嗅探.

(28)XXE漏洞的原理、危害、防禦方法

XXE漏洞發生在應用程序解析XML輸入時,沒有禁止外部實體的加載,導致可加載惡意外部文件,造成文件讀取、命令執行、內網端口掃描、攻擊內網網站、發起dos攻擊等危害。xxe漏洞觸發的點往往是可以上傳xml文件的位置,沒有對上傳的xml文件進行過濾,導致可上傳惡意xml文件。

XML文件作爲配置文件(Spring、Struts2等)、文檔結構說明文件(PDF、RSS等)、圖片格式文件(SVG header)應用比較廣泛,此外,網上有一些在線XML格式化工具也存在過問題

xxe漏洞檢測

第一步檢測XML是否會被成功解析:

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE ANY [  
<!ENTITY name "my name is guolala">]>    
<root>&name;</root>

如果頁面輸出了my name is guolala,說明xml文件可以被解析。

第二步檢測服務器是否支持DTD引用外部實體:

<?xml version=”1.0” encoding=”UTF-8”?>  
<!DOCTYPE ANY [  
<!ENTITY % name SYSTEM "http://localhost/index.html">  
%name;  
]>

可通過查看自己服務器上的日誌來判斷,看目標服務器是否向你的服務器發了一條請求test.xml的請求。

如果支持引用外部實體,那麼很有可能是存在xxe漏洞的。

xxe漏洞修復和防禦

php:

libxml_disable_entity_loader(true);

JAVA:

DocumentBuilderFactory dbf =DocumentBuilderFactory.newInstance();
dbf.setExpandEntityReferences(false);

Python:

from lxml import etree
xmlData = etree.parse(xmlSource,etree.XMLParser(resolve_entities=False))

過濾用戶提交的XML數據:

過濾關鍵詞:<!DOCTYPE和<!ENTITY,或者SYSTEM和PUBLIC。

 

(29)SSRF漏洞

是一種由攻擊者構造形成由服務端發起請求的一個安全漏洞。一般情況下,SSRF 攻擊的目標是從外網無法訪問的內部系統。正是因爲它是由服務端發起的,所以它能夠請求到與它相連而與外網隔離的內部系統

SSRF 形成的原因大都是由於服務端提供了從其他服務器應用獲取數據的功能且沒有對目標地址做過濾與限制。

如何尋找SSRF漏洞

從 Web 功能上尋找

  • 1)分享:通過URL地址分享網頁內容
  • 2)圖片加載與下載:通過URL地址加載或下載圖片
  • 3)圖片、文章收藏功能

從 URL 關鍵字尋找

大致有以下關鍵字:

share、wap、url、link、src、source、target、u、3g、display、sourceURl、imageURL、domain

如果利用 google 語法加上這些關鍵字去尋找 SSRF 漏洞,耐心的驗證,現在還是可以找到存在的 SSRF 漏洞

防禦方法

1,過濾返回信息,驗證遠程服務器對請求的響應是比較容易的方法。如果web應用是去獲取某一種類型的文件。那麼在把返回結果展示給用戶之前先驗證返回的信息是否符合標準。

2, 統一錯誤信息,避免用戶可以根據錯誤信息來判斷遠端服務器的端口狀態。

3,限制請求的端口爲http常用的端口,比如,80,443,8080,8090。

4,黑名單內網ip。避免應用被用來獲取獲取內網數據,攻擊內網。

5,禁用不需要的協議。僅僅允許http和https請求。可以防止類似於file:///,gopher://,ftp:// 等引起的問題。

 

(30)如何做掃描器-思路-爲什麼要這麼設計

通過連接測試服務端口可以判斷端口是否開放

(1) TCP 全連接掃描

嘗試與目標主機建立正常的TCP三次握手,如果能建立三次握手,說明目標端口開放,但是掃描過程容易被檢測到。

(2) TCP SYN 掃描 ( TCP 的半連接掃描)

利用 TCP 前兩次握手,如第二次握手回覆了,則證明端口開放,因爲沒有第三次握手建立連接,降低了被發現的可能,同時提高了掃描性能

(3) TCP FIN 掃描

向目標主機發送 FIN 標誌位爲 1 的數據包進行探測。

如果目標端口開放,則丟棄此包,不進行迴應

若未開放,則返回一個 RST 標誌位爲 1 的數據包

這種掃描更隱祕又叫祕密掃描通常用於 UNIX 操作系統主機

有的 Windows 主機 ( Windows NT ),不論端口是否開放都回復 RST。

(4) UDP 的 ICMP 端口不可達掃描

用 UDP 協議向目標主機 UDP 端口發送探測數據包。

如果目標端口未打開,會返回一個 ICMP_PORTUNREACHABLE 錯誤。

根據是否收到這個消息,可以發現關閉的 UDP 端口

(5) ICMP 掃描

用 ICMP 協議向目標主機發送一個協議存在錯誤的 IP 數據包

根據反饋的 ICMP 信息判斷目標主機使用的網絡服務和端口

(6) 亂序掃描和慢速掃描

將掃描端口的順序打亂,降低掃描速度,躲避防火牆和入侵檢測系統的檢查

(31)Jsonp劫持漏洞的原理、利用方式、防禦方法

JSON 劫持又爲“ JSON Hijacking ”,這裏其實是屬於CSRF的範疇。攻擊者可以在自己的站點中寫入一條訪問Json的JS,在用戶Cookie未過期的情況下,Json中會返回敏感的用戶信息,然後攻擊者可以獲取到數據,併發送到自己的站點。

 

(32)請說明電商系統的加車、下單、支付過程中,常見的邏輯漏洞有哪些,如何挖掘?

登錄系統,結算商品提交訂單確認支付時,用burp抓取數據包,修改金額的參數,跳轉到支付頁面,看實際支付金額是否被修改。

 

(33)邏輯漏洞

1.訂單金額任意修改

2.驗證碼回傳

3.未進行登陸憑證驗證

4.接口無限制枚舉

5.cookie設計存在缺陷

6.找回密碼存在設計缺陷

7.單純讀取內存值數據來當作用戶憑證

https://www.freebuf.com/vuls/112339.html

 

(34)什麼是同源策略,有什麼作用?同源策略中Access-Control-Allow-Origin的作用是什麼?

所謂同源,就是指兩個頁面具有相同的協議、主機(也常說域名)、端口,三個要素缺一不可。

限制範圍:
1.cookie、localstorage和indexDB無法讀取。
2.Dom無法獲得。
3.AJAX請求不能發送。
雖然限制很必要但是有些合理的用途也會受到影響,比如同站點下的不同域名不能共享cookie。

有什麼作用

瀏覽器出於安全方面的考慮,不允許跨域調用其他頁面的對象,防止惡意網站盜竊數據。但在安全限制的同時也給注入iframe或是Ajax應用上帶來了不少的麻煩,所以有時候就必須跨域。

Access-Control-Allow-Origin

Access-Control-Allow-Origin是HTML5中定義的一種解決資源跨域的策略。

他是通過服務器端返回帶有Access-Control-Allow-Origin標識的Response header,用來解決資源的跨域權限問題。

 

(35)CSRF的成因、利用方式、哪些功能容易有CSRF,防禦方法

成因

攻擊者通過構造好的URL可以僞造用戶執行操作。

CSRF與XSS最大的區別就在於,CSRF並沒有盜取cookie而是直接利用

防禦

CSRF的防禦可以從服務器和客戶端兩方面着手,防禦效果是從服務器着手效果比較好,現在的CSRF防禦也都在服務器端進行的。

1.Cookie Hashing(所有表單都包含同一個僞隨機值):
2.驗證碼
3.驗證 HTTP Referer 字段

4.Anti CSRF Token

 

(36)Mysql導出php一句話木馬

select  ’<?php eval($_POST[cmd]);?>’  into outfile ’e:/www/eval.php’;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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