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

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.kler.cn/a/512871.html

相关文章:

  • 基于tldextract提取URL里的子域名、主域名、顶级域
  • Bash语言的函数实现
  • C++ 类与对象(上)
  • VS Code AI开发之Copilot配置和使用详解
  • 前端开发Web
  • 2025年1月17日(点亮一个 LED)
  • Github 2025-01-20 开源项目周报 Top15
  • Docker:基于自制openjdk8镜像 or 官方openjdk8镜像,制作tomcat镜像
  • Linux 时间操作详解
  • 什么是馈线自动化(FA)?其优点是什么?本文给出答案
  • 14,c++——继承
  • VSCode 使用默认profile打开文件
  • SpringBoot配置文件高级用法实战
  • RabbitMQ使用随笔
  • C语言勘破之路-最终篇 —— 预处理(上)
  • 高质量编程 性能优化学习笔记
  • redis-redission的加锁源码与看门狗机制
  • 【人工智能数学基础—微积分】深入详解梯度与梯度下降:掌握梯度下降法及其变种及模型参数的优化
  • 14天学习微服务-->第1天:微服务架构入门
  • Java锁 死锁及排查 JVM 工具 jconsole 工具 排查死锁
  • R语言的编程范式
  • cuda从零开始手搓PB神经网络
  • QT:多窗口设计(主窗口点击按钮打开子窗口)
  • 开源的Text-to-SQL工具WrenAI
  • SQL Server2022版详细安装教程(Windows)
  • 有线通信方式(I2C、UART、RS485)