php is_numberic函数造成的SQL注入漏洞

时间:2023-07-18 00:32:25 

一、is_numberic函数简介
国内一部分CMS程序里面有用到过is_numberic函数,我们先看看这个函数的结构
bool is_numeric (mixed $var)
如果 var 是数字和数字字符串则返回 TRUE,否则返回 FALSE。
二、函数是否安全
接下来我们来看个例子,说明这个函数是否安全。

$s = is_numeric($_GET['s'])?$_GET['s']:0;
$sql="insert into test(type)values($s);";  //是 values($s) 不是values('$s')
mysql_query($sql);


上面这个片段程序是判断参数s是否为数字,是则返回数字,不是则返回0,然后带入数据库查询。(这样就构造不了sql语句)
我们把‘1 or 1' 转换为16进制 0x31206f722031 为s参数的值
程序运行后,我们查询数据库看看,如下图:
php is_numberic函数造成的SQL注入漏洞
如果再重新查询这个表的字段出来,不做过滤带入另一个SQL语句,将会造成2次注入.
三、 总结
尽量不要使用这函数,如果要使用这个函数,建议使用规范的sql语句,条件加入单引号,这样16进制0x31206f722031就会在数据库里显示出来。而不会出现1 or 1。

标签:php,is,numberic函数,sql注入漏洞
0
投稿

猜你喜欢

  • SQL2000个人版 应用程序正常初始化失败0乘以C0000135失败

    2024-01-27 05:09:39
  • 简评:JavaScript将成Silverlight的最大对手?

    2008-10-17 10:29:00
  • 详细介绍ASP内置对象Response

    2008-06-23 12:42:00
  • Python修改Excel数据的实例代码

    2021-05-24 12:40:29
  • Python之用户输入的实例

    2022-09-06 13:22:18
  • python缺失值填充方法示例代码

    2023-06-28 12:23:24
  • CSS技巧之圆角背景与三角形

    2010-10-19 12:40:00
  • Python 概率生成问题案例详解

    2023-11-26 19:04:58
  • Python数据分析之使用scikit-learn构建模型

    2023-11-10 23:19:10
  • Python中字符串对齐方法介绍

    2022-07-18 06:54:50
  • python写入xml文件的方法

    2023-01-01 15:08:54
  • 微软建议的ASP性能优化28条守则(2)

    2008-02-22 17:02:00
  • MySQL数据库中的各种乱码及其解决方法

    2008-12-17 16:29:00
  • mysql中#{}和${}的区别详解

    2024-01-12 21:37:17
  • CGArt®2008 贺岁刊电子杂志玉鼠闹春

    2008-02-15 08:59:00
  • python之tensorflow手把手实例讲解猫狗识别实现

    2021-12-26 14:46:11
  • Go语言实现互斥锁、随机数、time、List

    2024-04-25 15:11:24
  • 好的产品设计并非始于图片,而是对人的理解

    2009-08-02 20:25:00
  • 很全面的Mysql数据库、数据库表、数据基础操作笔记(含代码)

    2024-01-15 11:19:42
  • 浅析Python 条件控制语句

    2023-08-31 02:59:46
  • asp之家 网络编程 m.aspxhome.com