首页
社区
课程
招聘
[已解决] [悬赏]一道linux下的pwn题目decoder 100.00雪花
发表于: 2017-4-25 22:03 2583

[已解决] [悬赏]一道linux下的pwn题目decoder 100.00雪花

2017-4-25 22:03
2583

已知:

1.decoder

2.libc库


问题:

pwn


个人分析:

1.发现了两个漏洞,一个数组下标溢出,一个格式化字符串漏洞,然而还是不会做。

2.给个输入样例

$./decoder

THIS IS A SIMPLE BASE64 DECODER

VlZaV1IxRnNSbFZTV0d4T1pXeEZlQT09

1:VVZWR1FsRlVSWGxOZWxFeA==

2:UVVGQlFURXlNelEx

3:QUFBQTEyMzQ1

4:AAAA12345



[课程]Linux pwn 探索篇!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 65
活跃值: (545)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
求wp
2017-4-25 22:06
0
雪    币: 9731
活跃值: (3091)
能力值: (RANK:520 )
在线值:
发帖
回帖
粉丝
3

我感觉应该是:
aaaa  addr  aaaa  aaaa  ....编码11次  去覆盖返回地址,控制程序流程。
然后再进一步利用得到SHELL 

2017-4-26 12:04
0
雪    币: 65
活跃值: (545)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
netwind 我感觉应该是:aaaa  addr  aaaa  aaaa  ....编码11次  去覆 ...
如果这样就可以的话,我早就解决了哦。
2017-4-27 11:23
0
雪    币: 65
活跃值: (545)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
netwind 我感觉应该是:aaaa  addr  aaaa  aaaa  ....编码11次  去覆 ...

虽然CANARY是disabled,但是其实有个类似CANARY的保护在,他的原理是这样的:

进函数先把esp压栈,在retn之前再恢复esp。如果不能泄漏被压栈的esp的值,而直接覆盖返回地址的话,esp会被改变。

esp被改变其实也没啥问题,因为是自己可以控制的,栈上执行或者ROP也是可以继续操作的。

这题,利用缓冲区溢出漏洞,覆盖返回地址的问题在于,不知为啥到不了retn,会崩溃在snprintf或者strlen。

2017-4-27 11:43
0
雪    币: 9731
活跃值: (3091)
能力值: (RANK:520 )
在线值:
发帖
回帖
粉丝
6
崩溃是因为  执行strlen的时候  地址被覆盖成我们的数据了,不可读;覆盖的时候    前四个字节用aaaa,接着找个字符串的地址覆盖    比如这样
'aaaa'+p32(0x8048d80)
就不会崩溃了,接着  就可以栈溢出
但是尝试了很多办法  因为堆栈地址不是固定的,没办法控制ESP      所以这个利用方式    不可行

最终可以通过格式化字符串漏洞  覆盖printf的got表地址,控制程序流程,然后迁移栈,再ROP  到SHELL
2017-4-27 14:39
0
雪    币: 967
活跃值: (1138)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
7

我有poc,不过价格太便宜,给5000元吧

2017-4-27 14:50
0
雪    币: 65
活跃值: (545)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
netwind 崩溃是因为 执行strlen的时候 地址被覆盖成我们的数据了,不可读;覆盖的时候 前四个字节用aaaa,接着找个字符串的地址覆盖 比如这样 'aaaa'+p32(0x8048d80) 就不会崩 ...
格式化字符串漏洞也不好用,因为那个format是堆上的,不是栈上的,不好控制任意地址写。
2017-4-27 15:37
0
雪    币: 9731
活跃值: (3091)
能力值: (RANK:520 )
在线值:
发帖
回帖
粉丝
9
http://bbs.pediy.com/thread-217268.htm
我写了分析了  你可以参考看看
2017-4-27 19:21
0
游客
登录 | 注册 方可回帖
返回
//