Revit软件Revit软件08-14 09:49

web安全CTF比赛习题(高级)

一、fuzzing

访问目标网址,“there is nothing ”,小编心想,没东西是不是可以不做了?
当然是不可能了,年轻人想想就好了,何必当真呢

这里写图片描述
burp抓包查看响应情况,初看好像没什么,这个时候拼什么呢,拼的是小编的这份细心了,看见小编圈起来的了嘛,很有用哦
这里写图片描述
伪造一个IP,查看响应,出现了一个“m4nage.php”,进行访问,继续抓包
这里写图片描述
继续伪造IP,可以看到回显内容“show me you key”
这里写图片描述
任意构造一个key值,继续伪造IP,发包访问,可以看到回显了找到正确的key的方法
这里写图片描述
破解key值得python代码如下,破解出来的key值为“ichunqiu618ok”

import hashlib
def md5(data):
    m = hashlib.md5()
    m.update(data)
    a = m.hexdigest()
    return a

a = 'ichunqiu'
b = 'abcdefghijklmnopqrstuvwxyz1234567890'
for i in b:
    for j in b:
        for k in b:
            for l in b:
                for m in b:
                    if md5(a+i+j+k+l+m)=='5a2a7d385fdaad3fabbe7b11c28bd48e':
                        print a+i+j+k+l+m

传入正确的key值后,回显了一个php文件
这里写图片描述
继续burp抓包,伪造IP访问,得到一个“x0.txt”文件
这里写图片描述
访问是一段php的源码函数,复制到本地,对代码进行修改,在最后对函数进行echo输出。
这里写图片描述
本地网页访问代码,即可得到flag信息
这里写图片描述

二、pyscript

访问目标网址,很有趣的界面,“input your answer”,那么到底输入什么呢,小编也不知道,只有继续乱翻翻看了
这里写图片描述
查看网页源代码,小编发现了一个重要的线索(很重要哦),不过看完之后看来小编还是逃不了代码的命了
这里写图片描述
破解代码python,如下

import urllib,urllib2,json
import hashlib
import re
import requests

url = 'http://106.75.108.111:1111'

def sha_1(data):
    sha_1 = hashlib.sha1()
    sha_1.update(data)
    sha = sha_1.hexdigest()
    return sha

def key(key1,key2):
    c='0123456789'
    str1 = key1
    cipher = key2
    for i in c:
        for j in c:
            for k in c:
                if sha_1(i+j+k+str1) == cipher:
                    # print (i+j+k)
                    return i+j+k
def get_info():
    r = requests.post("http://106.75.108.111:1111")
    key2 = r.headers['Ciphertext']
    cookies = r.cookies
    html = r.text
    res = r'\+(.*?)\)'
    key1 = re.findall(res,html)[0]
    print key1
    return key1,key2,cookies

def postx(number,cookies):
    cookies = cookies
    values={'pass':number}
    response = requests.post("http://106.75.108.111:1111",cookies=cookies,data=values)
    return response.text

def sum(text):
    res = r'<!--.*?([\d\+\-\*]+).*?-->'
    key3 = re.findall(res,text)[0]
    result = eval(key3)
    return result


if __name__ == '__main__':
    (key1,key2,cookies)=get_info()
    number = key(key1,key2)
    result1 = postx(number,cookies)
    result2 = sum(result1)
    print result2
    print postx(result2,cookies)

直接运行,滴滴滴,flag信息瞬间就出来了呢
这里写图片描述

程序之家二维码

000
评论