php中两个函数可能导致的sql注入
sprintf
https://www.php.net/manual/zh/function.sprintf.php
漏洞demo:
<?php
$name = addslashes($_GET['a']);
$sql = "select * from '{$name}' where %d";
echo $sql . '<br>';
echo sprintf($sql,1);
意思也就是说当String $format 内容可控的时候,我们可以利用执行sprintf函数的时候来干掉\,造成单引号逃逸。
url:?a=123456%1$%27

json_decode
<?php
echo json_encode(['a'=>"123"]) . '<br>'; //用于数组json编码后的模板 $name = addslashes($_GET['a']);
echo $name . '<br>';
$post_data = json_decode(str_replace('\\','',$name),1); var_dump($post_data);
利用json_decode函数在将字符串解码成数组的时候,会去掉其中转义字符。
以上两个函数相对而言较为生僻,防范的不是那么严谨,但是都是存在实例的。
实例参考链接:
https://forum.90sec.com/t/topic/366
php中两个函数可能导致的sql注入的更多相关文章
- mybatis中#{}与${}的差别(如何防止sql注入)
默认情况下,使用#{}语法,MyBatis会产生PreparedStatement语句中,并且安全的设置PreparedStatement参数,这个过程中MyBatis会进行必要的安全检查和转义. # ...
- mybatis中的#和$的区别 以及 防止sql注入
声明:这是转载的. mybatis中的#和$的区别 1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #user_id#,如果传入的值是111,那么解析成sq ...
- php is_numeric函数可绕过产生SQL注入
老老实实mysql_real_escape_string()防作死......is_numeric的SQL利用条件虽然有点苛刻,但还是少用的好= = 某CTF中亦有实测案例,请戳 http://dro ...
- Servlet课程0425(七) 到数据库中去验证用户,同时防止SQL注入漏洞
Login.java //登录界面 package com.tsinghua; import javax.servlet.http.*; import java.io.*; public class ...
- PHP中使用PDO的预处理功能避免SQL注入
不使用预处理功能 <?php $id = $_GET['id']; $dsn = 'mysql:host=localhost;port=3306;dbname=database'; try { ...
- ylb:SQL Server中的时间函数
ylbtech-SQL Server:SQL Server-SQL Server中的时间函数 SQL Server中的时间函数. 1,SQL Server中的时间函数 返回顶部 1. 当前系统日期 ...
- 代码审计中的SQL注入
0x00 背景 SQL注入是一种常见Web漏洞,所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.本文以代码审计的形式研 ...
- 一次SQL注入导致的"越权"
原文来自SecIN社区-作者:tkswifty 相关背景 在实际的业务开发中,SQL交互往往是业务系统中不可或缺的一项.在Java中提供了类似Mybatis.Hibernate.SpringDat ...
- python操作MySQL,SQL注入的问题,SQL语句补充,视图触发器存储过程,事务,流程控制,函数
python操作MySQL 使用过程: 引用API模块 获取与数据库的连接 执行sql语句与存储过程 关闭数据库连接 由于能操作MySQL的模块是第三方模块,我们需要pip安装. pip3 insta ...
随机推荐
- 嵌入式Linux-LCD显示多行文字
显示文字这里我用了freetype库. 以左上角显示两行文字: #include <sys/types.h> #include <sys/stat.h> #include &l ...
- java ListNode 链表
链表是一种数据结构:由数据和指针构成,链表的指针指向下一个节点. java ListNode 链表 就是用Java自定义实现的链表结构. 基本结构: class ListNode { //类名 :Ja ...
- 【Linux】使用笔记
前言 搜狗输入法,作为我体验最好的一个输入法,一直陪我从小学走到了现在,优麒麟线上发布会时,搜狗团队代表用"聪明"来形同它,事实也确实如此,它能十分人性地记录使用者常用的热词,并且 ...
- sql操作数据库(3)-->外键约束、数据库表之间的关系、三大范式、多表查询、事务
外键约束 在新表中添加外键约束语法: constraint 外键约束名称 foreign key(外键的字段名称) references 主表表名(主键字段名) 在已有表中添加外键约束:alter t ...
- [ABP教程]第五章 授权
原文档 地址: Web Application Development Tutorial - Part 5: Authorization 关于此教程 在这个教程系列中,您将构建一个基于ABP的Web应 ...
- 打算写一些Netty的文章了,先聊聊为什么要学习Netty
微信搜索[阿丸笔记],关注Java/MySQL/中间件各系列原创实战笔记,干货满满. 2021年了,终于开始系统性总结Netty相关的东西了. 这会是Netty系列的第一篇,我想先聊聊 "为 ...
- Go GRPC 入门(二)
前言 最近较忙,其实准备一篇搞定的 中途有事,只能隔了一天再写 正文 pb.go 需要注意的是,在本个 demo 中,客户端与服务端都是 Golang,所以在客户端与服务端都公用一个 pb.go 模板 ...
- ansible 安装和使用
ansible 安装和使用 ## 安装epel 源: rpm -ivh https://dl.fedoraproject.org/pub/e ...
- MySQL常用的一些(就几个)聚合函数
聚合函数 (常用) 函数名称 描述 CONUT() 记数 SUM() 求和 AVG() 平均值 MAX() 最大值 MIN() 最小值 -- ================= 聚合函数 ====== ...
- WeihanLi.Npoi 1.14.0 Release Notes
WeihanLi.Npoi 1.14.0 Release Notes Intro 周末更新了一下项目,开始使用可空引用类型,并且移除了 net45 的支持,仅支持 netstandard2.0 Cha ...