PHPMyWind设计缺陷绕过过滤SQL注入

我会在标题里面告诉你们其实是全局变量覆盖吗?需要register_globals=on。

/include/common.inc.php 注册变量的代码:foreach(array('_GET','_POST') as $_request)

{

foreach($$_request as $_k => $_v)

{

if(strlen($_k)>0 &&

preg_match('#^(GLOBALS|_GET|_POST|_SESSION|_COOKIE)#',$_k))

{

exit('不允许请求的变量名!');

}

${$_k} = _RunMagicQuotes($_v);

}

}

看到这里,懂的人就懂了。代码中匹配了GLOBALS来禁止提交全局变量GLOBALS防止变量覆盖,但是只对$_GET和$_POST进行了检查,因此只要在$_COOKIE中提交即可绕过RunMagicQuotes。

注入点可能有很多,举一个例子吧:phpmywind/product.php<?php

if(!empty($keyword))

{

$keyword = htmlspecialchars($keyword);

$sql = "SELECT * FROM `#@__infoimg` WHERE (classid=$cid OR parentstr LIKE '%,$cid,%') AND title LIKE '%$keyword%' AND delstate='' AND checkinfo=true ORDER BY orderid DESC";//这里拼sql

}

else

{

$sql = "SELECT * FROM `#@__infoimg` WHERE (classid=$cid OR parentstr LIKE '%,$cid,%') AND delstate='' AND checkinfo=true ORDER BY orderid DESC";

}

$dopage->GetPage($sql,9);

while($row = $dosql->GetArray())

{

if($row['picurl'] != '') $picurl = $row['picurl'];

else $picurl = 'templates/default/images/nofoundpic.gif';

if($row['linkurl']=='' and $cfg_isreurl!='Y') $gourl = 'productshow.php?cid='.$row['classid'].'&id='.$row['id'];

else if($cfg_isreurl=='Y') $gourl = 'productshow-'.$row['classid'].'-'.$row['id'].'-1.html';

else $gourl = $row['linkurl'];

?>

这里我们添加一个cookie名字叫GLOBALS[keyword]

打印一下$keyword:

绕过了过滤,引入了'

payload:

解决方案:

全局过滤函数中检查cookie

php my wind,PHP My Wind绕过过滤SQL注入(限定条件)相关推荐

  1. [网络安全自学篇] 八十.WHUCTF之WEB类解题思路WP(代码审计、文件包含、过滤绕过、SQL注入)

    这是作者网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您喜欢,一起进步.前文分享了Windows PE病毒, 包括PE病毒原理.分类及感染方式详解,并通过案 ...

  2. mysql 绕过addslashes,SQL注入:Bypass addslashes()

    上次研究了GBK双字节注入,这次就得想办法用于实战,我们知道在很多时候,代码会对我们的输入进行过滤或者转义,过滤的的话我们想办法绕过就行,而转义,就得另想办法了 addslashes() 这是PHP中 ...

  3. mysql延迟注入br_(原创)安全狗SQL注入绕过思路[sql注入waf绕过][sql注入bypass]

    2017/09/03_Bypass_safedog_Sql注入 prat 1 本文大致内容 + 思路以及想法 - 四重注释绕过safedog + 实战绕过 - 绕过and 1=1 - 绕过union+ ...

  4. SQL注入原理及绕过技术

    目录 sql注入产生的原因 万能密码介绍 sql注入验证 mysql 5.x数据库介绍 sql数据库增删改查 Mysql常用的聚合函数 mysql注释 SQL注入的分类 报错注入 盲注注入 user- ...

  5. 提示no php怎么绕过,PHP-Nuke绕过SQL注入保护及多个SQL注入漏洞

    PHP-Nuke是一个广为流行的网站创建和管理工具,它可以使用很多数据库软件作为后端,比如MySQL.PostgreSQL.mSQL.Interbase.Sybase等. PHP-Nuke实现上存在多 ...

  6. 深入理解SQL注入绕过WAF和过滤机制

    知己知彼,百战不殆 --孙子兵法 [目录] 0x0 前言 0x1 WAF的常见特征 0x2 绕过WAF的方法 0x3 SQLi Filter的实现及Evasion 0x4 延伸及测试向量示例 0x5 ...

  7. mysql注入绕过单引号_SQL注入-绕过过滤规则

    过滤规则产生的原因 前两篇举例了SQL注入Get请求/SQL注入Post请求的案例,都是因为程序要接收用户输入的变量或者URL传递的参数,并且参数或变量会被组成 SQL语句的一部分被执行.这些数据我们 ...

  8. 深入理解SQL注入绕过WAF与过滤机制

    知己知彼,百战不殆 --孙子兵法 [目录] 0x0 前言 0x1 WAF的常见特征 0x2 绕过WAF的方法 0x3 SQLi Filter的实现及Evasion 0x4 延伸及测试向量示例 0x5 ...

  9. php3绕过,PHPB2B注入#3(绕过过滤)

    PHPB2B某处注入 绕过过滤. 官方最新版本. https://github.com/ulinke/phpb2b/archive/master.zip 详细说明: 1.注册企业会员. 2.注册企业会 ...

最新文章

  1. Code Push 热更新使用详细说明和教程
  2. python递归方式和普通方式实现输出和查询斐波那契数列
  3. Windows下载、安装、卸载Redis
  4. css - clearfix-清除浮动
  5. 法的详细步骤_空气能热水工程安装步骤讲解
  6. 【实践】预训练模型在华为信息流推荐中的应用与探索.pdf(附下载链接)
  7. [转]MySQL实现over partition by(分组后对组内数据排序)
  8. 关于C#调用protobuf 序列化和反序列化
  9. Thinkphp企业级知宇自动发卡系统源码bug漏洞分析
  10. nrf52840蓝牙协议栈主机一拖八
  11. vue.js 菜鸟学习
  12. xp计算机图标,xp我的计算机图标不见了
  13. 华为ensp模拟校园网/企业网实例(附完整设备配置命令和ensp项目)
  14. ECharts学习--调色盘
  15. 免费申请office365 A1 和 a1plus 带OneDrive 5T 网盘 office365学生版(转载)
  16. 梦幻西游python验证成语_python正则表达式抓取成语网站
  17. Oracle 19c VLDB and Partitioning Guide 第5章:管理和维护基于时间的信息 读书笔记
  18. 两代 Windows 性能大比拼!Win8 完胜 Win7
  19. OTT发展背后的融合通讯
  20. java的行业认证_Sun认证Java程序员考试介绍

热门文章

  1. 模拟角频率与数字角频率的关系
  2. Python 日期格式,%W 每年的第几周,把星期一做为第一天
  3. 黑龙6综合音源 – Steinberg HALion 6.4.0 WiN
  4. 喜马拉雅第三方客户端开发(界面)。
  5. Android Preference 的布局思考
  6. 【电力电子】【2017.05】一种新型三相五电平逆变器拓扑的设计与仿真
  7. java getvalue_Java Cookie.getValue方法代码示例
  8. APPserver快速搭建网站步骤(手把手教你搭建)
  9. 计算机防雷属多少级别,广州塔遭遇雷击也不怕 防雷级别堪比军火库(图)
  10. springboot审核功能怎么做_开发的微信小程序商城怎么利用分销功能做营销