🌀 鱼油のB10g

✦ 不定期更新技术随想

✦ 分享奇妙发现

📌 近期动态:

探索AI和工具使用...

第7章 第75课

代码审计基础总结

代码审计就像给程序做「体检」——拿着放大镜看源码里的安全隐患。举个贴近的例子:你写的校园论坛系统,可能因为一行代码让黑客刷光所有积分 (:з」∠)

审计入门:白盒 vs 黑盒

  • 白盒审计:直接看源码(像老师提前给你考试答案)
  • 黑盒渗透:纯靠盲测(像闭卷考试)
    新人建议从PHP入手,语法简单漏洞多,比如这段典型漏洞代码:
// 校园论坛积分查询功能(危险代码!)
$userid = $_GET['id']; // 直接获取用户输入
$sql = "SELECT points FROM users WHERE id=$userid"; // 拼接SQL语句
mysql_query($sql); // 执行查询

// 攻击者输入:1 OR 1=1 就能 dump 全表数据

审计核心:三大分析法

  1. 数据流追踪法(跟踪用户输入去向)
// 校招简历上传功能
$resume = $_FILES['file']['name']; // 用户控制点①
saveToDB(htmlspecialchars($resume)); // 转义存入数据库✌️

// 但下载时直接输出:
header("Content-Disposition: attachment; filename=$resume");
// 攻击者上传"resume.php"文件 → 触发XSS!
// 漏洞链:未追踪到输出点的二次利用
  1. 关键函数法(高危函数定位)
// 学生管理系统
include($_GET['page'].".php"); // 文件包含漏洞风险
eval("$points = $formula;"); // 公式计算功能 → 代码注入
$serialized = unserialize($data); // 反序列化漏洞 → RCE
  1. 通读全文法(适合小型项目)
    config.php 开始读:
// 数据库配置泄露 → 拿全校学生数据
define('DB_PASSWORD', 'sHu_2023!'); // (╯°□°)╯︵ ┻━┻

代码审计环境搭建(PHP篇)

推荐宿舍自建靶场,30分钟搞定:

工具清单

  1. VS Code + PHP插件(代码着色/跳转)
// settings.json 配置
"php.validate.executablePath": "C:/phpstudy/php/php-7.4/php.exe"
  1. PHPstudy(一键环境)
# 验证XDebug调试(关键!)
php -v # 输出带 XDebug v3.1.1 即成功
  1. Seay自动化审计(解放双眼)
    直接拖入论坛源码 → 自动标记 eval()system() 等危险函数

环境验证

创建 test.php

<?php
// 测试调试功能
$a = $_GET['x'] ?? 'Hello';
echo system("ping ".$a); // 故意留命令注入漏洞

按F5启动调试 → 输入参数 x=127.0.0.1 & whoami → 观察执行结果


代码审计实战项目

带大家审计校内常见系统:

1. DVWA靶场(新手村)

审计 SQL注入模块

// dvwa/vulnerabilities/sqli/source/low.php
$id = $_GET['id']; // 无过滤!
$getid = "SELECT first_name FROM users WHERE user_id = '$id'";
// 修复方案:加上 mysqli_real_escape_string()

2. 留言板系统(ZVulDrill)

XSS漏洞

// showmessage.php
$msg = $_POST['content'];
echo "<div>".$msg."</div>"; // 直接输出 → 存储型XSS
// 攻击:提交 <script>alert(学号)</script>

3. 校园CMS(BlueCMS)

审计 后台越权

// admin/article.php
if(!isset($_SESSION['admin'])) die("未登录"); // 看似安全
// 但同目录下 edit.php 未校验权限 → 普通用户可改通知

4. 电商系统(PHPOK)

深挖 逻辑漏洞

// 积分兑换功能
if($user_points > 1000) {
$product->exchange(); // 扣积分
$user->add_product(); // 发货
}
// 并发请求可重复兑换(秒杀活动翻车现场)

课程总结与避坑指南

  1. OWASP TOP10必查项
  • SQL注入、XSS、越权访问 → 校园系统重灾区
  • 文件上传漏洞 → 黑客传木马控制服务器
  1. 权限配置四铁律
# Nginx配置示例(防止目录遍历)
location /uploads {
deny all; # 禁止直接访问
php_admin_flag engine off; # 禁止执行PHP
}
  1. 审计效率技巧
  • 先搜 $_GET$_POST 找用户输入点
  • 再追 echoinclude 等输出点
  • 重点查登录/支付等核心功能

最后忠告
在宿舍挖靶场随便玩,但别碰真实网站!去年有同学审计选课系统被警告了 (;′⌒`)
下次见!

posted on 2025-08-06 07:15  鱼油YOU  阅读(20)  评论(0)    收藏  举报