学长推荐的一个相对平易近人的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
Todo list(php反序列化)
没有写出来,理解的有点问题
vishwactf_php反序列化_rurald的博客-CSDN博客