渗透测试Top10漏洞详解·萌新友好版(上)

admin 2025年2月18日18:51:06评论7 views字数 1874阅读6分14秒阅读模式
 

🍔 Top1 注入攻击:像篡改外卖订单的"加料黑客"

🔍 漏洞原理

想象你在奶茶店点单时,在备注栏写:"珍珠奶茶,备注:') DROP TABLE 订单;-- "如果系统直接拼接你的备注到数据库,就会删除整个订单表!

🛠️ 攻击演示(SQL注入)

SQL



用户输入:admin' --   
最终SQL:SELECT * FROM users WHERE name='admin' -- ' AND password='xxx'
(-- 是SQL注释符,直接跳过密码验证!)  

🛡️ 防御方案(咖啡店老板对策)

✅ 参数化查询:像用标准订单单填写,备注单独处理

PYTHON



# 正确姿势 ✔️  
cursor.execute("SELECT * FROM users WHERE name = %s AND password = %s", (name, pwd))  

# 错误姿势 ❌  
cursor.execute(f"SELECT * FROM users WHERE name='{name}'")  

🎭 Top2 失效身份认证:你家门锁是塑料做的吗?

🔍 漏洞场景

  • 🚪 门锁太简单:密码是"123456"
  • 🔑 钥匙随便配:登录后返回的令牌永久有效
  • 🚨 不装监控:连续输错密码100次也不报警

🛠️ 攻击工具演示

BASH



# 用Hydra爆破SSH密码(就像用100把钥匙试门锁)  
hydra -L users.txt -P passlist.txt ssh://10.0.0.1  

常用密码表:rockyou.txt(包含"password"、"qwerty"等弱密码)

🛡️ 防御三件套

  1. 🔒 强密码策略:至少12位,包含大小写+数字+符号
  2. 📱 手机验证码:就像银行U盾二次验证
  3. ⏳ 会话有效期:登录后1小时自动过期

📦 Top3 敏感数据暴露:把银行卡密码写在明信片上

🔍 常见翻车现场

  • 🚚 快递明文传输:用HTTP而不是HTTPS发送密码
  • 🏪 仓库不关门:数据库默认账号admin/admin
  • 📢 公开喊话:错误提示直接返回"密码错误"

🛠️ 攻击案例

访问Elasticsearch未授权接口:

HTTP



GET http://192.168.1.1:9200/user/_search?q=credit_card  

返回结果可能包含:

JSON



{ "name": "张三", "card": "6225888812345678" }  

🛡️ 防御三步走

  1. 🔐 全站HTTPS:给数据穿上防偷窥外套
BASH



# 快速部署免费SSL证书  
sudo certbot --nginx -d 你的域名.com  
  1. 🗝️ 加密存储:像把密码放进保险箱再存仓库
  2. 🚫 最小化返回:错误提示改为"用户名或密码错误"

📜 Top4 XXE攻击:利用快递单窃取仓库机密

🔍 漏洞比喻

你在寄快递时,在收件人栏偷偷写:"顺便把你们公司的员工通讯录塞进包裹里"如果快递公司照做,你就拿到了机密信息!

🛠️ 恶意XML示例

XML



<?xml version="1.0"?>  
<!DOCTYPE 快递单 [  
  <!ENTITY 内部文件 SYSTEM "file:///etc/passwd">  
]>  
<订单>  
  <收件人>&内部文件;</收件人>  
</订单>  

🛡️ 防御方案

✅ 禁用DTD解析:像快递公司拒绝查看备注内容

JAVA



// Java防护代码  
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();  
factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);  

🚪 Top5 失效访问控制:普通员工拿到总裁办公室钥匙

🔍 典型场景

  • 修改URL参数访问他人订单:/order?id=10086 ➡️ /order?id=10010
  • 普通用户访问管理后台:/admin 路径未做权限校验

🛠️ 越权漏洞检测

用Burp Suite修改请求:

HTTP



GET /api/deleteUser?id=9527 HTTP/1.1  
Cookie: role=user  # 普通用户尝试删除他人账号  

🛡️ 防御方案(Node.js示例)

JAVASCRIPT



// 权限校验中间件  
function checkPermission(req, res, next) {  
if (req.user.role !== 'admin') {  
return res.status(403).send('❌ 小朋友不可以进管理员房间哦~');  
  }  
  next();  
}  

 

原文始发于微信公众号(泷羽Sec-醉陌离):【渗透测试Top10漏洞详解·萌新友好版(上)】黑客最爱的5大漏洞竟是这些?

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月18日18:51:06
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   渗透测试Top10漏洞详解·萌新友好版(上)https://cn-sec.com/archives/3757160.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息