美文网首页
CTF-python练习

CTF-python练习

作者: 帅猪佩奇 | 来源:发表于2018-12-07 18:16 被阅读25次

BUGKU-速度要快

题目网址:http://120.24.86.145:8002/web6/

速度要快,查看源码,暗示要post传递一个参数,先抓包,发现headers头有flag,需要base64解码。

然后post传递参数返回flag。

贴出poc:

    import requests

    from base64 import b64decode

    s=requests.Session() #保证一个session这样才能根据给出的随机flag匹配最终flag

    a=s.get('http://120.24.86.145:8002/web6/').headers['flag']

    flag=b64decode(a).decode()#解码headers中的flag,但是解码出来需要decode再次解码。

    key=b64decode(flag.split(':')[1])#解码出内容为:跑的还不错,给你flag吧: ODgzMTc= ,需要截取:右边内容所以用到split截取以冒号分割的第二个内容。

    payload={'margin':key}

    r=s.post('http://120.24.86.145:8002/web6/',data=payload)

    print(r.text)

天下武功唯快不破

题目网址:http://ctf5.shiyanbar.com/web/10/10.php

贴出poc:

    url='http://ctf5.shiyanbar.com/web/10/10.php'

    s=requests.Session()#保证一个session会话

    res=base64.b64decode(s.get(url).headers['flag']).decode()#对flag进行解码编码等操作

    a=res.split(':')[1]#分离出需要的信息

    payload={'key':a}

    b=s.post(url,data=payload)

    print(b.text)

思路 抓包 源码 解码64 脚本post发包

秋名山老司机

http://120.24.86.145:8002/qiumingshan/

贴出poc:

    url='http://120.24.86.145:8002/qiumingshan/'

    s=requests.Session()#保证在极短时间内提交是一个会话

    r=s.get(url)#get url里的表达式

    matchp=re.search(r'(\d+[+\-*]+)+\d+',r.text).group()

    res=eval(matchp)

    data={'value':res}

    result = s.post(url,data=data)

    print(result.text)

很单纯的一道python脚本计算题目,

group()为打印出此表达式给matchp,用正则表达式,\d+表示一个或者多个数字,[]里为任意一个字符,这里为匹配+-*,-需要转义,将这两项括号括起来+,这样才可以匹配多个这样类型的表达式,最后加上一个\d+。

eval(expression, globals=None, locals=None)  --- 官方文档中的解释是,将字符串str当成有效的表达式来求值并返回计算结果。globals和locals参数是可选的,如果提供了globals参数,那么它必须是dictionary类型;如果提供了locals参数,那么它可以是任意的map对象。

最后post传递得到flag,

    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

要破解ichunqiu 后面的后五位然后 post传递

传送门:[文章](https://ciphersaw.me/2017/12/16/%E8%AF%A6%E8%A7%A3%20CTF%20Web%20%E4%B8%AD%E7%9A%84%E5%BF%AB%E9%80%9F%E5%8F%8D%E5%BC%B9%20POST%20%E8%AF%B7%E6%B1%82/)

---

相关文章

网友评论

      本文标题:CTF-python练习

      本文链接:https://www.haomeiwen.com/subject/cuxacqtx.html