VishwaCTF 2022 部分wp

学长推荐的一个相对平易近人的ctf,对我这种菜鸡友好一点,

就想着web要多写几道出来毕竟简单的比赛不常见,

继续加油积累经验吧

My Useless Website

一个最简单的sql 万能密码注入

VishwaCTF 2022 部分wp_第1张图片

Stock Bot

注意源码,有hint,

主要就是注意到这个提示了,根据路径直接查Flag

VishwaCTF 2022 部分wp_第2张图片

Hey Buddy!

这题考点是SSTI ,大佬们也许一眼就看出来了,所谓经验重要性

我这里也就是偶然看到右下角源码里的特征好像是SSTI

然后看到这里get传入name,就很可能

所以先尝试一下

VishwaCTF 2022 部分wp_第3张图片

那么证明猜想没错,这里只需寻找payload往里怼,

VishwaCTF 2022 部分wp_第4张图片

rce时发现空格禁了,cat

VishwaCTF 2022 部分wp_第5张图片

Request Me FLAG

这道题看着人畜无害的一直搞不出来,看题目一直以为把请求方式变成FLAG

在burp里面如何尝试都不行,以为思路错了。

竟然需要将目录404.php删掉,不删除会一直访问404.php

真是蠢哭

VishwaCTF 2022 部分wp_第6张图片

Keep Your Secrets

是一个jwt题目

VishwaCTF 2022 部分wp_第7张图片

 获得的jwt 用hashcat 爆破出密钥

VishwaCTF 2022 部分wp_第8张图片

修改 role 为 admin 

VishwaCTF 2022 部分wp_第9张图片

post+路径传入, 作为header插进来传入,做的时候卡在这里很久,原因比较玄

VishwaCTF 2022 部分wp_第10张图片

Strong Encryption

 576e78697e65445c4a7c8033766770357c3960377460357360703a6f6982452f12f4712f4c769a75b33cb995fa169056168939a8b0b28eafe0d724f18dc4a7

    $flag="";

    function encrypt($str,$enKey){

        $strHex='';
        $Key='';
        $rKey=69;
        $tmpKey='';

        for($i=0;$i

需要仔细阅读,理清逻辑, 事例演示的是$flag为空的,我们要根据给出的 Decrypt找到$flag值

1,第一个for循环没有用到$str,根本与$flag无关,

所以让$flag为空跑出$rKeyHex.$enKeyHash发现与Decrypt后部分重合,

2,那我们只需要考虑前面部分的$strHex

那自然第二个for循环就是关键了,读懂也就是说$flag每个字符的10进制值+$Key对应位置的值,再去16进制一下,就得到了576e78697e65445c4a7c8033766770357c3960377460357360703a6f6982

这里面还有个条件,翻译过来就是$Key长度用完了再从头开始与$flag匹配

我直接在$Key后面再复制一份就行了,长度就够了也满足条件

3,根据已知的Decrypt,和$Key ,反推出$flag

python脚本实现比较容易,

Python学的不熟,自己瞎写了个辣鸡脚本(还是反复修改后的),慢慢提升吧

a='576e78697e65445c4a7c8033766770357c3960377460357360703a6f6982'
Key = '155174184173188166136153139155174184173188166136153139'
length=len(a)
i=0
j=0

while i

拿到十进制去转ASCII文字

So Forgetful! 

找到密码base64解码

VishwaCTF 2022 部分wp_第11张图片

The Last Jedi

给了个图片,binwalk出两张图

分别记事本打开,就会发现flag

Todo list(php反序列化)

没有写出来,理解的有点问题

vishwactf_php反序列化_rurald的博客-CSDN博客

你可能感兴趣的:(比赛wp,php,网络协议,ctf,安全)