[2021江西省赛高校组]wp
Posted huamanggg
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[2021江西省赛高校组]wp相关的知识,希望对你有一定的参考价值。
easyphp
前端代码泄露
foreach ($_POST as $item => $value){
$$item=$$value;
$secret = $$item;
}
foreach ($_GET as $key => $value){
if ($key=='flag'){
$str=$value;
$$str=$secret;
}
}
if (isset($hehe)){
echo "<center>".$hehe."</center>";
}
//flag+flaag=DASCTF{XXXXXXX}
简单的变量覆盖
要搞出flag和flaag,直接post hehe=xxx就可以了
由这个语句$$item=$$value;
会让变量覆盖成这样:$hehe=$flag
post
hehe=flag
hehe=flaag
funny_game
简单的前端游戏而已
直接去翻js文件,找到判断条件
这个变量手解肯定是没必要而且很难的,直接丢控制台运行就可以了
SellSystem
js文件里面翻到
aes加密,密钥泄露了:1234567890123456
注入点在api.php的data
先扒下这个js文件,上到本地做测试
首先看这里是有waf的
其次这里考察的是mysql空字符及弱类型
其实就是这样,’’ 空和0做了比较,空做四则运算的时候被当做0,从而变成where 1,永真了
然后第二个点在这个注释符,#和–+都过滤了,由于这里还是要走一遍js,所以这里可以用/u0000来做截断
然后limit1,1
逗号被过滤了,可以用offset
构造payload
LWtr0YEO0u8CXrwoX6IkthtdhasEBIeHsBZMzuYEynWVlRXhbbinBSufrVOXvbDt
extractall
每一个压缩文件的文件名就是里面压缩包的密码,可以直接用python脚本来操作
import zipfile
name = '1RGe0V.zip'
for i in range(10000000):
f = zipfile.ZipFile(name , 'r')
f.extractall(pwd=name[:-4].encode())
name = f.filelist[0].filename[:10]
print(name)
f.close()
解压到最后得到flag.txt和一个图片
flag.txt是没用的,图片看起来就是下面被截了一段,010拉长出来就行
百度识图看看,就是斐波那契
然后看了一下这些压缩文件很像base64,全部按顺序读取一下,脚本用上面的脚本改改就行
[REFTQ1RGe0V4dHJhYeht8on3RhbGx8smjtqzmckitfSXNfU9rskp5a93su6al0o68p0l2vq29fRnVfco9e27ztjkabvn8taa27s40dxzk1lyq6ik4gec9blufQ==]
看着有头有尾的
就是中间的乱七八糟的,试了很多加密算法,后来发现是斐波那契提取,还是想复杂了
注意是每个文件每个文件的提取,不是一个一个字母的提取
1 2 3 5 8 13 21 刚好到21
REFTQ 1RGe0V 4dHJhY eht8on 3RhbGx 8smjtq zmckit fSXNfU 9rskp5 a93su6 al0o68 p0l2vq 29fRnV fco9e2 7ztjka bvn8ta a27s40 dxzk1l yq6ik4 gec9bl ufQ==
提取出是这样
REFTQ1RGe0V4dHJhY3RhbGxfSXNfU29fRnVufQ==
解码成
easy_usb
键盘流量提取出是这些
i<SPACE>heard<SPACE>you<SPACE>had<SPACE>the<SPACE>flag<RET>00<RET>how<SPACE>can<SPACE>i<SPACE>get<SPACE>the<SPACE>flag<RET>000000000000<RET>i<SPACE>know<SPACE>so<SPACE>what<SPACE>is<SPACE>the<SPACE>flag<RET>000000000000000then<SPACE>md5<SPACE>the<SPACE>capital<SPACE>letters<RET>0000000000000000<RET><DEL><DEL><RET>
美化一下
i heard you had the flag
00
how can i get the flag
000000000000
i know so
what is the flag
000000000000000then md5 the capital letters 0000000000000000
<DEL><DEL>
这里出现了很多0,不知道什么意思,先去流量包看看
先到linux里面执行一些这个,把捕获的数据提取并删去空行
tshark -r tmp.pcap -T fields -e usb.capdata | sed '/^\\s*$/d' > usbdata.txt
发现
这个很奇怪,不是键盘流量,也不是鼠标流量,这就有意思了,足足20个字节
然后就应该要去设备,xbox360,手柄,可以
可以参考这个
对照表
提取出的数据
YYYYYYAA XXAA YYYYBBAA
YYYYXXBBAA YY XXAA YYXXBB YYYYYYAA YYXXBBAA YYYYXXAA YYBBAA YYXXBB YYXXBBAA YYYYXXBBAA YYXXAA XXAA
XXBB YYXX AA XXBBAA YYAA YYYYBBAA AA BB YYXXBBAA YYYYYY YYXXBBAA XXBB YYYYYY BB YYXXBBAA YYYYYY
XX YYXXBBAA YYXXBB YYXXBBAA YYYYXX XXBB YYXXBBAA YYYYBB XXBBAA XXAA YYYYXX XX AA YYYYBBAA BBAA YYYYXX YYBB
XXBB
我苦思冥想的想是不是用个什么输入法,,一直到比赛结束都没弄出来
比赛结束,看到群里有师傅提示了
漂亮!。。。。
继续写个脚本跑
with open('usbdata.txt','r') as f:
data = f.readlines()
a = []
for i in range(0,660,2):
if (data[i][6:7]!='0'):
print(data[i][6:7],end='')
continue
elif(data[i][5:6]=='8'):
print("")
elif(data[i][5:6]=='7'):
print("#",end="")
得到下面的结果
8881#41#8821
88421#8#41#842#8881#8421#8841#821#842#8421#88421#841#41
42#84#1#421#81#8821#1#2#8421#888#8421#42#888#2#8421#888
4#8421#842#8421#884#42#8421#882#421#41#884#4#1#8821#21#884#82
42
云影密码解密
s = input()
a = s.split("#")
sum = 0
for i in a:
for each in i:
sum += int(each)
print(chr(sum+96),end="")
sum = 0
yes
whenyouknowme
flagisaboxofxbox
donotforgetdasctf
对话就是
i heard you had the flag
yes
how can i get the flag
when you know me
i know so
what is the flag
flag is aboxofxbox then md5 the capital letters
donot forget dasctf
flag就是MD5这个字符串:ABOXOFXBOX
然后套上dasctf{}
以上是关于[2021江西省赛高校组]wp的主要内容,如果未能解决你的问题,请参考以下文章
2021年中职“网络安全“江西省赛题—B-8:Web渗透测试 2022年中职组“网络安全”赛项吉安市竞赛B-1:数据库服务渗透测试
2022 年江西省职业院校技能大赛高职组信息安全管理与评估赛题 02