- 基本信息:
- 原理:
- 代码安全测试是从安全的角度对代码进行测试评估
- 结合丰富的安全知识、编程经验、测试技术,利用静态分析和人工审核的方法寻找代码在架构和编码上的安全缺陷,在代码形成软件前将业务安全降到最低
- 方式:
- 人工+工具双重审核
- 人工审核:
- 既能解决内部问题也能解决外部问题,最有效率的解决方案,理论上人工审核最有效,但是效率不高,所以会采用自动化分析工具辅助人工的方式来提供效率
- 静态分析工具:
- 通过一组全面规则、测试机制和方针在软件开发过程、测试过程发现软件的安全缺陷
- 思路(php代码审计为例):
- 通读全文代码,从功能函数代码阅读开始,如include关键词下的common_fun.php或者类似关键词的文件
- 看配置文件,带有config关键词的文件,找到mysql.php文件的connect()函数,查看数据库是否有连接漏洞
- 跟踪index.php文件,了解此文件运作时加载了哪些函数和文件,一层一层去扩展阅读包含的文件,了解功能
- 漏洞产生的原因:
- 变量控制不严(一切输入都是有害的)
- 变量到达有利用价值的函数(一切进入函数的变量都是有害的),漏洞利用的效果取决于最终函数的功能
- 挖掘流程:
- sql注入关键词:
- select、insert、update、$_GET、$_POST、$_REQUEST、urldecode/rawurldecode(编码注入关键词)、gbk(宽字节注入关键词)
- pdo预处理所用函数prepare、execute
- 原理:
-
1、先看预处理的语法
$pdo->prepare('select * from biao1 where id=:id');
$pdo->execute([':id'=>4]);
2、语句一,服务器发送一条sql给mysql服务器,mysql服务器会解析这条sql。
语句二,服务器发送一条sql给mysql服务器,mysql服务器不会解析这条sql,只会把execute的参数当做纯参数赋值给语句一。哪怕参数中有sql命令也不会被执行,从而实现防治sql注入。
-
- 上传漏洞关键词:
- $_FILES、move_uploaded_file
- CSRF漏洞关键词:
- token、referer
- 执行漏洞关键词:
- shell_exec、exec、passthru、system、popen
- 包含关键词:
- include、include_once、require、require_once
- 文件下载、读取漏洞关键词:
- file_get_contents()、highlight_file()、fopen()、readfile()、fread()、fgetss()、fgets()、parse_ini_file()、show_source()、file()
- 变量覆盖关键词:
- $$
- XSS跨站漏洞关键词:
- echo、print、print_r、var_dump、var_exprot
- 会话认证漏洞关键词:
- coo
- sql注入关键词:
- 原理:
web渗透测试之代码审计
最新推荐文章于 2024-07-30 18:36:42 发布