护网技能提升之护网常见攻击方式与漏洞原理
一、常见攻击方式及漏洞原理
1.SQL注入漏洞
**定义:**将恶意的数据库语句注入到后台数据库去执行
**本质:**代码与数据不区分,用户输入的恶意数据作为命令或查询的一部分被发送到解析器执行
1)产生原因
根本原因:程序未对用户提交的参数数据进行有效校验或过滤
执行机制:恶意SQL语句拼接后被数据库执行
典型场景:用户可控参数直接拼接到SQL语句中
2)常见挖掘方式
URL参数注入:直接对URL中的参数进行注入测试
POST包注入:使用Burp等工具抓取POST请求包进行注入测试
自动化工具:优先使用sqlmap等自动化工具而非手工注入
3)注入场景
发生位置:所有用户可控参数的地方
常见位置:
-
- URL路径信息
-
- GET请求参数
-
- HTTP请求头
-
- POST请求参数
4)注入判断方法
**单引号判断:**添加单引号后出现错误回显则可能存在注入
AND判断:
-
- AND 1=1永真条件返回正常
-
- AND 1=2报错则存在注入
OR判断:OR 1=1和OR 1=2返回不同结果则存在注入
XOR判断:正确语句返回错误页面,错误语句返回正确页面则存在注入
数字加减判断:原页面与id=10-1返回不同则存在注入
实际操作演示
测试环境:使用DVWA(Damn Vulnerable Web Application)进行演示
安全等级设置:分为Low、Medium、High、Impossible四个级别
测试步骤:
-
- 设置安全级别为Low
-
- 输入1’ and ‘1’='1测试永真条件
-
- 输入1’ and ‘1’='2测试永假条件
-
- 使用order by判断字段数
-
- 使用union select进行联合查询
常用注入语句:
-
- 1’ order by 2# 判断字段数
-
- 1’ union select 1,2# 确定回显位
-
- 1’ union select version(),database()# 获取数据库信息
-
- 1’ union select user,password from users# 获取用户凭证
5)不同请求方式的注入
GET请求注入:直接在URL参数中注入
POST请求注入:
-
- 使用Burp Suite抓包
-
- 修改POST参数进行注入
-
- 保存请求为文本文件供sqlmap使用
sqlmap自动化注入:
**命令:**python sqlmap.py -r request.txt
可自动识别注入点类型
支持多种注入技术(布尔盲注、时间盲注等)
2.文件上传与文件包含漏洞
**文件上传漏洞:**攻击者上传恶意文件(如webshell)导致服务器沦陷
**文****件包含漏洞:**读取服务器本地文件内容
**区别:**文件上传是"写入"操作,文件包含是"读取"操作
3.文件上传与文件包含漏洞
1)文件上传漏洞
文件上传漏洞产生原因
四大成因:
-
- **本地上传限制不严格:**例如注册时要求上传图片却允许上传PHP脚本
-
- **HTTP方法配置不当:**服务器未禁用PUT等不安全方法(标准安全配置应仅允许GET/POST/HEAD)
-
- **服务器解析漏洞:**Apache/Nginx/IIS等中间件的特定版本存在解析缺陷(2019年后大部分已修复)
-
- **文件路径截断:**PHP中常见的%00截断漏洞(十六进制0×000 \times 000×00作为字符串终止符)
文件上传实战
低级别漏洞利用:
-
- **木****马示例:**PHP一句话木马<?php @eval($_POST['xie']);?>,密码为"xie"
-
- **上传过程:**直接上传PHP文件后返回存储路径(如hackable/uploads/2.php)
-
- **连接工具:**中国菜刀/冰蝎/蚁剑等,需输入URL和密码建立连接
中级别绕过:
**限制差异:**服务端验证MIME类型(仅允许image/jpeg/png)
**绕过方法:**通过Burp修改Content-Type为image/jpeg(需在Hex视图修改十六进制数据)
服务端验证
验证机制:
**MIME定义:**指定扩展名文件的打开方式(如GIF为image/gif,CSS为text/css)
**验证过程:**程序检查上传文件的Content-Type头信息
防御要点:
**目录权限:**设置上传目录不可执行
**白名单校验:**严格限制允许的文件类型(如仅JPG/PNG)
**随机化处理:**改写文件名和存储路径
文件上传漏洞网络实例
HTTP PUT攻击:
**攻****击步骤:**构造PUT /dav/yeahhub.php HTTP/1.1请求上传恶意文件
**成功标志:**响应状态码201表示文件创建成功
**命令执行:**通过?cmd=uname -a参数执行系统命令
O****PTIONS方法检测:
**安全方法:**仅允许GET/POST/HEAD
防护措施:
Apache:利用rewrite模块拦截TRACE请求
IIS:通过URLScan工具禁用危险方法
文件上传漏洞解析
Apache漏洞:
右向左解析:将xx.php.owf.rar识别为PHP文件执行
Nginx漏洞:
空字节截断:xx.jpg%00.php触发PHP解析(影响版本≤8.03)
IIS漏洞:
目录解析:xx.asp/xx.jpg将图片当作ASP执行
分号解析:xx.asp;.jpg忽略分号后内容
默认扩展:支持asp/asa/cer/cdx四种可执行文件
文件上传漏洞路径截断
技术原理:
终止符特性:利用0×000 \times 000×00截断后续字符串(如aaa.php%00bbb.jpg实际存储为aaa.php)
实现方式:需在Burp的Hex视图中修改十六进制数据头
限制条件:
PHP版本<5.3.29
magic_quotes_gpc=OFF
仅适用于路径截断(非文件名截断)
2)文件包含漏洞
漏洞原理与危害
漏洞成因:开发人员为使代码更灵活,将包含文件设置为变量进行动态调用,导致客户端可任意调用隔离文件
直接危害:
可下载服务器敏感文件(脚本代码/系统配置文件等)
获取代码后可进行审计发现更多漏洞
高危函数:
代码执行类:eval()、assert()、system()、exec()、passthru()等
文件包含类:include()、include_once()、require()、require_once()
包含函数对比
require:找不到文件时产生致命错误(E_COMPILE_ERROR)并停止脚本
include:找不到文件时仅产生警告(E_WARNING),脚本继续执行
require_once:与require类似,但会检查重复包含
include_once:与include类似,但会检查重复包含
漏洞实例演示
基础利用:
通过参数包含本地文件:?page=123.txt
成功读取"凉风有信,秋月无边"测试文件内容
目****录穿越:
使用…/跳转读取系统文件:?page=…/…/php.ini
可查看PHP配置参数(如allow_url_include状态)
敏感文件读取:
绝对路径读取桌面文件:?page=C:\Users\xxx\Desktop\userpass.txt
成功获取用户名密码列表(root/test/oracle/admin/user)
常见敏感路径
Windows系统:
c:\boot.ini 系统版本信息
c:\windows\repair\sam 系统初始密码
c:\windows\php.ini PHP配置
Linux系统:
/etc/passwd 账户信息
/etc/shadow 密码哈希
/usr/local/app/apache2/conf/httpd.conf Apache配置
漏洞防御要点
关键防御措施:
严格校验包含参数是否外部可控
限制文件路径范围,禁止目录跳转字符(如…/)
实施白名单机制验证包含文件
避免动态包含,尽量使用固定路径写法
PHP配置要求:
allow_url_include必须为On状态
主要出现在PHP环境,ASP/JSP等较少见
4.命令执行漏洞
1)命令执行漏洞—DVWA低级别
**漏洞本质:**黑客可以随意执行系统命令,通过构造恶意输入绕过系统限制
代码特征:
使用shell_exec()函数直接执行用户输入的IP地址
未对用户输入$_REQUEST[‘ip’]进行任何过滤或验证
根据操作系统类型拼接不同ping命令格式(Windows使用ping,*nix使用ping -c 4)
**攻击示例:**输入127.0.0.1&&netstat -ano可同时执行ping和查看网络连接
2)命令执行漏洞—DVWA中级别
防护改进:
过滤了分号;和逻辑与&&符号
但未过滤单个&符号
命令连接符区别:
Command1&&Command2:仅当Command1成功时才执行Command2
Command1&Command2:无论Command1是否成功都会执行Command2
**绕过方法:**使用未过滤的&连接命令,如127.0.0.1&netstat -ano
高级别特征:
过滤了大部分特殊符号
但未过滤空格和管道符|
可通过127.0.0.1 | whoami获取系统用户名
3)命令执行漏洞防御方式
防御措施:
**禁用危险函数:**尽量避免使用shell_exec()等命令执行函数
**使用替代方案:**用PHP内置函数替代需要调用系统命令的功能
**输入过滤:**严格过滤用户输入中的特殊字符和命令分隔符
**及时更新:**保持框架和系统补丁最新,修复已知漏洞
5.逻辑漏洞
1)逻辑漏洞的分类
水平越权:
相同权限用户间的越权操作
**典型场景:**通过修改userID参数访问其他用户数据
垂****直越权:
不同权限用户间的越权操作
**典型场景:**普通用户获取管理员权限
2)逻辑漏洞的发生场景
登录/注册环节:
暴力破解、验证码绕过、批量注册
后****台/找回功能:
密码重置漏洞、短信验证码劫持
特殊系统:
越权访问、个人信息泄露
留言评论:
CSRF、存储型XSS、用户名枚举
3)逻辑漏洞案例
案例特征:
某相亲APP验证码系统存在缺陷
可拦截并暴力破解短信验证码
实现任意用户密码登录
攻击方法:
抓取验证码请求包
使用工具进行暴力破解
绕过验证机制直接登录
二、护网技能提升
1.逻辑漏洞案例
1)绕过验证码进行任意用户注册
**漏****洞原理:**某相亲APP存在短信验证码获取功能,攻击者可通过抓取验证码字段进行暴力破解,实现任意用户密码登录。
**攻击过程:**通过Burp Suite等工具抓取验证码请求,使用Intruder模块对验证码字段进行暴力破解尝试(如从000000到999999)。
**实际案例:**经济大佬成功绕过限制注册会员号,演示中验证码字段被破解范围为000400-389900。
**连带风险:**该漏洞常伴随短信炸弹漏洞,攻击者可无限制触发验证码重发,导致目标手机连续接收多条验证短信。
2)未授权访问/目录遍历
**未授权访问:**某医院系统存在URL直接访问管理员页面漏洞,内网环境下无需账号密码即可越权访问。
**目录遍历:**通过扫描后台目录可能发现敏感脚本或文件,如案例中显示的confie文件、lang目录等。
**客户反馈差异:**客户声称系统需要账号密码,但实际测试发现可直接访问,说明存在权限校验缺失问题。
2.弱口令案例
1)常见弱口令类型
典型模式**:**
账号密码相同(如admin/admin)
通用弱口令(如123456/123456)
社会工程学密码(如姓名+生日)
**整改难点:**虽然技术上容易修改(如123456→123455),但实际执行中总有用户不遵守规定,案例中三亚教育局因此失分20分。
2)社工获取用户权限
攻击步骤:
寻找公示密码规则的系统(如校园平台提示"学号+身份证后6位")
通过遗失声明等公开信息获取学号名单
利用特殊姓氏缩小搜索范围(如案例中选择"黎"姓学生)
通过社交网络搜索获取身份证信息
**实际案例:**通过学校贴吧找到黎同学身份证号,用学号+身份证后六位登录后,成功修改其统一认证平台密码。
**防御建议:**应避免在登录页面明示密码规则,同时对敏感信息(如学号-身份证关联)进行脱敏处理。
3)医疗系统弱口令爆破
**爆破过程:**使用Burp Intruder对医生账号进行批量测试,成功匹配多个123456弱口令账号。
**后续利用:**获取基础权限后可尝试XSS攻击、图片马上传等进一步渗透。
三、问答阶段
**技术问题:**DVWA平台搭建时遇到exec函数禁用问题,可能与PHP版本有关(5.2可用但5.4不可用)。
**解决方案:**建议保持PHP5.2环境或检查php.ini的disable_functions配置。
四、知识小结
知识点 | 核心内容 | 实操演示/案例 | 防御措施 | 难度系数 |
---|---|---|---|---|
SQL注入漏洞 | 恶意SQL语句注入后台数据库执行,本质是代码与数据不区分 | DVWA平台演示:- 单引号判断注入点- and 1=1永真条件测试- SQLmap自动化工具使用 | 参数校验与过滤预编译语句最小权限原则 | ★★★☆ |
文件上传漏洞 | 上传恶意脚本文件获取服务器权限4大成因:1. 本地限制不严2. HTTP方法配置不当3. 服务器解析漏洞4. %00截断 | - 低级别直接上传PHP木马- 中级别修改Content-Type绕过- PUT方法上传案例 | 目录不可执行白名单校验随机化文件名 | ★★★★ |
文件包含漏洞 | 动态调用文件时未过滤路径关键函数:include/requireinclude_once/require_once | - 读取/etc/passwd- 查看PHP配置文件- 目录遍历攻击对比 | 禁用危险函数路径白名单关闭allow_url_include | ★★★☆ |
命令执行漏洞 | 系统命令被恶意执行过滤绕过技巧:- &&和&区别- 管道符|利用 | - DVWA三级难度测试- SAP Netweaver漏洞- Struts2框架漏洞 | 禁用危险函数输入过滤框架补丁更新 | ★★★★ |
逻辑漏洞 | 业务流设计缺陷类型:- 水平越权(同权限)- 垂直越权(跨权限) | - 相亲APP验证码爆破- 未授权访问后台- 短信炸弹攻击 | 权限二次校验验证码防爆破会话超时机制 | ★★★★☆ |
弱口令漏洞 | 默认凭证/简单密码社工攻击路径:- 学号+身份证后六位- 密码喷洒攻击 | - admin/admin测试- 123456密码爆破- 高校系统社工案例 | 强制复杂度策略多因素认证登录失败锁定 | ★★☆ |
工具链 | 渗透测试工具集:- Burp Suite抓包- SQLmap自动化注入- 菜刀/冰蝎连接木马 | 代理设置与数据包修改POST请求注入技巧木马连接故障处理 | 网络流量监控WAF防护异常行为检测 | ★★★★ |
题外话
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
网络安全学习资源分享:
下面给大家分享一份2025最新版的网络安全学习路线资料,帮助新人小白更系统、更快速的学习黑客技术!
一、2025最新网络安全学习路线
一个明确的学习路线可以帮助新人了解从哪里开始,按照什么顺序学习,以及需要掌握哪些知识点。
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
读者福利 |
优快云大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)
我们把学习路线分成L1到L4四个阶段,一步步带你从入门到进阶,从理论到实战。

L1级别:网络安全的基础入门
L1阶段:我们会去了解计算机网络的基础知识,以及网络安全在行业的应用和分析;学习理解安全基础的核心原理,关键技术,以及PHP编程基础;通过证书考试,可以获得NISP/CISP。可就业安全运维工程师、等保测评工程师。

L2级别:网络安全的技术进阶
L2阶段我们会去学习渗透测试:包括情报收集、弱口令与口令爆破以及各大类型漏洞,还有漏洞挖掘和安全检查项目,可参加CISP-PTE证书考试。

L3级别:网络安全的高阶提升
L3阶段:我们会去学习反序列漏洞、RCE漏洞,也会学习到内网渗透实战、靶场实战和技术提取技术,系统学习Python编程和实战。参加CISP-PTE考试。

L4级别:网络安全的项目实战
L4阶段:我们会更加深入进行实战训练,包括代码审计、应急响应、红蓝对抗以及SRC的挖掘技术。并学习CTF夺旗赛的要点和刷题

整个网络安全学习路线L1主要是对计算机网络安全的理论基础的一个学习掌握;而L3 L4更多的是通过项目实战来掌握核心技术,针对以上网安的学习路线我们也整理了对应的学习视频教程,和配套的学习资料。
二、技术文档和经典PDF书籍
书籍和学习文档资料是学习网络安全过程中必不可少的,我自己整理技术文档,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,(书籍含电子版PDF)

三、网络安全视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的网安视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

四、网络安全护网行动/CTF比赛
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

五、网络安全工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了技术之后,就需要开始准备面试,我们将提供精心整理的网安面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
如果你是要找网安方面的工作,它们绝对能帮你大忙。
这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。
参考解析:深信服官网、奇安信官网、Freebuf、csdn等
内容特点:条理清晰,含图像化表示更加易懂。
内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…


**读者福利 |**
优快云大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)