hacktricks/network-services-pentesting/pentesting-web
2024-02-02 12:15:37 +00:00
..
buckets Translated ['network-services-pentesting/pentesting-web/README.md', 'net 2023-12-31 02:59:27 +00:00
electron-desktop-apps Translated ['network-services-pentesting/pentesting-printers/cross-site- 2024-01-08 12:42:06 +00:00
php-tricks-esp Translated ['network-services-pentesting/pentesting-web/php-tricks-esp/R 2024-02-02 12:15:37 +00:00
tomcat Translated ['generic-methodologies-and-resources/exfiltration.md', 'gene 2023-09-03 01:34:43 +00:00
xss-to-rce-electron-desktop-apps Translated to Chinese 2023-08-03 19:12:22 +00:00
403-and-401-bypasses.md Translated ['network-services-pentesting/pentesting-rdp.md', 'network-se 2024-01-11 13:57:14 +00:00
aem-adobe-experience-cloud.md Translated ['network-services-pentesting/pentesting-printers/README.md', 2024-01-08 12:07:15 +00:00
angular.md Translated ['README.md', 'backdoors/salseo.md', 'cryptography/certificat 2023-09-24 14:35:53 +00:00
apache.md Translated ['network-services-pentesting/pentesting-printers/README.md', 2024-01-08 12:07:15 +00:00
artifactory-hacking-guide.md Translated ['network-services-pentesting/pentesting-printers/README.md', 2024-01-08 12:07:15 +00:00
bolt-cms.md Translated ['network-services-pentesting/pentesting-mssql-microsoft-sql- 2024-01-02 22:21:01 +00:00
cgi.md Translated ['network-services-pentesting/pentesting-printers/README.md', 2024-01-08 12:07:15 +00:00
code-review-tools.md Translated ['network-services-pentesting/pentesting-web/README.md', 'net 2023-12-31 02:59:27 +00:00
dotnetnuke-dnn.md Translated to Chinese 2023-08-03 19:12:22 +00:00
drupal.md Translated ['network-services-pentesting/pentesting-web/README.md', 'net 2023-12-31 02:59:27 +00:00
flask.md Translated ['network-services-pentesting/pentesting-web/README.md', 'net 2023-12-31 02:59:27 +00:00
git.md Translated ['network-services-pentesting/pentesting-printers/README.md', 2024-01-08 12:07:15 +00:00
golang.md Translated ['network-services-pentesting/pentesting-printers/README.md', 2024-01-08 12:07:15 +00:00
grafana.md Translated to Chinese 2023-08-03 19:12:22 +00:00
graphql.md Translated ['network-services-pentesting/pentesting-web/README.md', 'net 2023-12-31 02:59:27 +00:00
gwt-google-web-toolkit.md Translated ['network-services-pentesting/pentesting-web/README.md', 'net 2023-12-31 02:59:27 +00:00
h2-java-sql-database.md Translated ['network-services-pentesting/pentesting-web/README.md', 'net 2023-12-31 02:59:27 +00:00
iis-internet-information-services.md Translated ['network-services-pentesting/pentesting-web/README.md', 'net 2023-12-31 02:59:27 +00:00
imagemagick-security.md Translated to Chinese 2023-08-03 19:12:22 +00:00
jboss.md Translated ['README.md', 'backdoors/salseo.md', 'cryptography/certificat 2024-01-10 06:29:36 +00:00
jira.md Translated ['network-services-pentesting/pentesting-printers/README.md', 2024-01-08 12:07:15 +00:00
joomla.md Translated ['network-services-pentesting/pentesting-web/joomla.md'] to c 2023-12-25 00:37:50 +00:00
jsp.md Translated ['network-services-pentesting/pentesting-printers/README.md', 2024-01-08 12:07:15 +00:00
laravel.md Translated ['linux-hardening/privilege-escalation/docker-security/docker 2023-12-19 21:55:08 +00:00
moodle.md Translated ['README.md', 'backdoors/salseo.md', 'cryptography/certificat 2024-01-10 06:29:36 +00:00
nginx.md Translated ['network-services-pentesting/pentesting-rdp.md', 'network-se 2024-01-11 13:57:14 +00:00
nodejs-express.md Translated to Chinese 2023-08-03 19:12:22 +00:00
put-method-webdav.md Translated ['README.md', 'backdoors/salseo.md', 'cryptography/certificat 2024-01-10 06:29:36 +00:00
python.md Translated ['network-services-pentesting/pentesting-printers/README.md', 2024-01-08 12:07:15 +00:00
README.md Translated ['network-services-pentesting/pentesting-web/README.md', 'net 2023-12-31 02:59:27 +00:00
rocket-chat.md Translated ['network-services-pentesting/pentesting-web/README.md', 'net 2023-12-31 02:59:27 +00:00
special-http-headers.md Translated to Chinese 2023-08-03 19:12:22 +00:00
spring-actuators.md Translated ['network-services-pentesting/pentesting-web/README.md', 'net 2023-12-31 02:59:27 +00:00
symphony.md Translated ['network-services-pentesting/pentesting-printers/cross-site- 2024-01-08 12:42:06 +00:00
tomcat.md Translated ['network-services-pentesting/pentesting-dns.md', 'network-se 2023-11-05 15:50:35 +00:00
uncovering-cloudflare.md Translated ['network-services-pentesting/pentesting-web/README.md', 'net 2023-12-31 02:59:27 +00:00
vmware-esx-vcenter....md Translated ['network-services-pentesting/pentesting-printers/cross-site- 2024-01-08 12:42:06 +00:00
waf-bypass.md Translated ['network-services-pentesting/pentesting-web/README.md', 'net 2023-12-31 02:59:27 +00:00
web-api-pentesting.md Translated ['README.md', 'backdoors/salseo.md', 'cryptography/certificat 2024-01-10 06:29:36 +00:00
werkzeug.md Translated ['network-services-pentesting/pentesting-rdp.md', 'network-se 2024-01-11 13:57:14 +00:00
wordpress.md Translated ['README.md', 'backdoors/salseo.md', 'cryptography/certificat 2024-01-10 06:29:36 +00:00

80,443 - 网络方法测试

从零开始学习AWS黑客攻击直到成为专家 htARTE (HackTricks AWS 红队专家)

支持HackTricks的其他方式

Bug赏金提示注册 Intigriti,一个由黑客创建的高级bug赏金平台!今天就加入我们 https://go.intigriti.com/hacktricks,开始赚取高达 $100,000 的赏金!

{% embed url="https://go.intigriti.com/hacktricks" %}

基本信息

网络服务是最常见和广泛的服务,存在许多不同类型的漏洞

默认端口: 80 (HTTP), 443(HTTPS)

PORT    STATE SERVICE
80/tcp  open  http
443/tcp open  ssl/https
nc -v domain.com 80 # GET / HTTP/1.0
openssl s_client -connect domain.com:443 # GET / HTTP/1.0

Web API 指南

{% content-ref url="web-api-pentesting.md" %} web-api-pentesting.md {% endcontent-ref %}

方法论总结

在这个方法论中,我们假设你将攻击一个域名(或子域名),仅此而已。因此,你应该将这个方法论应用于每个发现的域名、子域名或范围内未确定的 web 服务器的 IP。

  • 首先识别 web 服务器使用的技术。如果你能成功识别技术,寻找在测试其余部分时要记住的技巧
  • 该技术版本的已知漏洞
  • 使用任何知名技术?有没有有用的技巧来提取更多信息?
  • 有没有专业扫描器可以运行(比如 wpscan
  • 启动通用扫描器。你永远不知道它们是否会发现一些东西,或者是否会找到一些有趣的信息。
  • 初始检查开始:robotssitemap404 错误和 SSL/TLS 扫描(如果是 HTTPS
  • 开始爬网页面:现在是时候找到所有可能使用的文件、文件夹参数。同时,检查特殊发现
  • 注意,任何时候在暴力破解或爬网过程中发现新目录,都应该对其进行爬网。
  • 目录暴力破解:尝试暴力破解所有发现的文件夹,寻找新的文件目录
  • 注意,任何时候在暴力破解或爬网过程中发现新目录,都应该进行暴力破解。
  • 备份检查:测试是否可以通过追加常见的备份扩展名找到发现文件的备份
  • 暴力破解参数:尝试找到隐藏参数
  • 一旦你识别了所有可能接受用户输入端点,检查与之相关的所有类型的漏洞
  • 遵循此清单

服务器版本(有漏洞?)

识别

检查是否有针对正在运行的服务器版本已知漏洞
响应的 HTTP 头和 cookies 可能对识别正在使用的技术和/或版本非常有用。Nmap 扫描可以识别服务器版本,但使用工具 whatweb, webtechhttps://builtwith.com/ 也可能很有用****

whatweb -a 1 <URL> #Stealthy
whatweb -a 3 <URL> #Aggresive
webtech -u <URL>
webanalyze -host https://google.com -crawl 2

搜索web应用版本的漏洞

检查是否有WAF

Web技术技巧

在使用的不同知名技术中找到漏洞的一些技巧

请注意,相同域名可能在不同的端口文件夹子域名中使用不同技术
如果web应用使用了上述或其他任何知名技术/平台,不要忘记在互联网上搜索新技巧(并告诉我!)。

源代码审查

如果应用的源代码github上可用,除了自己进行白盒测试外,以下信息对当前的黑盒测试可能有用

  • 是否有通过web可以访问的变更日志、自述文件或版本文件或任何带有版本信息的内容?
  • 凭据保存在哪里?是否有任何带有凭据(用户名或密码)的(可访问的?)文件
  • 密码明文加密还是使用了哪种哈希算法
  • 它是否使用任何主密钥来加密某些内容?使用了哪种算法
  • 你能否利用某些漏洞访问这些文件
  • github上是否有任何有趣的信息(已解决和未解决的)问题?或在提交历史中(也许某个旧提交中引入了一些密码

{% content-ref url="code-review-tools.md" %} code-review-tools.md {% endcontent-ref %}

自动扫描器

通用自动扫描器

nikto -h <URL>
whatweb -a 4 <URL>
wapiti -u <URL>
W3af
zaproxy #You can use an API
nuclei -ut && nuclei -target <URL>

# https://github.com/ignis-sec/puff (client side vulns fuzzer)
node puff.js -w ./wordlist-examples/xss.txt -u "http://www.xssgame.com/f/m4KKGHi2rVUN/?query=FUZZ"

CMS 扫描器

如果使用了 CMS不要忘记运行扫描器,可能会发现一些有价值的信息:

Clusterd JBoss, ColdFusion, WebLogic, Tomcat, Railo, Axis2, Glassfish
CMSScanWordPress, Drupal, Joomla, vBulletin 网站的安全问题。(图形界面)
VulnX Joomla, Wordpress, Drupal, PrestaShop, Opencart
CMSMap(W)ordpress, (J)oomla, (D)rupal (M)oodle
droopscan Drupal, Joomla, Moodle, Silverstripe, Wordpress

cmsmap [-f W] -F -d <URL>
wpscan --force update -e --url <URL>
joomscan --ec -u <URL>
joomlavs.rb #https://github.com/rastating/joomlavs

在这个阶段你应该已经获取了一些客户端使用的web服务器的信息如果有数据提供的话以及在测试期间需要记住的一些技巧。如果你幸运的话你甚至可能找到了一个CMS并运行了一些扫描器。

逐步发现Web应用程序

从这里开始我们将开始与web应用程序交互。

初始检查

默认页面中有趣的信息:

  • /robots.txt
  • /sitemap.xml
  • /crossdomain.xml
  • /clientaccesspolicy.xml
  • /.well-known/
  • 同时检查主要和次要页面中的注释。

强制错误

当向Web服务器发送奇怪的数据时服务器可能会表现出意料之外的行为。这可能会打开漏洞泄露敏感信息

  • 访问像 /whatever_fake.php (.aspx,.html,.etc) 这样的假页面
  • cookie值参数值中添加"[]", "]]", 和 "[[" 来产生错误
  • 通过在URL末尾输入**/~randomthing/%s** 来生成错误
  • 尝试不同的HTTP动词如PATCH, DEBUG或错误的动词如FAKE

检查是否可以上传文件(PUT动词WebDav

如果你发现WebDav启用,但你没有足够的权限在根文件夹中上传文件,尝试:

  • 暴力破解凭证
  • 通过WebDav向网页内其余发现的文件夹上传文件。你可能有权限在其他文件夹中上传文件。

SSL/TLS漏洞

  • 如果应用程序没有强制用户使用HTTPS,那么它就容易受到中间人攻击
  • 如果应用程序通过HTTP发送敏感数据密码。那么这是一个高风险的漏洞。

使用 testssl.sh 来检查漏洞在Bug Bounty程序中这类漏洞可能不会被接受并使用 a2sv 来重新检查漏洞:

./testssl.sh [--htmlfile] 10.10.10.10:443
#Use the --htmlfile to save the output inside an htmlfile also

# You can also use other tools, by testssl.sh at this momment is the best one (I think)
sslscan <host:port>
sslyze --regular <ip:port>

关于SSL/TLS漏洞的信息

网络爬虫

在网站内启动某种网络爬虫。网络爬虫的目标是从被测试的应用程序中找到尽可能多的路径。因此,应使用网络爬取和外部资源来找到尽可能多的有效路径。

  • gospider (go): HTML爬虫JS文件中的LinkFinder以及外部资源Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com
  • hakrawler (go): HML爬虫带有JS文件的LinkFinder和Archive.org作为外部资源。
  • dirhunt (python): HTML爬虫还指出了“有价值的文件”。
  • evine(go): 交互式CLI HTML爬虫。它也在Archive.org中搜索。
  • meg (go): 这个工具不是爬虫但它可能有用。你可以只指定一个包含主机的文件和一个包含路径的文件meg会获取每个主机上的每个路径并保存响应。
  • urlgrab (go): 具有JS渲染能力的HTML爬虫。但是它似乎没有维护预编译版本很旧当前代码无法编译。
  • gau (go): 使用外部提供商wayback, otx, commoncrawl的HTML爬虫。
  • ParamSpider: 这个脚本会找到带参数的URL并列出它们。
  • galer (go): 具有JS渲染能力的HTML爬虫。
  • LinkFinder (python): HTML爬虫具有JS美化功能能够在JS文件中搜索新路径。也值得看看JSScanner它是LinkFinder的包装器。
  • goLinkFinder (go): 提取HTML源代码和嵌入式javascript文件中的端点。对于漏洞猎人、红队成员、信息安全忍者很有用。
  • JSParser (python2.7): 使用Tornado和JSBeautifier的python 2.7脚本用于从JavaScript文件中解析相对URL。便于轻松发现AJAX请求。看起来没有维护。
  • relative-url-extractor (ruby): 给定一个文件HTML它将使用巧妙的正则表达式从中提取URL从丑陋的压缩的文件中找到并提取相对URL。
  • JSFScan (bash, 多个工具): 使用多个工具从JS文件中收集有趣的信息。
  • subjs (go): 查找JS文件。
  • page-fetch (go): 在无头浏览器中加载页面并打印出加载页面所需的所有url。
  • Feroxbuster (rust): 结合了前面工具的多个选项的内容发现工具。
  • Javascript Parsing: 一个Burp扩展用于在JS文件中找到路径和参数。
  • Sourcemapper: 一个工具,给定.js.map URL将为您提供美化的JS代码。
  • xnLinkFinder: 这是一个用于发现给定目标端点的工具。
  • waymore: 从时光机器中发现链接(也下载时光机器中的响应并寻找更多链接)。
  • HTTPLoot (go): 爬取(甚至通过填写表单)并使用特定的正则表达式查找敏感信息。
  • SpiderSuite: Spider Suite是一个为网络安全专业人士设计的高级多功能GUI网络安全爬虫/蜘蛛。
  • jsluice (go): 它是一个Go包和命令行工具用于从JavaScript源代码中提取URL、路径、秘密和其他有趣的数据。
  • ParaForge: ParaForge是一个简单的Burp Suite扩展,用于从请求中提取参数和端点,以创建用于模糊测试和枚举的自定义词表。

暴力破解目录和文件

从根文件夹开始暴力破解,确保使用此方法暴力破解所有找到的目录,以及通过网络爬虫(你可以递归地进行暴力破解,并在使用的词表开头添加找到的目录名称)发现的所有目录。
工具:

  • Dirb / Dirbuster - 包含在Kali中(和)但功能齐全。允许自动签名证书和递归搜索。与其他选项相比太慢。
  • Dirsearch (python):它不允许自动签名证书,但允许递归搜索。
  • Gobuster (go): 它允许自动签名证书,它具有递归搜索。
  • Feroxbuster - 快速,支持递归搜索。
  • wfuzz wfuzz -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt https://domain.com/api/FUZZ
  • ffuf- 快速:ffuf -c -w /usr/share/wordlists/dirb/big.txt -u http://10.10.10.10/FUZZ
  • uro (python): 这不是一个爬虫而是一个工具给定找到的URL列表将删除“重复”的URL。
  • Scavenger: Burp扩展用于从不同页面的burp历史记录中创建目录列表。
  • TrashCompactor: 删除具有重复功能的URL基于js导入
  • Chamaleon: 它使用wapalyzer检测使用的技术并选择要使用的词表。

推荐字典:

注意,每当在暴力破解或网络爬虫过程中发现新目录时,都应该进行暴力破解。

检查每个找到的文件

特殊发现

在执行网络爬虫和暴力破解时,你可能会发现一些有趣的事情,你必须注意

有趣的文件

Protocol_Name: Web    #Protocol Abbreviation if there is one.
Port_Number:  80,443     #Comma separated if there is more than one.
Protocol_Description: Web         #Protocol Abbreviation Spelled out

Entry_1:
Name: Notes
Description: Notes for Web
Note: |
https://book.hacktricks.xyz/pentesting/pentesting-web

Entry_2:
Name: Quick Web Scan
Description: Nikto and GoBuster
Command: nikto -host {Web_Proto}://{IP}:{Web_Port} &&&& gobuster dir -w {Small_Dirlist} -u {Web_Proto}://{IP}:{Web_Port} && gobuster dir -w {Big_Dirlist} -u {Web_Proto}://{IP}:{Web_Port}

Entry_3:
Name: Nikto
Description: Basic Site Info via Nikto
Command: nikto -host {Web_Proto}://{IP}:{Web_Port}

Entry_4:
Name: WhatWeb
Description: General purpose auto scanner
Command: whatweb -a 4 {IP}

Entry_5:
Name: Directory Brute Force Non-Recursive
Description:  Non-Recursive Directory Brute Force
Command: gobuster dir -w {Big_Dirlist} -u {Web_Proto}://{IP}:{Web_Port}

Entry_6:
Name: Directory Brute Force Recursive
Description: Recursive Directory Brute Force
Command: python3 {Tool_Dir}dirsearch/dirsearch.py -w {Small_Dirlist} -e php,exe,sh,py,html,pl -f -t 20 -u {Web_Proto}://{IP}:{Web_Port} -r 10

Entry_7:
Name: Directory Brute Force CGI
Description: Common Gateway Interface Brute Force
Command: gobuster dir -u {Web_Proto}://{IP}:{Web_Port}/ -w /usr/share/seclists/Discovery/Web-Content/CGIs.txt -s 200

Entry_8:
Name: Nmap Web Vuln Scan
Description: Tailored Nmap Scan for web Vulnerabilities
Command: nmap -vv --reason -Pn -sV -p {Web_Port} --script=`banner,(http* or ssl*) and not (brute or broadcast or dos or external or http-slowloris* or fuzzer)` {IP}

Entry_9:
Name: Drupal
Description: Drupal Enumeration Notes
Note: |
git clone https://github.com/immunIT/drupwn.git for low hanging fruit and git clone https://github.com/droope/droopescan.git for deeper enumeration

Entry_10:
Name: WordPress
Description: WordPress Enumeration with WPScan
Command: |
?What is the location of the wp-login.php? Example: /Yeet/cannon/wp-login.php
wpscan --url {Web_Proto}://{IP}{1} --enumerate ap,at,cb,dbe && wpscan --url {Web_Proto}://{IP}{1} --enumerate u,tt,t,vp --passwords {Big_Passwordlist} -e

Entry_11:
Name: WordPress Hydra Brute Force
Description: Need User (admin is default)
Command: hydra -l admin -P {Big_Passwordlist} {IP} -V http-form-post '/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log In&testcookie=1:S=Location'

Entry_12:
Name: Ffuf Vhost
Description: Simple Scan with Ffuf for discovering additional vhosts
Command: ffuf -w {Subdomain_List}:FUZZ -u {Web_Proto}://{Domain_Name} -H "Host:FUZZ.{Domain_Name}" -c -mc all {Ffuf_Filters}


Bug bounty tip注册 Intigriti,一个由黑客创建,为黑客服务的优质bug bounty平台!立即加入我们 https://go.intigriti.com/hacktricks,开始赚取高达**$100,000**的赏金!

{% embed url="https://go.intigriti.com/hacktricks" %}

从零开始学习AWS黑客技术成为英雄通过 htARTE (HackTricks AWS Red Team Expert)

其他支持HackTricks的方式