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

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

今天继续给大家介绍渗透测试相关知识,本文主要内容是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))--+
1
在这里,由于ywX函数被使用在if语句中,并没有反馈,因此我们需要使用SQL盲注的方式来获取数。或者使用SQLMAP工具,在指定REFERER头后,批量获取数据,结果如下所示:

从上述结果可以看出,我们成功的进行了PHP代码审计,分析出了代码中存在的一个SQL注入漏洞。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

文章知识点与官方知识档案匹配,可进一步学习相关知识
MySQL入门技能树SQL高级技巧CTE和递归查询91130 人正在系统学习中
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_40228200/article/details/129291769

目录
相关文章
|
2月前
|
存储 安全 PHP
PHP中实现简单身份验证系统的步骤
【8月更文挑战第31天】在构建Web应用程序时,确保用户身份的合法性和数据的安全性是至关重要的。本文将引导你通过使用PHP语言来实现一个简单的身份验证系统,从数据库设计到前端登录界面的创建,再到后端逻辑的处理,我们将一步步地走过整个流程。无论你是PHP新手还是希望复习相关知识,这篇文章都将为你提供清晰的指导和实用的代码示例。
|
3天前
|
SQL 安全 Java
JAVA代码审计SAST工具使用与漏洞特征
JAVA代码审计SAST工具使用与漏洞特征
16 1
|
7天前
|
SQL 存储 UED
系统里这个同时查冷热表的sql,动动手指,从8s降到3s
系统将交易数据按交易时间分为热表(最近3个月)和冷表(3个月前)。为保证用户体验,当企业门户端查询跨越冷热表时,尤其针对大客户,查询性能优化至关重要。以下是程序的SQL查询语句及其优化版本。
21 1
|
19天前
|
缓存 NoSQL PHP
使用PHP-redis实现键空间通知监听key失效事件的技术与代码示例
通过上述方法,你可以有效地在PHP中使用Redis来监听键空间通知,特别是针对键失效事件。这可以帮助你更好地管理缓存策略,及时响应键的变化。
53 3
|
2月前
|
关系型数据库 MySQL 应用服务中间件
win7系统搭建PHP+Mysql+Apache环境+部署ecshop项目
这篇文章介绍了如何在Windows 7系统上搭建PHP、MySQL和Apache环境,并部署ECShop项目,包括安装配置步骤、解决常见问题以及使用XAMPP集成环境的替代方案。
40 1
win7系统搭建PHP+Mysql+Apache环境+部署ecshop项目
|
6天前
|
PHP Apache 数据库
PHP做二次开发:本机安装ThinkCMF系统
文章详细说明了如何在本地环境中从零开始安装并配置ThinkCMF系统,包括环境准备、源代码获取、虚拟域名设置及数据库配置等步骤。
|
2月前
|
JSON PHP Apache
[GFCTF 2021]Baby_Web(CVE-2021-41773) 从一道题入门PHP代码审计 (保姆级)
[GFCTF 2021]Baby_Web(CVE-2021-41773) 从一道题入门PHP代码审计 (保姆级)
18 1
|
2月前
|
前端开发 网络安全 PHP
PHP代码审计之MVC与ThinkPHP简介
PHP代码审计之MVC与ThinkPHP简介
32 2
|
2月前
|
监控 安全 网络安全
PHP代码审计之简单思路方法
PHP代码审计之简单思路方法
90 1
|
2月前
|
前端开发 关系型数据库 MySQL
最新黑名单查询录入系统PHP网站源码
最新黑名单查询录入系统PHP网站源码 前端html 后端layui 操作部分都采用API接口的方式实线 集结了layui表格的多数据操作,添加,批量删除,分页,单项删除 后台数据修改采用绑定参数的形式来进行修改可以很好的预防数据库注入,当然如果你想要测试这个防注入的你也可以尝试一下 PHP版本70+ 数据库Mysql 5.6 上传程序访问 http://你的域名/install 安装
60 0
下一篇
无影云桌面