当前位置:首页 > 网络安全 > 正文内容

Plaid CTF 2019 – Tonnerre解题思路

访客4年前 (2021-04-15)网络安全482

描述
首要咱们坚信搭载tonnerre.pwning.xxx:8560的服务器是彻底安全的,后边咱们能够拜访该网站。怎么搞呢?
咱们有了一个斗胆的主意….他们会不会将用户数据和网页内容存储在同一个数据库呢?
细节
分值: 200
分类: 加密
验证: 119
解决方案
这个Web登录表单存在一个简略的SQL注入,运转sqlmap就能够直接获取tonnerre数据库中的users表单:只要一个用户get_flag 以及两个值:
salt, 一个随机的127字节字符串
verifier, 一个随机的145字节字符串


这两个值都运用到根据公钥的认证协议,长途协议类似于SRP(安全长途暗码协议),其服务端是由Python完成的。
下面包括咱们注释的代码就是其间一部分风趣的当地:
N = ... # a 1024-bit prime number, the group modulus
g = ... # a 671-bit number, a group generator
...
   # generates a key pair
    random_server = random.randint(2, N-3)
    public_server = pow(g, random_server, N)
    # mask the public key with the verifier
    residue = (public_server + permitted_users[username][1]) % N
    # send salt and masked pubkey
    req.sendall(tostr(permitted_users[username][0]) + 'n')
    req.sendall(tostr(residue) + 'n')
    # compute the session key,
    #   masking the client pubkey with the verifier
    #   raising to the server's secret exponent
    #   hashign the whole thing using SHA-256
    session_secret = (public_client * permitted_users[username][1]) % N
    session_secret = pow(session_secret, random_server, N)
    session_key = H(tostr(session_secret))
    # receive a proof from the client..
    proof = req.recv(512).strip('n')
    # ..should be a hash of the server's masked pubkey and session key
    if (proof != H(tostr(residue) + session_key)):
      req.sendall('Sorry, not permitted.n')
      req.close()
      return
    # this is useless for the challenge
    our_verifier = H(tostr(public_client) + session_key)
    req.sendall(our_verifier + 'n')
    # send us the flag!
    req.sendall('Congratulations! The flag is ' + flag + 'n')
    req.close()
现在咱们就调用服务器端的(s, S)密钥对,以及客户端的(c, C)密钥对。类似于g^s=S 以及 g^c=C.
他看起来像是客户端接纳服务端的Diffie-Hellman算法公钥(运用verifier后得知),另一方面同享密钥为:
(C * verifier)^s = g^(cs) * verifier^s
因为客户端并不知道服务端的private exponent s,所以咱们不能确认同享密钥,问题出在哪儿呢?
其间的窍门就是public_client不该该是客户端公钥C,而是C乘以verifier的倒数。运用规范模块的反序算法,咱们能够计算出verifier的首要逆模N。
咱们能够用下面的程序进行身份验证(相同,咱们仅向您展现精彩部分)
random_client = random.randint(2, N-2)
public_client = pow(g, random_client, N)
invver = modinv(verifier, N)
public_client2 = invver * public_client % N
if ((public_client2 * verifier) % N) == public_client:
    print 'verifier verified'
s.sendall(tostr(public_client2) + 'n')
# get salt and server pubkey
salt = int(s.recv(512).strip('n'), 16) % N
residue = int(s.recv(512).strip('n'), 16) % N
public_server = (residue - verifier + N) % N
session_secret = pow(public_server, random_client, N)
session_key = H(tostr(session_secret))
proof = H(tostr(residue) + session_key)
s.sendall(proof + 'n')
time.sleep(0.5)
r = s.recv(512).strip('n')
print r
取得成果
python tonnerre_solve.py
Welcome to the Tonnerre Authentication System!
verifier verified
ca787059bc572bc7902c91d2a168226a32052518073f4c32948ff02826e6be22
Congratulations! The flag is PCTF{SrP_v1_BeSt_sRp_c0nf1rm3d}
 

扫描二维码推送至手机访问。

版权声明:本文由黑客接单发布,如需转载请注明出处。

本文链接:http://therlest.com/106138.html

分享给朋友:

“Plaid CTF 2019 – Tonnerre解题思路” 的相关文章

黑客追款出款成功再收费「24小时在线的黑客追款」

据公务员期刊网2021年10月14日18:37:49的最新发布,微博网友@ 爆料。 平安夜来临之际,事件,在网上炒得沸沸扬扬,引发全网热议! 据悉,黑客追款出款成功再收费。可能没有机会接触到钱。那时候我就有想过退步。 一、黑客追回网赌40万 首先确保整个无前期费用黑客追款方案是最有效的,在做一件黑客...

【紧急+重要】勒索病毒解决方案!附:MS17-010补丁下载

  滚动更新:2017年5月13日16:57:22   游侠安全网(良心网站,站长先贴上注意事项和解决方法!防止你看本文的时候就被加密了!   1、本次共计是自动化攻击,利用了Windows的MS17-010。但苹果的MacOS用户不用得意,因为在昨晚之前,我这里得到的好几起勒索攻击案例都是针对...

安宫牛黄丸 - 北京同仁堂安宫牛黄丸

能降低惊厥和死亡率,天然牛黄天然麝香。对突然脑埂塞,并且只有北京同仁堂生产的安宫牛黄丸才可以使用,北京同仁堂集团顾问金霭英老人说,局方至宝丹、与作用是清热解毒。 4月30之前是350元.重镑产品,公元1541年。平时还是要遵医嘱服用适合自己的降压药。同仁堂的安宫牛黄丸使用的是老方子,黄芩。 北京同仁...

Webshell安全检测篇(1)-根据流量的检测方法

一、概述 笔者一直在重视webshell的安全剖析,最近就这段时刻的心得体会和咱们做个共享。 webshell一般有三种检测办法: 依据流量方法 依据agent方法(本质是直接剖析webshell文件) 依据日志剖析方法 Webshell的分类笔者总结如下: 前段时...

53度最便宜酱香郎酒_郎酒经典酱香53度

我一朋友,500多到600多,10年红花郎288,现在估价至少在2000元以上,郎酒老郎酒淡雅2002年出厂,三星,关键是看款型,1992年53-1度酱香型。 郎酒还是1898起步比较好。对了,或者以前的,未来两年必定疯长!不知道怎么上图,现在的价格是158元每瓶便宜,你好。 看目前郎酒的上涨势头,...

黄埔燃料油现货价格_今日燃料油市场价格

这句话是指期货比现货价格高100元吗,柴油,1%的权重都没有,通过技术指标和消息面影响来分析的。有的有点差,点88 国际燃料油收盘价涨跌新加坡。244点5 国内燃料油,燃料油,作为成品油的一种,屈居第二位,有的高点有的低一点,2。97#汽油5点38元/价格升,在原油的加工过程中,常关注的消息为OPE...

评论列表

世味笑惜
3年前 (2022-07-06)

ier) % N) == public_client:    print 'verifier verified's.sendall(tostr(public_client2) + 'n')# get salt and se

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。