mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 13:13:41 +00:00
402 lines
26 KiB
Markdown
402 lines
26 KiB
Markdown
# 80,443 - Pentesting Web Methodology
|
||
|
||
<details>
|
||
|
||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||
|
||
支持HackTricks的其他方式:
|
||
|
||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品
|
||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||
|
||
</details>
|
||
|
||
<img src="../../.gitbook/assets/i3.png" alt="" data-size="original">
|
||
|
||
**漏洞赏金提示**:**注册**Intigriti,这是一家由黑客创建的高级**漏洞赏金平台**!立即加入我们,访问[**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks),开始赚取高达**$100,000**的赏金!
|
||
|
||
{% embed url="https://go.intigriti.com/hacktricks" %}
|
||
|
||
## 基本信息
|
||
|
||
Web服务是最**常见和广泛的服务**,存在许多**不同类型的漏洞**。
|
||
|
||
**默认端口:** 80(HTTP),443(HTTPS)
|
||
```bash
|
||
PORT STATE SERVICE
|
||
80/tcp open http
|
||
443/tcp open ssl/https
|
||
```
|
||
|
||
```bash
|
||
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](web-api-pentesting.md)
|
||
{% endcontent-ref %}
|
||
|
||
## 方法概述
|
||
|
||
> 在这个方法中,我们假设您将攻击一个域名(或子域名),仅限于此。因此,您应该将此方法应用于发现的每个域、子域或IP,其中包含未确定的Web服务器。
|
||
|
||
* [ ] 从**识别**Web服务器使用的**技术**开始。寻找在测试的其余部分中要记住的**技巧**,如果您能成功识别该技术。
|
||
* [ ] 该技术版本有任何**已知漏洞**吗?
|
||
* [ ] 使用任何**众所周知的技术**吗?有任何**有用的技巧**来提取更多信息吗?
|
||
* [ ] 有任何**专门的扫描工具**要运行(如wpscan)吗?
|
||
* [ ] 启动**通用目的扫描工具**。您永远不知道它们是否会找到任何东西或者是否会找到一些有趣的信息。
|
||
* [ ] 从**初始检查**开始:**robots**、**sitemap**、**404**错误和**SSL/TLS扫描**(如果是HTTPS)。
|
||
* [ ] 开始**爬取**网页:现在是时候**查找**所有可能的**文件、文件夹**和**正在使用的参数**。还要检查**特殊发现**。
|
||
* [ ] _请注意,每当在Brute-Forcing或爬取过程中发现新目录时,应该对其进行爬取。_
|
||
* [ ] **目录Brute-Forcing**:尝试对所有发现的文件夹进行Brute Force搜索,寻找新的**文件**和**目录**。
|
||
* [ ] _请注意,每当在Brute-Forcing或爬取过程中发现新目录时,应该对其进行Brute-Forced。_
|
||
* [ ] **备份检查**:测试是否可以找到**发现文件**的**备份**,附加常见的备份扩展名。
|
||
* [ ] **Brute-Force参数**:尝试**查找隐藏参数**。
|
||
* [ ] 一旦您已经**识别**了所有可能接受**用户输入**的**端点**,检查与之相关的所有**漏洞**种类。
|
||
* [ ] [按照此清单操作](../../pentesting-web/web-vulnerabilities-methodology/)
|
||
|
||
## 服务器版本(存在漏洞吗?)
|
||
|
||
### 识别
|
||
|
||
检查运行的服务器**版本**是否存在**已知漏洞**。\
|
||
**响应的HTTP标头和Cookie**可能非常有用,可用于**识别**正在使用的**技术**和/或**版本**。**Nmap扫描**可以识别服务器版本,但也可以使用工具[**whatweb**](https://github.com/urbanadventurer/WhatWeb)**、**[**webtech**](https://github.com/ShielderSec/webtech)或[**https://builtwith.com/**](https://builtwith.com)**:**
|
||
```bash
|
||
whatweb -a 1 <URL> #Stealthy
|
||
whatweb -a 3 <URL> #Aggresive
|
||
webtech -u <URL>
|
||
webanalyze -host https://google.com -crawl 2
|
||
```
|
||
搜索[Web应用程序版本的漏洞](../../generic-methodologies-and-resources/search-exploits.md)
|
||
|
||
### 检查是否有任何WAF
|
||
|
||
* [**https://github.com/EnableSecurity/wafw00f**](https://github.com/EnableSecurity/wafw00f)
|
||
* [**https://github.com/Ekultek/WhatWaf.git**](https://github.com/Ekultek/WhatWaf.git)
|
||
* [**https://nmap.org/nsedoc/scripts/http-waf-detect.html**](https://nmap.org/nsedoc/scripts/http-waf-detect.html)
|
||
|
||
### Web技巧
|
||
|
||
一些用于发现不同知名技术中的漏洞的**技巧**:
|
||
|
||
* [**AEM - Adobe Experience Cloud**](aem-adobe-experience-cloud.md)
|
||
* [**Apache**](apache.md)
|
||
* [**Artifactory**](artifactory-hacking-guide.md)
|
||
* [**Buckets**](buckets/)
|
||
* [**CGI**](cgi.md)
|
||
* [**Drupal**](drupal.md)
|
||
* [**Flask**](flask.md)
|
||
* [**Git**](git.md)
|
||
* [**Golang**](golang.md)
|
||
* [**GraphQL**](graphql.md)
|
||
* [**H2 - Java SQL database**](h2-java-sql-database.md)
|
||
* [**IIS tricks**](iis-internet-information-services.md)
|
||
* [**JBOSS**](jboss.md)
|
||
* [**Jenkins**](broken-reference/)
|
||
* [**Jira**](jira.md)
|
||
* [**Joomla**](joomla.md)
|
||
* [**JSP**](jsp.md)
|
||
* [**Laravel**](laravel.md)
|
||
* [**Moodle**](moodle.md)
|
||
* [**Nginx**](nginx.md)
|
||
* [**PHP (php has a lot of interesting tricks that could be exploited)**](php-tricks-esp/)
|
||
* [**Python**](python.md)
|
||
* [**Spring Actuators**](spring-actuators.md)
|
||
* [**Symphony**](symphony.md)
|
||
* [**Tomcat**](tomcat.md)
|
||
* [**VMWare**](vmware-esx-vcenter....md)
|
||
* [**Web API Pentesting**](web-api-pentesting.md)
|
||
* [**WebDav**](put-method-webdav.md)
|
||
* [**Werkzeug**](werkzeug.md)
|
||
* [**Wordpress**](wordpress.md)
|
||
* [**Electron Desktop (XSS to RCE)**](electron-desktop-apps/)
|
||
|
||
_请注意,**同一域**可能在不同**端口**、**文件夹**和**子域**中使用不同的**技术**。_\
|
||
如果Web应用程序使用任何之前列出的**知名技术/平台**或**其他任何技术**,不要忘记在互联网上**搜索新技巧**(并告诉我!)。
|
||
|
||
### 源代码审查
|
||
|
||
如果应用程序的**源代码**在**github**上可用,除了自行进行应用程序的**白盒测试**外,还有一些信息对当前的**黑盒测试**可能会**有用**:
|
||
|
||
* 是否有**变更日志、自述文件或版本**文件或任何通过Web访问的**版本信息**?
|
||
* 凭证是如何保存的?是否有(可访问的)带有凭证(用户名或密码)的**文件**?
|
||
* 密码是**明文**、**加密**还是使用了哪种**哈希算法**?
|
||
* 是否使用了任何用于加密的**主密钥**?使用了哪种**算法**?
|
||
* 您能否利用某些漏洞**访问这些文件**?
|
||
* 在github的(已解决和未解决的)**问题**中是否有任何**有趣的信息**?或在**提交历史**中(也许在旧提交中**引入了某些密码**)?
|
||
|
||
{% content-ref url="code-review-tools.md" %}
|
||
[code-review-tools.md](code-review-tools.md)
|
||
{% endcontent-ref %}
|
||
|
||
### 自动扫描器
|
||
|
||
#### 通用用途自动扫描器
|
||
```bash
|
||
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**](https://github.com/hatRiot/clusterd)**:** [**JBoss**](jboss.md)**,ColdFusion,WebLogic,** [**Tomcat**](tomcat.md)**,Railo,Axis2,Glassfish**\
|
||
[**CMSScan**](https://github.com/ajinabraham/CMSScan):针对[**WordPress**](wordpress.md)、[**Drupal**](drupal.md)、**Joomla**、**vBulletin**网站的安全问题进行扫描(图形界面)\
|
||
[**VulnX**](https://github.com/anouarbensaad/vulnx)**:** 针对[**Joomla**](joomla.md)**,** [**Wordpress**](wordpress.md)**,** [**Drupal**](drupal.md)**,PrestaShop,Opencart**\
|
||
**CMSMap**:针对[**(W)ordpress**](wordpress.md)**,** [**(J)oomla**](joomla.md)**,** [**(D)rupal**](drupal.md)**或** [**(M)oodle**](moodle.md)\
|
||
[**droopscan**](https://github.com/droope/droopescan)**:** 针对[**Drupal**](drupal.md)**,** [**Joomla**](joomla.md)**,** [**Moodle**](moodle.md)**,Silverstripe,** [**Wordpress**](wordpress.md)
|
||
```bash
|
||
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服务器发送奇怪的数据时,Web服务器可能会**表现出意外行为**。这可能会打开**漏洞**或**泄露敏感信息**。
|
||
|
||
* 访问**伪造页面**,如/whatever_fake.php(.aspx,.html,等)
|
||
* 在**cookie值**和**参数**值中添加"\[]", "]]"和"\[\["以创建错误
|
||
* 通过在**URL**的**末尾**输入**`/~randomthing/%s`**来生成错误
|
||
* 尝试使用**不同的HTTP谓词**,如PATCH,DEBUG或错误的FAKE
|
||
|
||
#### **检查是否可以上传文件(**[**PUT谓词,WebDav**](put-method-webdav.md)**)**
|
||
|
||
如果发现**WebDav**已**启用**,但您没有足够的权限在根文件夹中**上传文件**,请尝试:
|
||
|
||
* **暴力破解**凭据
|
||
* 通过WebDav**上传文件**到Web页面内**找到的其他文件夹**。您可能有权限在其他文件夹中上传文件。
|
||
|
||
### **SSL/TLS漏洞**
|
||
|
||
* 如果应用程序在任何部分**没有强制使用HTTPS**,那么它**容易受到中间人攻击**
|
||
* 如果应用程序使用HTTP发送**敏感数据(密码)**。那么这是一个高漏洞。
|
||
|
||
使用[**testssl.sh**](https://github.com/drwetter/testssl.sh)来检查**漏洞**(在Bug赏金计划中,这类漏洞可能不会被接受),并使用[a2sv](https://github.com/hahwul/a2sv)重新检查漏洞:
|
||
```bash
|
||
./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漏洞信息:
|
||
|
||
- [https://www.gracefulsecurity.com/tls-ssl-vulnerabilities/](https://www.gracefulsecurity.com/tls-ssl-vulnerabilities/)
|
||
- [https://www.acunetix.com/blog/articles/tls-vulnerabilities-attacks-final-part/](https://www.acunetix.com/blog/articles/tls-vulnerabilities-attacks-final-part/)
|
||
|
||
### 爬虫
|
||
|
||
在网络中启动某种**爬虫**。爬虫的目标是从被测试应用程序中**尽可能找到更多路径**。因此,应使用网络爬行和外部来源来尽可能找到有效路径。
|
||
|
||
- [**gospider**](https://github.com/jaeles-project/gospider) (go):HTML爬虫,JS文件中的LinkFinder和外部来源(Archive.org、CommonCrawl.org、VirusTotal.com、AlienVault.com)。
|
||
- [**hakrawler**](https://github.com/hakluke/hakrawler) (go):HML爬虫,带有JS文件和Archive.org的LinkFider作为外部来源。
|
||
- [**dirhunt**](https://github.com/Nekmo/dirhunt) (python):HTML爬虫,还指示“juicy files”。
|
||
- [**evine**](https://github.com/saeeddhqan/evine) (go):交互式CLI HTML爬虫。它还在Archive.org中搜索。
|
||
- [**meg**](https://github.com/tomnomnom/meg) (go):这个工具不是爬虫,但可能很有用。您只需指定一个包含主机的文件和一个包含路径的文件,meg将在每个主机上获取每个路径并保存响应。
|
||
- [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go):带有JS渲染功能的HTML爬虫。但是,看起来它没有维护,预编译版本过时,当前代码无法编译。
|
||
- [**gau**](https://github.com/lc/gau) (go):使用外部提供者(wayback、otx、commoncrawl)的HTML爬虫。
|
||
- [**ParamSpider**](https://github.com/devanshbatham/ParamSpider):此脚本将查找带有参数的URL并列出它们。
|
||
- [**galer**](https://github.com/dwisiswant0/galer) (go):带有JS渲染功能的HTML爬虫。
|
||
- [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python):HTML爬虫,具有JS美化功能,能够在JS文件中搜索新路径。还值得查看[JSScanner](https://github.com/dark-warlord14/JSScanner),它是LinkFinder的包装器。
|
||
- [**goLinkFinder**](https://github.com/0xsha/GoLinkFinder) (go):用于提取HTML源代码和嵌入式JavaScript文件中的端点。对于漏洞猎人、红队人员、信息安全忍者很有用。
|
||
- [**JSParser**](https://github.com/nahamsec/JSParser) (python2.7):使用Tornado和JSBeautifier从JavaScript文件中解析相对URL的Python 2.7脚本。用于轻松发现AJAX请求。看起来没有维护。
|
||
- [**relative-url-extractor**](https://github.com/jobertabma/relative-url-extractor) (ruby):给定一个文件(HTML),它将使用巧妙的正则表达式从中提取URL,以查找并提取丑陋(压缩)文件中的相对URL。
|
||
- [**JSFScan**](https://github.com/KathanP19/JSFScan.sh) (bash,多个工具):使用多个工具从JS文件中收集有趣的信息。
|
||
- [**subjs**](https://github.com/lc/subjs) (go):查找JS文件。
|
||
- [**page-fetch**](https://github.com/detectify/page-fetch) (go):在无头浏览器中加载页面并打印加载的所有URL以加载页面。
|
||
- [**Feroxbuster**](https://github.com/epi052/feroxbuster) (rust):混合了前述工具的几个选项的内容发现工具。
|
||
- [**Javascript Parsing**](https://github.com/xnl-h4ck3r/burp-extensions):用于在JS文件中查找路径和参数的Burp扩展。
|
||
- [**Sourcemapper**](https://github.com/denandz/sourcemapper):给定.js.map URL,将获取美化的JS代码。
|
||
- [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder):这是一个用于发现给定目标的端点的工具。
|
||
- [**waymore**](https://github.com/xnl-h4ck3r/waymore):从wayback机器中发现链接(还下载wayback中的响应并查找更多链接)。
|
||
- [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go):爬行(甚至通过填写表单)并使用特定的正则表达式查找敏感信息。
|
||
- [**SpiderSuite**](https://github.com/3nock/SpiderSuite):Spider Suite是一款专为网络安全专业人员设计的高级多功能GUI网络安全爬虫/蜘蛛。
|
||
- [**jsluice**](https://github.com/BishopFox/jsluice) (go):这是一个用于从JavaScript源代码中提取URL、路径、秘密和其他有趣数据的Go包和[命令行工具](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice)。
|
||
- [**ParaForge**](https://github.com/Anof-cyber/ParaForge):ParaForge是一个简单的**Burp Suite扩展**,用于从请求中提取参数和端点,以创建用于模糊测试和枚举的自定义字典。
|
||
|
||
### 暴力破解目录和文件
|
||
|
||
从根文件夹开始**暴力破解**,确保**暴力破解所有**通过**此方法找到的目录**以及**爬虫**发现的所有目录(您可以**递归**进行此暴力破解,并将找到的目录名称附加到使用的字典的开头)。\
|
||
工具:
|
||
|
||
- **Dirb** / **Dirbuster** - 包含在Kali中,**旧**(且**慢**)但功能正常。允许自动签名证书和递归搜索。与其他选项相比太慢。
|
||
- [**Dirsearch**](https://github.com/maurosoria/dirsearch) (python)**:不允许自动签名证书,但**允许递归搜索。
|
||
- [**Gobuster**](https://github.com/OJ/gobuster) (go):允许自动签名证书,**不支持**递归搜索。
|
||
- [**Feroxbuster**](https://github.com/epi052/feroxbuster) **- 快速,支持递归搜索。**
|
||
- [**wfuzz**](https://github.com/xmendez/wfuzz) `wfuzz -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt https://domain.com/api/FUZZ`
|
||
- [**ffuf** ](https://github.com/ffuf/ffuf)- 快速:`ffuf -c -w /usr/share/wordlists/dirb/big.txt -u http://10.10.10.10/FUZZ`
|
||
- [**uro**](https://github.com/s0md3v/uro) (python):这不是爬虫,而是一个工具,根据找到的URL列表删除“重复”URL。
|
||
- [**Scavenger**](https://github.com/0xDexter0us/Scavenger):从不同页面的burp历史记录中创建目录列表的Burp扩展
|
||
- [**TrashCompactor**](https://github.com/michael1026/trashcompactor):删除具有重复功能的URL(基于js导入)
|
||
- [**Chamaleon**](https://github.com/iustin24/chameleon):它使用wapalyzer检测使用的技术并选择要使用的字典。
|
||
|
||
**推荐字典:**
|
||
|
||
- [https://github.com/carlospolop/Auto\_Wordlists/blob/main/wordlists/bf\_directories.txt](https://github.com/carlospolop/Auto\_Wordlists/blob/main/wordlists/bf\_directories.txt)
|
||
- [**Dirsearch** 包含的字典](https://github.com/maurosoria/dirsearch/blob/master/db/dicc.txt)
|
||
- [http://gist.github.com/jhaddix/b80ea67d85c13206125806f0828f4d10](http://gist.github.com/jhaddix/b80ea67d85c13206125806f0828f4d10)
|
||
- [Assetnote wordlists](https://wordlists.assetnote.io)
|
||
- [https://github.com/danielmiessler/SecLists/tree/master/Discovery/Web-Content](https://github.com/danielmiessler/SecLists/tree/master/Discovery/Web-Content)
|
||
- raft-large-directories-lowercase.txt
|
||
- directory-list-2.3-medium.txt
|
||
- RobotsDisallowed/top10000.txt
|
||
- [https://github.com/random-robbie/bruteforce-lists](https://github.com/random-robbie/bruteforce-lists)
|
||
- [https://github.com/google/fuzzing/tree/master/dictionaries](https://github.com/google/fuzzing/tree/master/dictionaries)
|
||
- [https://github.com/six2dez/OneListForAll](https://github.com/six2dez/OneListForAll)
|
||
- [https://github.com/random-robbie/bruteforce-lists](https://github.com/random-robbie/bruteforce-lists)
|
||
- _/usr/share/wordlists/dirb/common.txt_
|
||
- _/usr/share/wordlists/dirb/big.txt_
|
||
- _/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt_
|
||
|
||
_请注意,每当在暴力破解或爬虫过程中发现新目录时,应进行暴力破解。_
|
||
|
||
### 检查每个找到的文件的内容
|
||
|
||
- [**Broken link checker**](https://github.com/stevenvachon/broken-link-checker):查找HTML中的损坏链接,可能容易被接管。
|
||
- **文件备份**:找到所有文件后,查找所有可执行文件的备份(“_.php_”、“_.aspx_”等)。备份的常见变体包括:_file.ext\~、#file.ext#、\~file.ext、file.ext.bak、file.ext.tmp、file.ext.old、file.bak、file.tmp和file.old._ 您还可以使用工具[**bfac**](https://github.com/mazen160/bfac) **或** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)**。**
|
||
- **发现新参数**:您可以使用工具如[**Arjun**](https://github.com/s0md3v/Arjun)**、**[**parameth**](https://github.com/maK-/parameth)**、**[**x8**](https://github.com/sh1yo/x8) **和**[**Param Miner**](https://github.com/PortSwigger/param-miner) **来发现隐藏的参数。如果可能,您可以尝试在每个可执行的Web文件上搜索**隐藏的参数。
|
||
- _Arjun所有默认字典:_[https://github.com/s0md3v/Arjun/tree/master/arjun/db](https://github.com/s0md3v/Arjun/tree/master/arjun/db)
|
||
- _Param-miner“params”:_[https://github.com/PortSwigger/param-miner/blob/master/resources/params](https://github.com/PortSwigger/param-miner/blob/master/resources/params)
|
||
- _Assetnote“parameters\_top\_1m”:_[https://wordlists.assetnote.io/](https://wordlists.assetnote.io)
|
||
- _nullenc0de“params.txt”:_[https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773](https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773)
|
||
- **注释**:检查所有文件的注释,您可能会发现**凭据**或**隐藏功能**。
|
||
- 如果您在玩**CTF**,一个“常见”的技巧是在页面的**右侧**的**注释**中**隐藏**信息(使用**数百个****空格**,这样如果您使用浏览器打开源代码,您将看不到数据)。另一种可能性是使用**几个新行**,并在网页底部的注释中**隐藏信息**。
|
||
- **API密钥**:如果您**找到任何API密钥**,有指南指示如何使用不同平台的API密钥:[**keyhacks**](https://github.com/streaak/keyhacks)**、**[**zile**](https://github.com/xyele/zile.git)**、**[**truffleHog**](https://github.com/trufflesecurity/truffleHog)**、**[**SecretFinder**](https://github.com/m4ll0k/SecretFinder)**、**[**RegHex**](https://github.com/l4yton/RegHex\)/)**、**[**DumpsterDive**](https://github.com/securing/DumpsterDiver)**、**[**EarlyBird**](https://github.com/americanexpress/earlybird)
|
||
- Google API密钥:如果您找到任何看起来像**AIza**SyA-qLheq6xjDiEIRisP\_ujUseYLQCHUjik的API密钥,您可以使用项目[**gmapapiscanner**](https://github.com/ozguralp/gmapsapiscanner)来检查密钥可以访问哪些API。
|
||
- **S3存储桶**:在爬虫过程中查看是否有任何子域或任何链接与某个**S3存储桶**相关。在这种情况下,[**检查**存储桶的**权限**](buckets/)。
|
||
|
||
### 特殊发现
|
||
|
||
在执行**爬虫**和**暴力破解**时,您可能会发现一些**有趣的** **事物**,您需要**注意**。
|
||
|
||
**有趣的文件**
|
||
|
||
- 在**CSS**文件中查找到其他文件的链接。
|
||
- [如果找到一个_.git_文件,可以提取一些信息](git.md)
|
||
- 如果找到一个_.env_文件,可能会发现api密钥、数据库密码和其他信息。
|
||
- 如果找到**API端点**,您[也应该测试它们](web-api-pentesting.md)。这些不是文件,但可能“看起来像”它们。
|
||
- **JS文件**:在爬虫部分提到了几个可以从JS文件中提取路径的工具。此外,**监视每个找到的JS文件**也很有趣,因为有时候,更改可能表明代码中引入了潜在的漏洞。例如,您可以使用[**JSMon**](https://github.com/robre/jsmon)**。**
|
||
- 您还应该使用[**RetireJS**](https://github.com/retirejs/retire.js/)或[**JSHole**](https://github.com/callforpapers-source/jshole)检查发现的JS文件是否存在漏洞。
|
||
- **Javascript去混淆和解包器:**[https://lelinhtinh.github.io/de4js/](https://lelinhtinh.github.io/de4js/), [https://www.dcode.fr/javascript-unobfuscator](https://www.dcode.fr/javascript-unobfuscator)
|
||
- **Javascript美化器:**[http://jsbeautifier.org/](https://beautifier.io), [http://jsnice.org/](http://jsnice.org)
|
||
- **JsFuck去混淆**(包含字符:“\[]!+”)[https://ooze.ninja/javascript/poisonjs/](https://ooze.ninja/javascript/poisonjs/)
|
||
- [**TrainFuck**](https://github.com/taco-c/trainfuck)**:** `+72.+29.+7..+3.-67.-12.+55.+24.+3.-6.-8.-67.-23.`
|
||
- 在许多情况下,您将需要**理解**使用的**正则表达式**,这
|
||
```
|
||
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}
|
||
```
|
||
<img src="../../.gitbook/assets/i3.png" alt="" data-size="original">\
|
||
**赏金猎人提示**:**注册**Intigriti,这是一家由黑客创建的高级**赏金猎人平台**!立即加入我们,访问[**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks),开始赚取高达**$100,000**的赏金!
|
||
|
||
{% embed url="https://go.intigriti.com/hacktricks" %}
|
||
|
||
<details>
|
||
|
||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||
|
||
支持HackTricks的其他方式:
|
||
|
||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或**关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||
|
||
</details>
|