BUUCTF ciscn_2019_c_1(64位ret2libc3)

本文讲述了在64位环境下,通过IDA分析一个加密函数的漏洞,利用栈溢出绕过加密并通过Ret2Libc3技巧获取shell的过程。作者详细展示了如何利用puts地址泄漏、rop gadget寻找和精心构造的payload来实现攻击。

1.checksec+运行

64位/NX保护

运行起来貌似很有意思,是一个加解密操作

后来发现只能加密不能解密

2. 强大的IDA进行中

1.main函数

貌似看不出什么

2.encrypt函数

加密具体操作

大小写字母/数字进行异或运算

发现gets()栈溢出

 s大小0x50

需要先把加密函数绕过

该函数的功能就是循环对输入的字符串进行加密,在加密前都有一个检查,只要v0的值大于或等于字符串的长度就跳出循环,通过strlen来计算字符串长度的,strlen计算字符串的长度是以’\0’作为终止符,在payload的开头加上’\0’就能绕过加密,这样我们写入的数据不会被改变

 while ( 1 )
  {
    v0 = (unsi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值