hgame-week2

由于这周啥也不会,一下内容基本是复现(好菜啊啊

WEB

Pokemon

好的我知道是sql注入,but这个在错误页面进行注入着实没有想到(太菜了见得少了,id处相当牢靠了

image-20220213193937066

出现报错,getStatusMessage只支持整数类型参数

image-20220213195153985

order和空格被过滤,空格的话通过/* */,也就是注释,把空格注释掉

1
error.php?code=1/*%20*/oorrder/*%20*/by/*%20*/2

2的时候可以正确得到回显,3的时候显示报错,说明有两个字段

image-20220213201520659

好家伙全给过滤了,双写试试

image-20220213201619118

测试成功,开工

image-20220213202040286

当前使用数据库为pokemon

image-20220213202909256

再次过滤,估计都过滤了,最后发现=被过滤了,用regexp代替

image-20220213203841436

image-20220213203950043

image-20220213204448794

剩下就是常规注入了,这题的难度我估计就在找注入点了,然后通过双写,大小写进行绕过,=可以通过regexp(正则匹配)或like(匹配整个值)进行替换,空格的话由于/**/被过滤,所以往中间放一点字符就行

At0m的留言板

xss漏洞,由于题目说在图片留言的兼容性测试

测试模板中有个用户留言内容,类名为content,对这里进行xss攻击

image-20220217211556031

非预期解

image-20220217143026346

点开如下

image-20220215170552002

预期解

flag是通过var声明,列出所有全局变量

1
document.getElementsByClassName('content)[0].innerText=Object.keys(window)

把innerText的内容换成flag得到

image-20220217221105302

然后通过xss触发

image-20220217221236378

1
<img src=x onerror="document.getElementsByClassName('content')[0].innerText=F149_is_Here">

image-20220217221424012

MISC

一张怪怪的名片

这是一个拼二维码的环节,ps拼一下,然后扫一下,然后

扫不出来,(是的这里二维码有破损,用qrazybox识别

这里需要先new一个,然后选择导入图片,注意:这里的图要尽量只有二维码

img

导入成功后会得到以下内容

image-20220211231526815

勉强识别出homeboyc那就上百度搜索,但是关停了,看wp发现这是一个社工+弱密码的操作,那这里就不再说了。

你上当了 我的很大

这是一个巨大的压缩包,以至于我怀疑它是一道内存取证的题目,事实上是个套娃

首先我们需要打开压缩包然后一直打开,然后会发现flag(.mp4,然后多试几个就会发现是一样的,然而这个视频里什么都没有

首先我们需要一个脚本,然后解压完所有压缩包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import zipfile
import os
import ctypes,sys
import shutil
def unzip_file(path):# '''解压zip包'''
if os.path.exists(path):
if path.endswith('.zip'):
print('unziping',path)
z = zipfile.ZipFile(path, 'r')
unzip_path = os.path.split(path)[0]
z.extractall(path=unzip_path)
zip_list = z.namelist() # 返回解压后的所有文件夹和文件
z.close() # 本题文件过大,故添加本句删除,空间大请删除本句,避免权限问题
os.remove(path)
for zip_file in zip_list:
new_path = os.path.join(unzip_path,zip_file)
unzip_file(new_path)
elif os.path.isdir(path):
for file_name in os.listdir(path):
unzip_file(os.path.join(path, file_name))
else:
print('the path is not exist!!!')
if __name__ == '__main__':
zip_path = r'C:\Users\\0.zip'
unzip_file(zip_path)

然后会发现有三个视频

另外两个播放的时候就可以看到

img

image-20220211232813089

扫一下是base64,再加上题目给了两个类似的码,然后可以得到四块二维码的一部分,拼起来即可