IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> VishwaCTF 2022 部分wp -> 正文阅读

[PHP知识库]VishwaCTF 2022 部分wp

?

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

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

继续加油积累经验吧

My Useless Website

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

Stock Bot

注意源码,有hint,

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

Hey Buddy!

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

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

?

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

所以先尝试一下

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

rce时发现空格禁了,cat<flag.txt即可 ,这里<绕过空格过滤?

Request Me FLAG

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

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

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

真是蠢哭

?

Keep Your Secrets

是一个jwt题目

?获得的jwt 用hashcat 爆破出密钥

修改 role 为 admin?

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

Strong Encryption

<?php

    // Decrypt -> 576e78697e65445c4a7c8033766770357c3960377460357360703a6f6982452f12f4712f4c769a75b33cb995fa169056168939a8b0b28eafe0d724f18dc4a7

    $flag="";

    function encrypt($str,$enKey){

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

        for($i=0;$i<strlen($enKey);$i++){
            $Key.=ord($enKey[$i])+$rKey;  //ord()将字符转为10进制
            $tmpKey.=chr(ord($enKey[$i])+$rKey); //chr()10进制转为字符
        }    

        $rKeyHex=dechex($rKey); //10进制转为16进制

        $enKeyHash = hash('sha256',$tmpKey);

        for ($i=0,$j=0; $i < strlen($str); $i++,$j++){
            if($j==strlen($Key)){
                $j=0;
            }
            $strHex .= dechex(ord($str[$i])+$Key[$j]);
        }
        $encTxt = $strHex.$rKeyHex.$enKeyHash;
        return $encTxt;
    }

    $encTxt = encrypt($flag, "VishwaCTF");

    echo $encTxt;

?>

需要仔细阅读,理清逻辑, 事例演示的是$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<length:
    a2 = a[i:i + 2] #切片获取每个字符的16进制(两位数)
    i += 2

    b=int(a2,16)  #16进制换10进制

    c=b-int(Key[j]) #这就是$flag每个字符的10进制
    j += 1  #对应的$Key下标往后移
    print('%d'%c+' ',end='')

拿到十进制去转ASCII文字

So Forgetful!?

找到密码base64解码

The Last Jedi

给了个图片,binwalk出两张图

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

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2022-03-30 18:02:46  更:2022-03-30 18:04:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 20:53:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码