YAK-SSA,古希腊掌管PHP代码审计的神
💡
原文中文,约5200字,阅读约需13分钟。
📝
内容提要
本文介绍了如何使用ssa.to进行PHP代码审计,重点分析ThinkPHP框架中的请求处理和数据流。通过配置过滤器和编写规则,审计人员能够识别XSS漏洞和数据库安全隐患。文章还讨论了常见的文件上传和参数处理函数,强调了代码审计的重要性。
🎯
关键要点
- 介绍了如何使用ssa.to进行PHP代码审计,重点分析ThinkPHP框架中的请求处理和数据流。
- 通过配置过滤器和编写规则,审计人员能够识别XSS漏洞和数据库安全隐患。
- 讨论了常见的文件上传和参数处理函数,强调了代码审计的重要性。
- I/request方法在ThinkPHP中封装了请求对象,过滤参数需要在config文件中指定。
- 使用ssa进行代码审计时,可以找到函数实现从source点到sink点的路径,进行精确的数据流分析。
- 文件上传相关的辅助函数包括$file->move()、$file->check()等。
- 规则编写部分可以通过syntaxflow实现,包含include和exclude配置。
- 通过简单的规则编写,可以实现自定义规则,寻找顶级定义的过程中排除路径上的filter。
- 审计过程中需要关注可控变量与顶级调用者的交集。
- 在实战演示中,编译过程中可能会因为依赖导致速度变慢。
- XSS分为反射和存储两种,反射XSS直接输出到页面,存储XSS存储到数据库中。
- 审计过程中发现的内容需要逐一查看,定位到具体的代码文件进行分析。
- 并非所有的I方法都有漏洞,参数可以配置默认过滤。
- 通过对输入点的审计,找到时间戳、appid和签名的校验逻辑。
- 提供了热加载调用的示例,允许对请求和响应进行处理。
➡️