php mongodb 注入
来源:互联网 发布:细说php第三版pdf下载 编辑:程序博客网 时间:2024/06/05 17:53
转载请注明来源:http://blog.csdn.net/kaosini/article/details/8732566
这两天学习sqlmap这个工具的时候,突然想到一个问题:nosql是否也存在注入漏洞。于是上网搜索了一下午,得出来了个结论:
- php+mongodb的话还是存在有注入漏洞的
- asp.net+mongodb的话,暂时还没发现
下面就介绍下php+mongodb注入的方法和原理
其中一篇帖子说:login.php?username=admin&passwd[$ne]=1就有可能注入,刚看的时候,我感觉挺纳闷的,这个怎么就存在注入漏洞了呢,终于从这篇帖子http://hi.baidu.com/hi_heige/item/ce93ce926dede4f428164747中发现了原因。因为PHP是可以直接提交array的,也就是说提交的是含有“$ne”索引的数组,我做了个demo:
$passwd=$_GET["passwd"];var_dump($passwd);
测试结果为:
array(1) { ["$ne"]=> string(1) "1" }
这样的话
$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类型下:
$collection->find(array( "username" => (string)$_GET['username'], "passwd" => (string)$_GET['passwd']));
这个与执行下面的mysql语句是一样的道理了,都注入了
mysql_query("SELECT * FROM collection WHERE username="admin", AND passwd!=1
我做了个demo测试了下,果然好使。
http://www.idontplaydarts.com/2010/07/mongodb-is-vulnerable-to-sql-injection-in-php-at-least/ 直接用$ne 这个类似于常见的万用密码
http://www.idontplaydarts.com/2011/02/mongodb-null-byte-injection-attacks/ null字节注射
- php mongodb 注入
- php mongodb的防注入
- MongoDB注入:如何攻击MongoDB?
- nosql注入-mongodb
- php注入!
- PHP注入
- php注入
- php注入
- PHP注入
- PHP--MongoDB
- php+mongodb
- MongoDB PHP
- PHP注入与防注入
- 一个简单的MongoDB注入
- MongoDB服务器端的JavaScript注入
- php 防注入
- php注入实例
- php注入2
- 花了几天时间破解弄出来的电子杂志
- phpcms输入后台内容录入框中支持php代码
- firefox的html校验与dreamweave
- windows x64 httpd 使用ie打开,一直在等待:无响应,不超时
- 半自动批量删除百度hi文章
- php mongodb 注入
- 在Mac OS X中安装MySQL+Tomcat+MySql管理软件sequelpro
- Android Intent详解一
- 如何修改ecshop模板
- 编译OpenCV for arm-linux
- CodeDOM浅析-上
- 完整的驱动感染.code.编译通过
- c语言中指针,二维数组,一维数组,指针数组,二级指针,应用
- SqlServer2005高效分页sql查询语句汇总