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/)
---
网友评论