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

一、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参数的值
程序运行后,我们查询数据库看看,如下图:

如果再重新查询这个表的字段出来,不做过滤带入另一个SQL语句,将会造成2次注入.
三、 总结
尽量不要使用这函数,如果要使用这个函数,建议使用规范的sql语句,条件加入单引号,这样16进制0x31206f722031就会在数据库里显示出来。而不会出现1 or 1。

时间: 2024-12-09 19:00:20

php is_numberic函数造成的SQL注入漏洞_javascript技巧的相关文章

PHP 小心urldecode引发的SQL注入漏洞_php技巧

Ihipop 学校的 Discuz X1.5 论坛被黑,在那里吵了一个下午.Google 一下"Discuz! X1-1.5 notify_credit.php Blind SQL injection exploit",你就知道. Discuz 是国内很流行的论坛系统,被黑的网站应该会很多吧.不过我对入侵别人的网站不感兴趣,同时也鄙视那些代码都不会写只会使用别人放出的工具攻击的所谓的"黑客". 粗略看了一下代码,这个 SQL 注入漏洞是 urldecode 函数造成

php防止sql注入漏洞代码和分析

 这篇文章主要介绍了php防止sql注入漏洞代码和分析,最近提供了几种常见攻击的正则表达式,大家参考使用吧 注入漏洞代码和分析 代码如下: <?php  function customError($errno, $errstr, $errfile, $errline)  {      echo "<b>Error number:</b> [$errno],error on line $errline in $errfile<br />";   

Oracle Advanced Support系统SQL注入漏洞挖掘经验分享

Oracle Advanced Support系统SQL注入漏洞分析 一年多前我在客户的一个外部环境中执行渗透测试,任何外部环境渗透测试的重要步骤之一就是挖掘出可访问的WEB服务.nmap和EveWitness的结合会令这步骤变得更快,因为我们可以进行端口扫描 并且把这些结果以屏幕截图的形式导入到 EyeWitness中.当梳理完 EyeWitness提供的屏幕截图页面后,我发现了一个Oracle 高级支持服务. 虽然我之前从没听过Oracle Advanced Support,但是当我很快的g

绿盟科技网络安全威胁周报2017.20 关注Joomla!3.7.0 SQL注入漏洞CVE-2017-8917

绿盟科技发布了本周安全通告,周报编号NSFOCUS-17-20,绿盟科技漏洞库本周新增36条,其中高危3条.本次周报建议大家关注 Joomla!3.7.0 SQL注入漏洞 .目前厂商已经发布了升级补丁以修复这个安全问题,请到用户及时到厂商主页下载升级补丁,修复此漏洞. 焦点漏洞 Joomla!3.7.0 SQL注入漏洞 NSFOCUS ID 36720 CVE ID CVE-2017-8917 受影响版本 Joomla! CMS versions 3.7.0 漏洞点评 Joomla是一套世界流行

最新dotCMS SQL注入漏洞 攻击者可获得敏感数据 绿盟科技发布安全威胁通告

dotCMS 3.6.2以下版本可能存在SQL注入漏洞 ,绿盟科技发布<dotCMS SQL注入漏洞安全威胁通告>,通告全文如下 2017年2月15日,seclists.org网站发布了关于dotCMS存在SQL注入漏洞的消息.文章称,dotCMS 3.6.1及其之前的部分版本,在"/categoriesServlet"的q和inode参数上存在SQL注入,未经身份认证的攻击者可以利用该漏洞获取敏感数据. 当dotCMS的版本<=3.3.2时,与之配套使用的MySQL

对于ThinkPHP框架早期版本的一个SQL注入漏洞详细分析_php实例

ThinkPHP官网上曾有一段公告指出,在ThinkPHP 3.1.3及之前的版本存在一个SQL注入漏洞,漏洞存在于ThinkPHP/Lib/Core/Model.class.php 文件 根据官方文档对"防止SQL注入"的方法解释(参考http://doc.thinkphp.cn/manual/sql_injection.html) 使用查询条件预处理可以防止SQL注入,没错,当使用如下代码时可以起到效果: $Model->where("id=%d and usern

Wordpress4.2.3提权与SQL注入漏洞分析

这是这几天一直关注的漏洞了,wordpress上个礼拜发布的4.2.4版本,其中提到修补了可能存在的SQL漏洞和多个XSS. Check point也很快发出了分析,我也来分析与复现一下最新的这个漏洞.   0x01 GP混用造成的越权漏洞 首先,说明一下背景.wordpress中用户权限分为订阅者.投稿者.作者.编辑和管理员. 权限最低的是订阅者,订阅者只有订阅文章的权限,wordpress开启注册后默认注册的用户就是订阅者.国内很多知名网站,如Freebuf,用户注册后身份即为“订阅者”.

利用SQL注入漏洞拖库的方法_Mysql

想在本地测试的话,可以在此免积分下载:利用SQL注入漏洞拖库 同上一篇文章一样,我们需要创建数据表,并在表中出入几条数据以备测试之用. 在数据库中建立一张表: 复制代码 代码如下: CREATE TABLE `article` ( `articleid` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(100) CHARACTER SET utf8 NOT NULL DEFAULT '', `content` text CHARACTER SET

有效防止SQL注入漏洞详细说明

1.如果动态构造的sql语句中包含参数,请必须对参数做如下操作 a.将'(单引号)替换成''(两个单引号) b.将--(注释符)替换掉 c.将参数加入语句时,一定要在前后各加上引号,如:'select * from table where id='''+@id+''''这样的加法 2.如果动态构造的sql语句中包含表参数,请勿必给表加上[](中括号),如:'select * from ['+@tab+']'这样的做法 3..避免动态sql语句:尤其是从ie客户端获取查询.修改.删除条件的字段最容