别瞎琢磨!Web 渗透攻防 30 条实用技巧!
Web渗透攻防的核心是“知己知彼”,实战中没有万能技巧,只有贴合场景的灵活运用。覆盖“信息收集→漏洞挖掘→权限提升→内网渗透→防御规避”全流程,适合一线渗透测试工程师、安全运维人员参考,也可作为入门者的实战手册。
一、信息收集
信息收集是渗透测试的第一步,也是最关键的一步——很多时候,不是漏洞难挖,而是基础信息收集不全面。以下技巧均为实战中高频使用,无需复杂工具,落地性极强。
技巧1:子域名枚举,优先覆盖“隐蔽攻击面”
主流目标通常会对主域名做严格防护,但子域名(尤其是测试环境、运维后台、第三方接入域名)往往防护薄弱。实战中优先用2种工具组合枚举:OneForAll(批量枚举,支持多种数据源)+ Subfinder(快速排查,减少误报),枚举后重点筛选“非CDN节点”“带admin/test/oa前缀”的子域名,这类子域名漏洞概率提升60%。
补充:避免直接用单一工具高频请求,可添加延迟(如1s/次),防止触发目标IP封禁;同时检查子域名对应的IP是否与主站一致,不一致的子域名可能属于独立服务器,防护更宽松。
技巧2:旁站查询,挖掘“同IP隐藏目标”
部分目标主站防护严密,但同一IP下可能部署多个其他网站(旁站),通过旁站漏洞可间接获取主站权限。实战中用WebEye、旁站查询网(需注意工具合法性),输入目标IP后,筛选“存活站点”“与目标同主体”的旁站,重点关注静态页面少、交互多的旁站(如后台管理系统、数据查询页面)。
注意:旁站查询后需确认站点归属,避免误测无关第三方站点,引发法律风险。
技巧3:敏感文件泄露,优先排查“高频路径”
很多网站因配置不当,会泄露敏感文件(源代码、数据库配置、管理员账号密码),实战中无需盲目扫描,优先访问以下高频路径,效率更高:
/robots.txt(查看禁止爬虫的路径,可能包含后台地址)、/.git/(Git版本控制泄露,可通过GitHack工具下载源代码)、/.svn/(SVN泄露)、/config.php(数据库配置文件,部分脚本网站通用)、/backup/(备份文件,常见后缀.sql、.zip、.rar)、/install.php(安装残留,可能允许重新安装覆盖配置)。
补充:若遇到403禁止访问,可尝试修改请求头(如Referer、User-Agent),部分站点仅限制外部直接访问,伪造内部请求可绕过。
技巧4:端口扫描,聚焦“非80/443端口”
多数人扫描端口仅关注80(HTTP)、443(HTTPS),但实战中,非标准端口(如8080、8081、8888、3389、22)往往隐藏关键服务:8080/8081多为测试环境、后台管理系统;3389为Windows远程桌面;22为Linux SSH;3306为MySQL数据库。
工具推荐:Nmap(批量扫描,命令:nmap -sV -p- 目标IP -T4,-T4控制速度,避免过快被封禁),扫描后重点记录“开放端口+对应服务版本”,后续针对性挖掘漏洞(如老旧MySQL版本的弱口令、SSH弱口令)。
技巧5:Whois信息查询,挖掘“目标主体关联信息”
Whois查询可获取目标域名的注册人、注册邮箱、注册地址、服务器IP等信息,实战中重点关注2点:一是注册邮箱(可能与管理员账号一致,可用于社工库碰撞、密码重置);二是关联域名(同一注册人注册的其他域名,可能存在相同的配置漏洞、弱口令)。
查询时注意隐藏自身IP,避免被目标溯源。
技巧6:JS文件挖掘,提取“隐藏接口与敏感信息”
很多网站会将接口地址、敏感参数、甚至测试账号密码,隐藏在前端JS文件中(尤其是异步加载的JS),实战中无需逐行查看,用工具快速提取:Chrome浏览器F12→Sources→筛选.js文件→Ctrl+F搜索关键词(api、url、password、admin、token)。
高频关键词:/api/、/admin/、/login/、token、secret、password、username、id=、uid=,往往能挖掘出未授权访问的接口、隐藏的后台地址。
技巧7:指纹识别,精准定位“网站架构与漏洞范围”
指纹识别的核心是确定目标网站的“服务器系统(Windows/Linux)、Web容器(Apache/Nginx/IIS)、脚本语言(PHP/Java/Python)、CMS系统(WordPress/织梦/帝国)”,只有明确架构,才能针对性挖掘对应漏洞(如织梦CMS的默认漏洞、IIS的解析漏洞)。
工具推荐:WhatWeb(快速识别,命令简单)、FingerPrintHub(精准度高,支持小众CMS),避免用单一工具,组合识别减少误报;若识别失败,可查看响应头(Server字段)、页面报错信息(如PHP报错会显示版本)。
技巧8:DNS信息收集,挖掘“域名解析漏洞与备用IP”
DNS信息收集不仅能获取目标IP,还能挖掘DNS解析漏洞(如DNS劫持、区域传输漏洞),同时可获取备用IP(主站被封禁时,备用IP可能防护薄弱)。实战中用nslookup、dig命令,或在线工具(DNS查询网),重点查看:A记录(IP地址)、CNAME记录(别名,可能指向第三方服务器)、MX记录(邮件服务器,可尝试邮件渗透)。
补充:若目标开启DNS区域传输(AXFR),可通过dig @目标DNS服务器 目标域名 axfr 命令,获取该域名下所有解析记录,扩大攻击面。
二、漏洞挖掘
漏洞挖掘的核心是“精准定位、可利用”,实战中无需追求“高危漏洞”,很多中低危漏洞(如弱口令、逻辑漏洞),结合场景反而更容易拿下目标。以下技巧均为实战中可直接落地,无理论化内容,杜绝错误误导。
技巧9:SQL注入漏洞,优先尝试“简单闭合与绕过”
SQL注入是最经典的漏洞,但实战中多数站点会做过滤,无需盲目尝试复杂Payload,优先从3点入手:① 闭合方式:单引号(')、双引号(")、括号(')),输入后查看页面是否报错(如MySQL的You have an error in your SQL syntax);② 绕过过滤:大小写混合(如Union SeLeCt)、注释绕过(--+、#、/* */)、编码绕过(URL编码、Unicode编码),针对简单WAF有效;③ 优先测试高频注入点:登录框用户名/密码字段、URL参数(id、uid、page)、搜索框。
工具推荐:SQLMap(自动化检测,命令:sqlmap -u "目标URL?id=1" -p id --dbs,获取数据库),但注意:自动化工具易触发WAF,优先手动测试,确认有注入后再用工具提权。
禁忌:不盲目使用爆破式Payload,避免触发目标防护,导致IP封禁。
技巧10:XSS跨站脚本漏洞,重点测试“输入输出点”
XSS漏洞的核心是“输入未过滤、输出未编码”,实战中重点测试所有用户可输入的位置:评论区、留言板、个人资料、搜索框、URL参数(如name、title),优先尝试简单Payload,避免复杂绕过(多数站点仅做基础过滤)。
高频Payload:(基础弹窗,测试是否有过滤)、(绕过script标签过滤);若被过滤,尝试编码绕过(HTML实体编码、URL编码),但注意:编码需符合页面渲染规则,否则无法触发。
补充:存储型XSS(如评论区)比反射型XSS(如URL参数)更有利用价值,可长期控制用户会话。
技巧11:文件上传漏洞,绕过过滤“从3个维度入手”
文件上传漏洞的关键是“绕过后缀过滤、内容检测、路径检测”,实战中优先尝试以下3种方式,无需复杂操作:① 后缀绕过:修改文件后缀(如.php改为.php5、.phtml、.php.bak,利用Web容器解析漏洞)、大小写绕过(.PhP)、空格绕过(.php ,Windows系统会自动忽略空格);② 内容绕过:将恶意PHP代码插入图片中(如在jpg图片末尾添加),修改文件头(伪造图片文件头,如GIF89a),绕过内容检测;③ 路径绕过:若上传后返回文件路径,尝试修改路径参数(如../绕过目录限制,上传到网站根目录)。
注意:上传后需确认文件可访问、可执行,若上传路径不可访问,即使上传成功也无法利用;优先上传简单的一句话木马,避免复杂木马被查杀。
技巧12:CSRF跨站请求伪造,重点利用“未验证Referer”
CSRF漏洞的核心是“服务器未验证请求的合法性”,实战中多数站点仅验证Referer(请求来源),可通过以下技巧利用:① 伪造Referer:用Burp Suite修改请求头中的Referer,改为目标站点域名,绕过验证;② 构造恶意页面:将CSRF请求(如密码修改、账号绑定)嵌入恶意HTML页面,诱导管理员点击(结合社工更有效);③ 重点测试功能:密码修改、账号注册、订单提交、后台操作(如添加管理员),这些功能利用后收益更高。
补充:若站点开启了CSRF Token(请求中带有随机Token),则无法直接绕过,需先获取Token(如通过XSS漏洞获取),再构造CSRF请求。
技巧13:命令执行漏洞,优先测试“高危参数”
命令执行漏洞多存在于“系统交互类功能”中(如文件解压、服务器监控、批量操作),实战中重点测试以下高频参数:cmd、command、exec、system、shell,输入简单命令(如whoami、ipconfig、ls),查看页面是否返回命令执行结果。
绕过技巧:若命令被过滤(如过滤|、;、&),尝试用空格绕过(如whoami 代替whoami)、编码绕过(Base64编码命令,再用解码命令执行,如echo d2hvYW1p | base64 -d | bash)、拼接绕过(如whoa+mi,部分过滤会忽略+号);工具推荐:Burp Suite批量测试参数,提高效率。
技巧14:未授权访问,挖掘“隐藏接口与后台”
未授权访问是实战中“最容易忽略、收益最高”的漏洞,无需复杂操作,重点排查3类场景:① 后台地址未做权限验证(如直接访问/admin/index.php,无需登录即可进入);② 接口未做权限验证(如/api/getuserinfo,无需Token即可获取所有用户信息);③ 第三方组件未授权(如phpMyAdmin、phpStudy、监控系统,默认未修改密码,直接登录)。
补充:可结合技巧6(JS文件挖掘)、技巧1(子域名枚举),挖掘隐藏的未授权访问路径,这类路径往往防护薄弱。
技巧15:弱口令漏洞,聚焦“高频账号与密码组合”
弱口令是实战中最常见、最易利用的漏洞,无需复杂工具,优先尝试以下高频组合,命中率极高:① 账号:admin、administrator、root、test、user、webmaster;② 密码:123456、12345678、admin123、1234qwer、password、与账号一致(如admin/admin);③ 组合策略:账号+密码(admin/admin123)、年份+简单密码(20241234)、目标域名缩写+密码(如baidu123)。
工具推荐:Hydra(批量爆破,命令:hydra -L 账号列表 -P 密码列表 目标IP http-post-form "/login.php:username=^USER^&password=^PASS^:登录失败提示"),但注意:爆破速度不宜过快,避免触发IP封禁;优先测试后台登录、SSH、MySQL等关键服务。
技巧16:逻辑漏洞,重点测试“密码重置与越权操作”
逻辑漏洞往往被防护工具忽略,但实战中利用价值极高,重点测试2类场景:① 密码重置漏洞:测试是否可通过修改手机号/邮箱参数(如将userid=1改为userid=2),重置他人密码;是否无需验证验证码(如验证码为空、验证码固定);是否可重复使用验证码;② 越权操作:登录普通用户后,修改URL参数(如uid=1001改为uid=1000),查看是否可访问管理员数据、修改管理员信息;测试是否可通过修改Cookie、Session,提升账号权限。
补充:逻辑漏洞无固定Payload,需结合站点业务逻辑,逐一步骤测试,重点关注“参数是否可篡改”“验证是否不严谨”。
技巧17:CMS漏洞,优先利用“已知漏洞+默认配置”
多数中小型网站会使用开源CMS(如WordPress、织梦、帝国、Discuz),这类站点的漏洞多为“已知漏洞”,实战中优先做2件事:① 确认CMS版本(通过指纹识别),查询该版本对应的已知漏洞(如织梦5.7版本的SQL注入漏洞、WordPress的插件漏洞),直接使用公开Payload测试;② 测试CMS默认配置(如织梦默认账号admin/admin,WordPress默认账号admin,帝国CMS默认账号admin/123456),很多站点未修改默认账号密码。
注意:使用公开Payload前,需确认Payload与CMS版本匹配,避免因版本不一致导致测试失败,甚至触发防护。
技巧18:Web容器漏洞,针对性挖掘“版本漏洞”
Web容器(Apache、Nginx、IIS)的版本漏洞,往往可直接获取服务器权限,实战中先通过指纹识别确定容器版本,再针对性测试已知漏洞:① Nginx:低版本(如1.16.0以下)的解析漏洞(如xxx.jpg.php,可解析为PHP文件)、路径穿越漏洞;② Apache:低版本的文件包含漏洞、解析漏洞(如xxx.php.xxx,可解析为PHP文件);③ IIS:IIS6.0的解析漏洞(.asp;.jpg)、IIS7.5的短文件名漏洞。
补充:Web容器漏洞多为版本依赖,若目标版本较高(无已知漏洞),则无需浪费时间,转向其他漏洞类型。
技巧19:接口漏洞,重点测试“参数篡改与未授权”
随着前后端分离架构普及,接口漏洞成为高频漏洞,实战中重点测试3点:① 参数篡改:修改接口请求参数(如将amount=1改为amount=0,实现低价购买)、状态参数(如将status=0改为status=1,激活账号);② 未授权访问:接口未验证Token、Cookie,直接访问即可获取敏感数据(如/api/user/list,获取所有用户信息);③ 接口爆破:针对需要验证的接口(如登录接口、验证码接口),批量爆破参数(如验证码、密码),利用接口无频率限制的漏洞。
工具推荐:Postman(手动测试接口)、Burp Suite(批量测试、参数篡改),测试时注意查看接口响应码(200为成功,401为未授权,500为服务器错误)。
技巧20:Cookie/Session漏洞,挖掘“会话劫持与固定”
Cookie、Session是用户会话的核心,实战中重点测试2类漏洞:① 会话劫持:测试Cookie是否未加密(如Cookie中直接显示username=admin)、是否可篡改(如修改Cookie中的userid,切换账号);利用XSS漏洞获取用户Cookie,替换自身Cookie,劫持用户会话;② 会话固定:测试是否可重复使用Session ID(如登录后Session ID不变),诱导用户使用固定的Session ID登录,再利用该Session ID劫持会话。
补充:若站点开启了HTTPS,Cookie通常会加密,但仍需测试是否可篡改;优先测试管理员账号的Cookie,劫持后可直接获取管理员权限。
三、权限提升与内网渗透
拿下Webshell或普通账号后,需进一步提升权限(获取服务器管理员/root权限),若目标为内网环境,需进行内网渗透,扩大攻击战果。以下技巧均为实战高频,无复杂操作,落地性强。
技巧21:Linux权限提升,优先利用“SUID文件与计划任务”
Linux系统权限提升,实战中最常用的2种方式:① SUID文件提权:SUID文件可让普通用户以root权限执行,用命令find / -perm -u=s 2>/dev/null,查找所有SUID文件,重点关注高频可利用文件(如find、cat、bash、cp),利用公开Payload执行命令,提升至root权限(如find / -exec bash -p ;);② 计划任务提权:查看系统计划任务(crontab -l),若计划任务以root权限执行,且任务脚本可修改(如脚本权限为777),则修改脚本,添加恶意命令(如反弹Shell),等待计划任务执行,获取root权限。
补充:同时检查/etc/passwd文件(权限是否可修改),若可修改,可添加root权限账号(如test:x:0:0::/root:/bin/bash),直接登录root。
技巧22:Windows权限提升,聚焦“漏洞补丁与计划任务”
Windows系统权限提升,重点关注2点:① 漏洞补丁提权:查看系统缺失的补丁(用systeminfo命令),查找对应补丁的提权漏洞(如MS17-010、MS18-0813),利用公开工具(如Empire、Metasploit)执行提权,获取管理员权限;② 计划任务与服务提权:查看系统计划任务(schtasks /query)、系统服务(services.msc),若服务可修改(权限宽松),则替换服务可执行文件,重启服务,获取管理员权限;若计划任务以管理员权限执行,且脚本可修改,添加恶意命令(如反弹Shell)。
补充:优先测试弱口令提权(如管理员账号密码为弱口令,用runas命令切换管理员),无需复杂漏洞利用,效率更高。
技巧23:反弹Shell,优先选择“稳定且不易被查杀”的方式
拿下Webshell后,为了更方便操作,通常需要反弹Shell
技巧24:内网信息收集,快速“绘制内网拓扑”
进入内网后,首先进行信息收集,绘制内网拓扑,扩大攻击面:① 查看内网IP段:用ipconfig(Windows)、ifconfig(Linux)命令,确定内网IP段(如192.168.1.0/24、10.0.0.0/8);② 扫描内网存活主机:用nmap扫描内网IP段(nmap -sP 192.168.1.0/24),筛选存活主机;③ 查看内网端口与服务:对存活主机扫描端口(nmap -sV 192.168.1.100),重点关注3389、22、3306、445等端口,挖掘内网服务漏洞;④ 查看内网共享资源:Windows系统用net view命令,查看内网共享文件夹,可能包含敏感文件。
技巧25:内网横向移动,优先利用“SMB与RDP服务”
内网横向移动的核心是“利用内网主机漏洞、弱口令,控制更多主机”,实战中优先利用2种服务:① SMB服务:内网主机通常开启SMB服务(445端口),利用弱口令(如admin/admin123)登录SMB,获取共享文件,或利用SMB漏洞(如MS17-010),远程执行命令,控制主机;② RDP服务:3389端口,若内网主机开启RDP,且有弱口令,可直接远程登录(用mstsc命令),控制主机。
补充:可利用已控制的主机,作为跳板(用Proxychains、FRP工具),扫描更多内网主机,扩大攻击范围。
技巧26:敏感数据提取,重点关注“核心配置与账号密码”
渗透测试的最终目的之一是“提取敏感数据”,实战中重点收集3类数据:① 数据库数据:通过Webshell、数据库账号密码,登录数据库(如MySQL、SQL Server),导出用户表、密码表、业务数据(如订单、用户信息);② 服务器配置文件:收集Web容器配置文件(如Nginx的nginx.conf、Apache的httpd.conf)、数据库配置文件(如config.php),获取更多账号密码、服务器信息;③ 系统敏感文件:Linux的/etc/shadow(密码哈希文件)、Windows的SAM文件(密码哈希文件),可破解哈希值,获取系统账号密码。
注意:提取敏感数据后,需妥善保管,严禁泄露,符合渗透测试规范。
四、防御规避与实战注意事项(27-30条)
渗透实战中,不仅要会“攻”,还要会“规避防御”,同时注意自身安全,避免被目标溯源。以下技巧均为实战经验总结,规避不必要的风险,提高渗透成功率。
技巧27:规避WAF,优先“低调测试+绕过过滤”
多数目标会部署WAF(Web应用防火墙),实战中规避WAF的核心是“不触发拦截规则”:① 低调测试:避免高频请求、批量爆破,每个请求间隔1-2s,模拟正常用户行为;② 绕过过滤:针对WAF的关键词过滤,用大小写混合、注释、编码、拼接等方式绕过(如技巧9、10、13);③ 隐藏自身IP:使用代理IP(如Socks5代理)、VPN,避免用自身真实IP测试,防止被溯源;④ 避免使用恶意Payload:优先用简单Payload测试,确认有漏洞后,再使用复杂Payload,减少被WAF拦截的概率。
技巧28:隐藏渗透痕迹,避免“被目标发现与溯源”
渗透测试过程中,需隐藏自身痕迹,避免被目标发现,同时防止溯源:① 清理日志:测试完成后,清理服务器日志(Linux的/var/log目录、Windows的事件查看器日志),删除自身操作记录(如命令执行记录、文件上传记录);② 不修改核心文件:避免修改目标网站的核心代码、系统配置,防止影响目标正常运行,引发不必要的纠纷;③ 不留下后门:渗透测试完成后,删除上传的Webshell、恶意文件,不留下任何后门,符合渗透测试规范;④ 隐藏工具痕迹:避免在服务器上留下工具文件(如SQLMap、Hydra),可使用临时文件,测试完成后立即删除。
技巧29:实战优先级原则,“先易后难,效率优先”
实战中,时间有限,需遵循“先易后难”的原则,提高渗透成功率:① 优先测试弱口令、敏感文件泄露、未授权访问等简单漏洞,这类漏洞命中率高、无需复杂操作;② 再测试SQL注入、XSS、文件上传等常见漏洞,结合目标架构针对性测试;③ 最后测试高危漏洞、复杂漏洞(如内网漏洞、0day漏洞),这类漏洞难度大、耗时久,不建议优先尝试;④ 若一个目标长时间无进展,可切换攻击面(如子域名、旁站),避免浪费时间。
技巧30:防御视角复盘,“知攻知防,提升实战能力”
真正的渗透工程师,不仅要会攻击,还要懂防御——每完成一次渗透,都要从防御视角复盘:① 分析目标漏洞产生的原因(如配置不当、代码漏洞、未及时打补丁);② 思考如何防御这类漏洞(如输入过滤、输出编码、定期打补丁、修改默认密码);③ 总结自身不足(如信息收集不全面、漏洞判断错误),优化渗透思路,提升实战能力。
实战中,技巧只是辅助,核心是“逻辑思维+实战经验”——多动手、多复盘、多总结,才能不断提升自身渗透能力,成为一名合格的安全从业者。
文章来源:HACK之道
华盟君