首页
社区
课程
招聘
[原创]第一届护网杯线下决赛awd之shell多解
发表于: 2018-10-25 21:03 19923

[原创]第一届护网杯线下决赛awd之shell多解

2018-10-25 21:03
19923

好久不打比赛,顺便来北京实习就参加了护网杯。排名虽然有所提高但还是被各种大表哥吊打。(和企业参赛简直痛苦)这里带来决赛中awd比赛pwn题shell的两种漏洞利用方式。

保护全开


程序模拟了一个受限shell命令行的功能。
一共有10个shell功能,根据漏洞利用方式可以分为两类。

第一类:ls,pwd,passwd,login,exit
其中passwd和login是假的利用方式。

就是密码通过打开random文件进行随机化。若账号密码正确则执行错误的system调用233333333333。加条知识点就是当连续open文件1024次上后,使文件描述符数组满了后,无法再次打开文件,即读取到的密码为空。这样就可以绕过密码实现登录(当然在这里登录没用)
第二类:recv,send,decode,encode。
实现通过堆的漏洞利用。


ls和pwd可以组合实现任意命令执行。大佬们看见这一行指令就开始疯狂刷分了。可怜我等菜鸟没经验编自动化脚本调格式都要半天。。。
payload为|cat<../flag即可直接获取flag这里不多解释这种方式

这种题在这个比赛肯定还有别的做法。。。(上面的做法太敷衍)于是开始考虑有无别的利用途径

send功能:若指针处有值,则free掉他.之后malloc一个任意大小的堆块填充至指针。并可进行堆块的填充。

recv功能:若指针处有值,则free掉他。之后malloc一个任意大小的堆块填充至指针。并将send功能指针指向的chunk内容通过strlen和memcpy拷贝到recv功能指针指向堆块。(明显存在堆溢出漏洞,且是大小不限的堆溢出漏洞)

encode功能:将send指针堆块内容加密。可通过此功能绕过strlen的0字节溢出限制。

decode功能:将recv指针堆块内容解密。只有此处存在一个put可以进行信息泄露。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2019-1-28 13:37 被admin编辑 ,原因:
上传的附件:
收藏
免费 1
支持
分享
最新回复 (2)
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
请问一下这几个漏洞怎么patch吗
2019-10-29 16:14
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
本人新手,没打过awd,想请问如何通过patch修复相应的漏洞
2020-4-24 00:40
0
游客
登录 | 注册 方可回帖
返回
//