PHP代码审计示例(一)——淡然点图标系统SQL注入漏洞审计

2023-11-11

今天继续给大家介绍渗透测试相关知识,本文主要内容是PHP代码审计示例——淡然点图标系统SQL注入漏洞审计。

免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!

一、关键字查询

首先,我们将项目代码导入Seay代码审计系统,然后使用系统的关键字搜索功能,直接搜索“select”关键字。在搜索时,要注意选择不区分大小写选项,以便筛选出更多的符合条件的代码,关键字查询页面如下所示:
在这里插入图片描述

二、PHP代码查看

关键字查询可以帮助我们查找到符合要求的代码,但是该代码片段究竟是否存在漏洞,还需要我们去人为验证。我们可以在查看代码时,查看哪些在SQL语句中,含有参数的部分,即上图中红色的部分。双击该部分的代码,就可以查看该代码片段的详细信息了,如下所示:
在这里插入图片描述
从上图中可以看出,ywX函数中存在一个SQL查询语句,通过该语句,我们可以看到有ID参数嵌入到了SQL语句中。但是该代码片段只是定义了一个存在SQL漏洞的函数,而真正存在SQL注入漏洞的地方,还取决于在什么地方调用该函数。
接下来,我们在全局搜索中搜索yxW关键字,结果如下所示:
在这里插入图片描述
找到调用的位置,如下所示:
在这里插入图片描述
然而,当我们访问该文件对应的URL时,却发现结果如下所示:
在这里插入图片描述

三、验证绕过

出现上述页面,我们需要继续查找源码,搜索页面中的文字信息,发现验证代码如下所示:
在这里插入图片描述
分析上述源代码,可以看出,代码从SERVER头中获取了HTTP_HOST和HTTP_REFERER字段的值,然后进行处理后对数据进行校验,如果我们没有设置HTTP_HOST和HTTP_REFERER,那么校验就会失败,因此会EXIT退出。
我们使用火狐浏览器设置HTTP_HOST和HTTP_REFERER字段,则结果如下所示:
在这里插入图片描述
从上图中可以看出,虽然我们绕过了以此验证,但是结果却返回“请输入完整”,我们继续重复上述过程,查找代码如下所示:
在这里插入图片描述
我们根据代码要求,以GET的方式传入api、u和p三个变量,在这里要注意api变量的值为“OK”。则结果如下所示:
在这里插入图片描述
这样,我们就完成了验证绕过了。

四、payload构造与漏洞验证

从上述可以分析出,我们可以构造如下所示的payload:

http://127.0.0.1/sqqyw/php/v144.php?u=1&p=1&api=ok&id=1 and sleep(if(length(database())<=10,3,1))--+

在这里,由于ywX函数被使用在if语句中,并没有反馈,因此我们需要使用SQL盲注的方式来获取数。或者使用SQLMAP工具,在指定REFERER头后,批量获取数据,结果如下所示:
在这里插入图片描述
在这里插入图片描述
从上述结果可以看出,我们成功的进行了PHP代码审计,分析出了代码中存在的一个SQL注入漏洞。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP代码审计示例(一)——淡然点图标系统SQL注入漏洞审计 的相关文章

  • PHP 中的 MongoDB - 如何将项目插入集合中的数组中?

    这必须很容易 但我似乎无法弄清楚 假设我有一个集合users这是集合中的第一项 id ObjectId 4d8653c027d02a6437bc89ca name Oscar Godson email email protected cdn
  • Laravel 集成测试:如何断言一个 URL 已被调用但另一个 URL 没有

    我想测试一个向某个 URL 发出请求的控制器 例如 http example com api say hello 但它不会向另一个 URL 发出请求 例如 http example com api say bye bye 我想测试的控制器功
  • 在值中包含换行符

    我有一个 Word 模板 其中 php 代码中定义了值 在PHP代码中 document gt setValue Value1 value1 在word模板中 Value1 如何将包含两个值之间的断线的值包含在单词的值中 Replace n
  • PHP - 获取base64图像字符串解码并保存为jpg(生成空图像)

    嗨 我实际上是通过 ajax 发送一个 base64 图像字符串到一个 php 脚本 该脚本只是解码字符串并将内容保存为 jpg 文件 但结果是一张空图像 这怎么可能 PHP脚本 uploadedPhotos array photo 1 p
  • PHP 或 WAMP 不确定是什么

    我已经安装了 WAMP 服务器 2 0 PHP 5 4 3 安装WAMP后我已经重新启动了所有服务并且可以打开 phpinfo 显示良好 phpmyadmin 它也显示得很好 我可以使用数据库 然而 当在 Chrome 中运行简单的 php
  • 为什么这会返回资源 id #2? [复制]

    这个问题在这里已经有答案了 可能的重复 我如何从 PHP 中的 MySql 响应中 回显 资源 id 6 https stackoverflow com questions 4290108 how do i echo a resource
  • 在字符串中间添加一个字符

    可能有一个简单的解决方案可以解决这个问题 但会引起面部表情 我将时间存储为 4 个字符长的字符串 即 1300 我试图将该字符串显示为 13 00 我觉得必须有一个比我现在正在做的更优雅的解决方案 我目前有 startTime get fi
  • 在 Laravel 5 中截断表

    描述 我有一个充满测试数据的表 有时 我想清除它以获取新数据 我可以在 DBMS 应用程序中执行截断 例如MySQL 工作台 但我试图在我的应用程序中实现它 Goal 创建一个按钮 单击时截断数据库中的表 这是我的步骤 1 声明一条路线 R
  • 第三个下拉菜单不从数据库填充

    我有以下 Index php
  • 使用先前的反向引用作为命名捕获组的名称

    有没有办法使用对先前捕获组的反向引用作为捕获组的名称命名捕获组 这可能不可能 如果不可能 那么这就是一个有效的答案 下列 data description some description preg match data matches p
  • 语法错误,第 288 行出现意外的“endif”(T_ENDIF)[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我一直在离线处理我的 WordPress 网站的此代码错误 解析错误 语法错误 homez 541 photoher marie
  • 使用 PHP 的 MySQL 连接字符串

    我正在尝试通过本地计算机连接到托管在我的服务器上的数据库 我的服务器有cPanel 11 它是一个典型的共享服务器 由CentOS提供支持 安装了PHP和MySQL 准确地说 我在同一台服务器上持有经销商帐户 我想在不同帐户或域之间访问数据
  • JavaScript 验证和 PHP 验证?

    我正在使用 jquery 验证插件来验证空表单 我还应该在 PHP 中检查一下以确保 100 正确吗 或者用 javascript 验证就可以了 谢谢 您应该始终在服务器上进行验证 如果用户以某种方式不使用 Javascript 提交表单
  • 从支付网关重定向回时用户会话丢失

    我已将 Cyber source 配置为我的支付网关 我能够导航到 cybersource 并进行付款 并能够成功重定向回该网站 我也可以取消付款并重定向回我的网站 我收到来自支付网关的响应 但是 用户在从支付网关重定向回来时会被注销 我正
  • URL 中的 %2F 中断并且未引用所需的 .php 文件 [重复]

    这个问题在这里已经有答案了 我需要将 作为变量作为 URL 的一部分传递 我的结构如下所示 www domain com listings page 1 city Burnaby South type Townhome bedroom 2
  • 保存多对多关系,同步/附加不存在?

    我有以下两个多对多关系的模型 use Illuminate Database Eloquent Model class Permission extends Model The database table used by the mode
  • Laravel leftJoin 仅右表的最后一条记录

    我是 Laravel 的新手 我有两张桌子 1 产品 2 价格 products id product int p key name varchar prices id price int p key id product int
  • 如何在laravel中注册后自动登录

    我在 laravel 中注册用户时遇到问题 user假设是包含所有数组元素的数组 同时自动登录以下代码结果false 数据库中保存的密码是hash make password user id this gt user model gt ad
  • 为什么我的会话仍然存在?

    我一定很愚蠢 因为似乎一件相当明显的事情现在让我完全困惑 我有一个会议 ie SESSION handbag id 在某个时刻 我需要彻底终止这个会话 ie at the start of the page session start el
  • 一种无需 JavaScript 即可在 PHP 中确定浏览器宽度的方法?

    首先有吗 或者我必须使用javascript 我希望能够更改使用的 CSS 因此 frex 我可以为移动设备或其他设备加载较小的字体 不幸的是 仅使用 PHP 无法检测用户分辨率 如果您使用 Javascript 则可以在 cookie 中

随机推荐

  • 数据生成

    数据生成 MATLAB实现MCMC马尔科夫蒙特卡洛模拟的数据生成 目录 数据生成 MATLAB实现MCMC马尔科夫蒙特卡洛模拟的数据生成 生成效果 基本描述 模型描述 程序设计 参考资料 生成效果 基本描述 1 MATLAB实现MCMC马尔
  • java常见轮询算法

    轮询算法 轮询算法就是通过一个算法 对提供的一组列表进行计算 按照一定规则取出列表中的元素 常见的有顺序模式 随机模式 加权模式 加权平滑模式 定义轮询算法的接口 轮询算法接口 public interface Balance
  • 计费服务器不响应,按小时计费的服务器不开机会计费吗

    按小时计费的服务器不开机会计费吗 内容精选 换一换 按需付费是后付费方式 可以随时开通 删除弹性云服务器 支持秒级计费 系统会根据云服务器的实际使用情况每小时出账单 并从账户余额里扣款 按需付费的弹性云服务器关机再次开机时 可能会出现由于资
  • NMOS作为开关的两种接法

    NMOS作为开关的两种接法 1 左边电路负载是接在S极对地 如果R1很小且Q1 G极一直为High 那么流过Q1的电流可能将会非常大 MOS管容易烧 2 R1 I Us VGS Vg Vs 此时VGS不一定会大于Vgs th MOS会不完全
  • html抽奖概率,求一个可挑概率的html5抽奖 圆盘的

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼圆盘抽奖 margin 0 padding 0 elm1 height 40px background color a00 elm2 height 50px background color 0a
  • mysql库的安装

    编译文件时找不到mysql库 使用以下命令查看是否安装mysql库 dpkg l grep libmysqlclient dev 安装 sudo apt get install libmysqlclient dev 安装完成可以正常编译
  • Parallels Desktop 17 发布 针对M1大幅优化

    今天 Parallels 公司发布了 Parallels Desktop 17 它对 Windows 11 和 macOS Monterey 进行了适配优化 同时为基于Apple M1 和Intel 芯片的Mac进行图形 性能提升和生产力的
  • 【.NET8】访问私有成员新姿势UnsafeAccessor(上)

    前言 前几天在 NET性能优化群里面 有群友聊到了 NET8新增的一个特性 这个类叫 UnsafeAccessor 有很多群友都不知道这个特性是干嘛的 所以我就想写一篇文章来带大家了解一下这个特性 其实在很早之前我就有关注到这个特殊的特性
  • Windows 常用运行库下载 (DirectX、VC++、.Net Framework等)

    经常听到有朋友抱怨他的电脑运行软件或者游戏时提示缺少什么 d3dx9 xx dll 或 msvcp71 dll msvcr71 dll又或者是 Net Framework 初始化之类的错误而无法正常使用 其实很多时候 只是因为你的电脑没有安
  • kettle8 新插件开发 调试

    参考 https blog csdn net u013468915 article details 82629810 https blog csdn net zougen article details 80825751 基于eclipse
  • 【自然语言处理】大模型高效微调:PEFT 使用案例

    文章目录 一 PEFT介绍 二 PEFT 使用 2 1 PeftConfig 2 2 PeftModel 2 3 保存和加载模型 三 PEFT支持任务 3 1 Models support matrix 3 1 1 Causal Langu
  • 从新建项目到打包成APK(Cocos2d-x 2.2.1)

    好久没有更新Cocos2d x的学习文章了 最近在整理大学期间做过的东西 同时也新做了几个Cocos2d x的小程序 并且在网上搜索了不少资料 终于成功地打包成APK了 并在两个Android手机上成功运行 小for的环境是Windows8
  • DE-FAKE: Detection and Attribution ofFake Images Generated by Text-to-Image Generation Models

    一 文章信息 论文名称 DE FAKE Detection and Attribution of Fake Images Generated by Text to Image Generation Models 作者团队 二 主要创新 本文
  • 用python-opencv实现简单的人脸检测(代码+理论知识)

    目录 1 理论知识 1 安装opencv 2 opencv人脸检测器 3 加载人脸分类器 2 代码介绍 1 用摄影头调用图像 2 选择图片 3 完整代码 1 理论知识 1 安装opencv 本文实现人脸目标检测的方法是opencv图像采集
  • 华为云CodeArts DevSecOps系列插件——助力更高效的软件研发

    HDC期间入驻华为云 可参与Toolkit插件抽奖活动 活动链接在文末 一 前言 DevOps的概念想必大家都不陌生 它是一组过程 方法与系统的统称 通过它可以对交付速率 协作效率 部署频率速率 质量 安全和可靠性等进行提升改善 相比传统的
  • 基于NAR神经网络的化工产品价格预测的实现(Matlab)

    clear all clc 清除环境 xlsread styrene xls 读取苯乙烯价格序列 ans 系统会显示具体值 styrene ans 变换为行向量 lag 3 自回归阶数 iinput styrene n length iin
  • JSP实现简单的两数加法运算

    Request对象的作用 1 获取http请求行中信息 请求方式和请求路径 2 获取客户端信息 如ip 3 获取请求资源路径 4 域对象 具体需求 在浏览器上实现两个整数的加法运算 利用request携带参数实现加法运算 测试代码如下
  • Layui实现点击文字、缩略图查看图片功能

    刚完成一个客户需求 同一个页面上要有点击缩略图查看大图功能 也有点击图片名称查看原图的功能 点击缩略图查看大图的功能 点击缩略图查看大图的功能实现用的是layui开发文档内的layer photos 相册层 官方开发文档里photos支持传
  • weboffice 6版本实现在线word

    公司最近需要开发一个在线word功能 开始用pageoffice开发的功能被否决因为pageoffice的版权问题 后采用点聚weboffice的免费版开发 因为多个页面需要使用在线word功能 对于weboffice提供的activeX对
  • PHP代码审计示例(一)——淡然点图标系统SQL注入漏洞审计

    今天继续给大家介绍渗透测试相关知识 本文主要内容是PHP代码审计示例 淡然点图标系统SQL注入漏洞审计 免责声明 本文所介绍的内容仅做学习交流使用 严禁利用文中技术进行非法行为 否则造成一切严重后果自负 再次强调 严禁对未授权设备进行渗透测