WP - CISCN - 华北

web

include

最开始以为是session竞争,后来试了试pearcmd的文件包含,可以写入phpinfo

写到helloworld.php里。

image-20220625101645031

image-20220625101854466

1=system('cat /hahaiETVMOEsAsAQ446_fIa9');

flag{254c619397}

image-20220625101940245

quiz with award

注册完以后,看到数字比大小,这应该有运算的点,先试了试纯比大小。。。&麻了

想到ssti,

{{.}}看到了参数,
.Guess, .Result

golang的不是很熟悉,尝试一下golang的ssti。

99{{if lt .Guess .Result}}{{.hh "111"}}{{end}}
让guess和result比大小,如果guess小于result,让他用不存在的.hh报错就不会扣分
然后用bp的intruder爆破去跑,赚够钱在买flag。

image-20220625124411160

image-20220625124432487

flag{f660e351e0}

Say Love Me

根据提示,访问/file后提示Check me my heart By url?

http://39.104.82.208:46825/file?url=file:///usr/local/tomcat/webapps/ROOT.war

下载源码

misc

the Kenoru's Arithmetic Classroom Revenge

image-20220625112310986image-20220625112310986

1if 0else 32

用条件表达式直接绕过对字典的计算


接下来都是nb师弟们的了

crypto

Diophhantine

2020虎符CTF Crypto的Pell题目与此类似

通过https://www.alpertron.com.ar/QUAD.HTM得到该Pell方程的递推式即可,第一组解可以试出或爆破出img

from pwn import *
from Crypto.Util.number import *
from hashlib import md5
import string
table = string.ascii_letters+string.digits

def get_xxxx(s0,s1):
    for i in table:
        for j in table:
            for k in table:
                for l in table:
                    XXXX=i+j+k+l
                    tmp=(XXXX+s0).encode("utf-8")
                    if md5(tmp).hexdigest()[:5]==s1:
                        return XXXX

sh = remote("39.104.82.208",57536)

L1 = sh.recvline(keepends=False)
s0 = str(L1[40:44],encoding="utf-8")
s1 = str(L1[-5:],encoding="utf-8")
x = get_xxxx(s0,s1)
sh.sendline(bytes(x,encoding="utf-8"))
sh.sendline(b"Y")
sh.sendline(b"Y")

sh.recvuntil(b"(x, y) where x > 0, y > 0}",drop=False)
x=[3]
y=[3]
def func(num):
    i=1
    while i < num:
        xx = 3*x[i-1] + 4*y[i-1] 
        yy = 2*x[i-1] + 3*y[i-1] 
        x.append(xx)
        y.append(yy)
        i+=1

func(202)
for i in range(202):
    sh.sendline(bytes(str(x[i]-1),encoding="utf-8"))
    sh.sendline(bytes(str(y[i]-1),encoding="utf-8"))
    sh.recvuntil(b"answer!",drop=False)
print(sh.recvline(keepends=False))
print(sh.recvline(keepends=False))

sh.close()

reverse

jsfuck

做了混淆的JS,基本上就是在倒换变量名

每一个函数都用到函数D,在D内部下断点,发现是一个按索引-116取变量表Y内部元素的函数,把表Ydump出来备查

师弟的图存的是本地的

渣男可能在忙,联系上再要图

之后看检查flag的函数asdgasg,动调发现输入base64之后单字节异或了3,判断与D(119)即Y[3]是否相等,查表找到密文,异或3之后base64解密得到flag

flag{1dcca23355272056f04fe8bf20edfce0}

本文链接:

https://littlewhite.fun/497.html
1 + 2 =
快来做第一个评论的人吧~