PHP代码审计 - SQL注入

SQL注入

 正则搜索(update|select|insert|delete).*?where.*=

示例一:

bluecms源码下载:source-trace/bluecms

以项目打开网站根目录,并以ctrl+shift+f打开全局搜索

(update|select|insert|delete).*?where.*=并开启正则匹配

在这里插入图片描述

最快寻找脆弱点的方法:

1、是否有可控的值

2、文件路径和文件名字猜测文件作用

3、有无过滤,或者过滤是否严格

这里就不浪费时间,直接测试ad_js.php文件内的sql注入

在这里插入图片描述

发现使用了自定义的getone函数,那么跳转到对应函数声明

在这里插入图片描述

查看getone函数

在这里插入图片描述

发现这里调用了类里的query函数

在这里插入图片描述

发现这里使用mysql_query函数,进行的sql语句,中间没有任何过滤,那么就存在sql注入

$ad_id参数来自于get传参

在这里插入图片描述

查看blue_ad内有7个字段

在这里插入图片描述

payload:1 union select 1,2,3,4,5,6,user()
在这里插入图片描述

发现没有回显,查看源代码

在这里插入图片描述

原来回显藏在html注释里面了

在这里插入图片描述

示例二:

emlog V6.0.0源码下载:https://soft-10-2.xiaoguaniu.com/soft/202105/Emlog_V6.0.0_XiTongZhiJia.zip?t=1731583487&ip=112.193.34.227&sign=25a70a465fbab4f660c316a902907b96

依旧使用正则搜索法寻找定位脆弱点,为了节约时间,直接定位漏洞文件comment.php

在这里插入图片描述

在这里插入图片描述

这里有调用一个自定义函数,看函数名应该是通过IP删除评论的意思
在这里插入图片描述

这里将$sql变量传入了db的query方法在这里插入图片描述

发现这直到sql执行都没有过滤方法,那么存在sql注入

刚刚是通过$CACHE->updateCache(array(‘sta’,‘comment’));转到执行的,这个代码文件路径:/admin/comment.php

在这里插入图片描述

并且要使得$action= ‘delbyip’

在这里插入图片描述
在这里插入图片描述

插入调试代码 echo ‘qdy’;

构造发包,发现执行了调试代码,但是报错
在这里插入图片描述

寻找报错代码

在这里插入图片描述

缺少token,登录后台后复制token

在这里插入图片描述

在这里插入图片描述

发现还需要$ip参数,加入echo 调试
在这里插入图片描述

IP取值
在这里插入图片描述

构造payload

/admin/comment.php?action=delbyip&token=c0d72b51591583bca22cbc112e85b4ff&ip=127.0.0.1’+and+updatexml(1,concat(0x7e,user(),0x7e),1)–+

在这里插入图片描述

成功

mysql监听工具

https://codeload.github.com/cw1997/MySQL-Monitor/zip/refs/heads/master

存中…(img-oyGEHH9H-1731596090466)]

成功

mysql监听工具

https://codeload.github.com/cw1997/MySQL-Monitor/zip/refs/heads/master

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/15461.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Essential Cell Biology--Fifth Edition--Chapter one (5)

1.1.4 The eukaryotic cell [真核细胞] 真核细胞,一般来说,比细菌和古细菌更大,更复杂。有些是独立的单细胞生物,如变形虫和酵母(图1-14);另一些则生活在多细胞集合中。所有更复杂的多细胞生物…

线程-2-线程概念与控制

main 线程常见寄存器(CR3 EIP IR MMU TLB) CR3是当前进程页表物理内存地址(包不能虚拟地址,不然套娃了) CPU中有寄存器指向task_struct* current EIP:入口虚拟地址 IR:当前命令地址系统总线&a…

Vulkan 开发(十一):Vulkan 交换链

Vulkan 系列文章: 1. 开篇,Vulkan 概述 2. Vulkan 实例 3. Vulkan 物理设备 4. Vulkan 设备队列 5. Vulkan 逻辑设备 6. Vulkan 内存管理 7. Vulkan 缓存 8. Vulkan 图像 9. Vulkan 图像视图 10. Vulkan 窗口表面(Surface&#xff…

【HarmonyOS】鸿蒙系统在租房项目中的项目实战(一)

从今天开始,博主将开设一门新的专栏用来讲解市面上比较热门的技术 “鸿蒙开发”,对于刚接触这项技术的小伙伴在学习鸿蒙开发之前,有必要先了解一下鸿蒙,从你的角度来讲,你认为什么是鸿蒙呢?它出现的意义又是…

百度搜索AI探索版多线程批量生成TXT原创文章软件-可生成3种类型文章

百度搜索AI探索版是百度推出的一款基于大语言模型文心一言的综合搜索产品‌。以下是关于百度搜索AI探索版的详细介绍: ‌产品发布‌:百度搜索AI探索版在百度世界大会上进行了灰度测试,并面向用户开放体验‌。 ‌核心功能‌:与传…

Linux软件包管理与Vim编辑器使用指南

目录 一、Linux软件包管理器yum 1.什么是软件包? 2.什么是软件包管理器? 3.查看软件包 4.安装软件 ​编辑 5.卸载软件 Linux开发工具: 二、Linux编辑器---vim 1.vim的基本概念 (1) 正常/普通模式(Normal mode&#xff0…

Android Osmdroid + 天地图 (一)

Osmdroid 天地图 前言正文一、配置build.gradle二、配置AndroidManifest.xml三、获取天地图的API Key① 获取开发版SHA1② 获取发布版SHA1 四、请求权限五、显示地图六、源码 前言 Osmdroid是一款完全开源的地图基本操作SDK,我们可以通过这个SDK去加一些地图API&am…

2024国内AI工具十大推荐丨亲测好用‼️

🚀探索了市面上数百款AI工具后,我精心挑选了10款在不同场景下超级好用的神器,快来一起看看吧!🌟 1️⃣豆包 基于云雀模型开发,具备聊天机器人、写作助手、英语学习助手等功能,能够进行多轮对话…

Unity学习---IL2CPP打包时可能遇到的问题

写这篇主要是怕自己之后打包的时候出问题不知道怎么搞,所以记录一下。 问题一:类型裁剪 IL2CPP打包后会自动对Unity工程的dll进行裁剪,将代码中没有引用到的类型裁剪掉。特别是通过反射等方式调用一些类的时候,很容易出问题。 …

多模态大模型(2)--BLIP

大模型如火如荼,研究者们已经不再满足于基本文本的大语言模型(LLM, Large Language Model),AI领域的热点正逐步向多模态转移,具备多模态能力的多模态大型语言模型(MM(Multi-Modal)-L…

基于MATLAB身份证号码识别

课题介绍 本课题为基于连通域分割和模板匹配的二代居民身份证号码识别系统,带有一个GUI人机交互界面。可以识别数十张身份证图片。 首先从身份证图像上获取0~9和X共十一个号码字符的样本图像作为后续识别的字符库样本,其次将待测身份证图像…

Siggraph Asia 2024 | Adobe发布MagicClay:可通过文字引导去对3D模型中的特定部分进行雕刻

今天给大家介绍一篇来自Adobe研究人员在Siggraph Asia 2024上发表的最新工作MagicClay,它是一款结合网格和距离场(SDF)的混合式工具,可以通过文字引导去对3D模型中的特定部分进行雕刻。允许艺术家通过文字提示进行局部网格编辑,支持生成具纹理…

滑动窗口的使用

一、定义与基本原理 滑动窗口是一种流量控制技术,也用于管理和处理数据流。它通过定义一个固定大小或可根据特定条件动态调整的窗口,在数据流或数据序列上滑动,以便高效地处理其中的数据。这种技术能够限制同时处理的数据量,从而…

Python学习26天

集合 # 定义集合 num {1, 2, 3, 4, 5} print(f"num:{num}\nnum数据类型为:{type(num)}") # 求集合中元素个数 print(f"num中元素个数为:{len(num)}") # 增加集合中的元素 num.add(6) print(num) # {1,2,3,4,5,6} # 删除…

android开发

文章目录 android开发 类微信界面整体框架展示:主页Fragment_MainActivity2:1. 聊天界面2. 用户界面用户界面的跳转 3. 朋友圈界面4. 我的界面 android开发 类微信界面 整体效果展示: 整体框架展示: 4个主要的fragment页面&#…

【大数据学习 | flume】flume的概述与组件的介绍

1. flume概述 Flume是cloudera(CDH版本的hadoop) 开发的一个分布式、可靠、高可用的海量日志收集系统。它将各个服务器中的数据收集起来并送到指定的地方去,比如说送到HDFS、Hbase,简单来说flume就是收集日志的。 Flume两个版本区别: ​ 1&…

vmware安装Ubuntu桌面版系统

1安装环境 vmware版本:VMware Workstation 17 Ubuntu版本:ubuntu-24.04.1-desktop-amd64.iso 文档时间:2024年11月 每一个Ubuntu的版本安装显示可能不一样,但安装方法是类似的 2镜像下载 Ubuntu官网:[https://ubun…

STL--map、set的使用和模拟实现

1.set 1.1 set的概念 set 是一种基于 平衡二叉搜索树(通常是红黑树) 实现的容器,它提供了有序集合的功能。set 用于存储唯一的元素,并且元素是按照某种顺序排列的(通常是升序)。 set 确实是一个关联式容…

软件测试之什么是缺陷

软件测试之什么是缺陷 1. 缺陷定义2. 缺陷判定标准3. 缺陷产生原因3.1 缺陷产生的原因3.2 缺陷的生命周期 4. 缺陷核心内容5. 缺陷提交要素6. 缺陷类型 1. 缺陷定义 软件在使用过程中存在的任何问题都叫软件的缺陷, 简称Bug. 2. 缺陷判定标准 3. 缺陷产生原因 3.1 缺陷产生的…

二叉树的遍历(手动)

树的遍历分四种: 层序遍历 前序遍历 中序遍历 后序遍历 层序遍历: 很好理解,就是bfs嘛(二不二叉都行) 前序遍历: 又叫先跟遍历,遍历顺序是根->左->右(子树里也是&#…