博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php mongo 防注入,php mongodb 注入_PHP教程
阅读量:6453 次
发布时间:2019-06-23

本文共 1439 字,大约阅读时间需要 4 分钟。

下面就介绍下php+mongodb注入的方法和原理

其中一篇帖子说:login.php?username=admin&passwd[$ne]=1就有可能注入,刚看的时候,我感觉挺纳闷的,这个怎么就存在注入漏洞了呢,终于从这篇帖子http://hi.baidu.com/hi_heige/item/ce93ce926dede4f428164747中发现了原因。因为PHP是可以直接提交array的,也就是说提交的是含有“$ne”索引的数组,我做了个demo:

[php]

$passwd=$_GET["passwd"];

var_dump($passwd);

$passwd=$_GET["passwd"];

var_dump($passwd);

测试结果为:

array(1) { ["$ne"]=> string(1) "1" }

这样的话

[php]

$collection->find(array(

"username" => "admin",

"passwd" => array("$ne" => 1)

));

$collection->find(array(

"username" => "admin",

"passwd" => array("$ne" => 1)

));

就变为了:

[php]

$collection->find(array( "username" => "admin", "passwd" => array("$ne" => 1) )); $collection->find(array(

"username" => "admin",

"passwd" => array("$ne" => 1)

));

如果把链接改成这种(username=[$ne]=1&passwd[$ne]=1)的话,那么会把所有的用户信息都获取过来

解决这个bug的方法为在获取参数后都把参数强制转换成string类型下:

[php]

$collection->find(array(

"username" => (string)$_GET['username'],

"passwd" => (string)$_GET['passwd']

));

$collection->find(array(

"username" => (string)$_GET['username'],

"passwd" => (string)$_GET['passwd']

));这个与执行下面的mysql语句是一样的道理了,都注入了

[php]

mysql_query("SELECT * FROM collection

WHERE username="admin",

AND passwd!=1

mysql_query("SELECT * FROM collection

WHERE username="admin",

AND passwd!=1

我做了个demo测试了下,果然好使。

http://www.bkjia.com/PHPjc/477615.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/477615.htmlTechArticle下面就介绍下php+mongodb注入的方法和原理 其中一篇帖子说:login.php?username=adminpasswd[$ne]=1就有可能注入,刚看的时候,我感觉挺纳闷的,这个...

转载地址:http://ajyzo.baihongyu.com/

你可能感兴趣的文章
hdu 3501 Calculation 2 (欧拉函数)
查看>>
可以免费下载视频素材和模板网站汇总
查看>>
SPOJ104 Highways,跨越数
查看>>
使用rman备份异机恢复数据库
查看>>
Win7-64bit系统下安装mysql的ODBC驱动
查看>>
node中非常重要的process对象,Child Process模块
查看>>
Webserver管理系列:3、Windows Update
查看>>
Linux内核源码详解——命令篇之iostat[zz]
查看>>
Sqlserver2000联系Oracle11G数据库进行实时数据的同步
查看>>
明年计划
查看>>
ORACLE功能GREATEST功能说明具体实例
查看>>
DataGridView 输入数据验证格式(实例)
查看>>
HDOJ 2151
查看>>
Foundation框架 - 快速创建跨平台的网站页面原型
查看>>
open-falcon
查看>>
三菱plc输出指示灯不亮怎么办(转载)
查看>>
doc2vec使用说明(一)gensim工具包TaggedLineDocument
查看>>
intellij maven配置与使用
查看>>
SpringMVC文件下载与JSON格式
查看>>
Q:图像太大,在opencv上显示不完全
查看>>