【fairy】实验吧web题——hash爆破

最近沉迷于爆破= =

题目链接“http://ctf5.shiyanbar.com/ppc/sd.php

给你一个sha1值,它是0-100000之间的整数的md5值再求取sha1值,请在2秒内提交该整数值

题干表述的很清楚,就是让你碰撞出hash值对应的原来的值。

emmmm。又到了写脚本的时候了!!!

我们很容易发现提交数据为post请求,抓包分析一下post数据的参数:

我们看见除了inputNumber字段接受你所填写的数据,还有个submit字段。

ok,一切分析清楚,最后的流程:

获取界面html→正则出hash值→循环碰撞→碰撞出结果后构建post→post数据→获取返回html即可获取flag

最后附上脚本:

#coding=utf-8
import requests
import hashlib
import re

url="http://ctf5.shiyanbar.com/ppc/sd.php"
se=requests.Session()
sqlurl=se.get(url)
sqlurl.encoding='utf-8'
print sqlurl.text

hash = re.compile(r'color:red">(.*?)</div>', re.DOTALL).findall(sqlurl.text)
hash1=hash[0]
print hash1

for i in range(0,100000):
	k=str(i)
	hashmd5 = hashlib.md5(k).hexdigest()
	hashsha1 = hashlib.sha1(hashmd5).hexdigest()
	if hashsha1 == hash1:
		post = {'inputNumber':i,'submit':'%E6%8F%90%E4%BA%A4'}
		flag=se.post(url,data=post)
		flag.encoding='utf-8'
		print flag.text

over~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值