当前位置: 首页 > news >正文

PHP代码审计学习01

目录

两种思路

addslashes函数和magic_quotes_gpc配置:


今天来开php代码审计。

PHP无框架项目SQL注入挖掘技巧。

可以看看小迪老师的学习流程或者说是路线吧。

其中,最下面的代码审计工具推荐用下面两款,fortify,seay。

(fortify收费,seay国产免费)

漏洞产生的根本原因是可控变量特定函数,其中有的输入输出不存在过滤或者过滤不严谨。

比如说传进去的一个id是一句<script>语句,或是一句sql查询语句,这就是可控变量。在后面跟上echo()函数便可能导致XSS漏洞,跟上mysql_query()函数便可能导致sql注入漏洞。

两种思路

定点挖掘关键字:

这样看来,可控变量和特定函数导致了部分漏洞的产生。那么代码审计的一种挖掘思路其实就是搜索特定的关键字来寻找特定的漏洞。

如:搜索echo print 尝试挖掘的就是xss漏洞。

如:搜索$GET $POST 尝试挖掘的就是其他安全漏洞。

定点挖掘功能点:

比如说要挖掘文件上传漏洞,那么就可以找有文件上传功能的地方。从而找到对应代码段进行分析。

拓展:数据库监控,断点调试也可以挖掘漏洞

数据库监控:

代码审计定点挖掘漏洞一种简单思路:

我们可以选定一种漏洞比如说SQL注入,然后用代码审计工具fortify,seay等打开网站源码,全局搜索sql语句中的关键字,比如说select等,找到与数据库有交互的sql语句和它所在的函数、传值的地方,就可以进行注入了。(联合,报错,堆叠,盲注,二次,宽字节)

addslashes函数和magic_quotes_gpc配置:

addslashes()函数和magic_quotes_gpc(魔术引号) 作用一样,都是起到过滤的作用,(一些比较规范的经典的CMS系统都会自带这种过滤功能)这在《小迪安全》学习笔记05中提到过。

这俩会把以下四个预定义字符前面加上一个反斜杠 \

单引号

双引号

反斜杠“ \ ”

Null

需要区别的是:

addslashes() 是一个php预定义函数,而magic_quotes_gpc只是一个配置开关,可以在php.ini配置文件中更改on/off 或者在脚本中ini_set更改。

需要注意的是magic_quotes_gpc在php5.4版本就已经废弃。

绕过过滤可以用二次注入或者宽字节注入。

// 目前我见到的二次注入可以发生在个人信息注册和后续修改情况。

Sql二次注入发生在insert将恶意代码放进数据库,然后用update等引用恶意代码出来搞怪。

碰到一些更高级的CMS系统会有 转义+关键字过滤,可以考虑二次编码(url等)

因为get传参是可以自动识别url编码的,利用了这么一种或几种特性。

欢迎各位批评指正!

http://www.lryc.cn/news/523617.html

相关文章:

  • 《数据思维》之数据可视化_读书笔记
  • 深度学习常见术语解释
  • 重温STM32之环境安装
  • 使用Flask和Pydantic实现参数验证
  • python_在钉钉群@人员发送消息
  • C语言之装甲车库车辆动态监控辅助记录系统
  • 线性代数概述
  • 使用 ChatGPT 生成和改进你的论文
  • Linux命令行工具-使用方法
  • RV1126+FFMPEG推流项目(7)AI音频模块编码流程
  • 四、华为交换机 STP
  • 服务器卡顿是否等同于遭受CC攻击?
  • 【机器学习实战入门】使用Pandas和OpenCV进行颜色检测
  • 一文大白话讲清楚webpack基本使用——1——完成webpack的初步构建
  • RabbitMQ基础篇
  • GPT-5 传言:一场正在幕后发生的 AI 变革
  • CSS布局与响应式
  • C++的auto_ptr智能指针:从诞生到被弃用的历程
  • iOS - Objective-C 底层实现中的哈希表
  • 什么是软件架构
  • 【Golang/nacos】nacos配置的增删查改,以及服务注册的golang实例及分析
  • RabbitMQ集群安装rabbitmq_delayed_message_exchange
  • Linux UDP 编程详解
  • 【2024年华为OD机试】(B卷,100分)- 计算最接近的数 (Java JS PythonC/C++)
  • Pytorch 自学笔记(三):利用自定义文本数据集构建Dataset和DataLoader
  • QT 使用QSqlTableModel对数据库进行创建,插入,显示
  • 如何学习Transformer架构
  • 浅谈云计算22 | Kubernetes容器编排引擎
  • 计算 SAMOut V3 在将词汇表从1万 增加到6千万的情况下能够减少多少参数
  • 03.选择排序