您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

php mongodb 注入_PHP教程

2024/12/28 20:06:14发布18次查看
下面就介绍下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就有可能注入,刚看的时候,我感觉挺纳闷的,这个...
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product