最新要闻
- 【天天速看料】一条视频带你回忆高三这一年 网友感动:祝愿每位考生忙而不茫
- 《暗黑破坏神4》正式发售:标准版终于能玩了
- 苹果Vision Pro头戴支持近视用户:需额外掏钱买插片-世界观焦点
- 牛骨头汤有营养吗 牛骨头汤是否有营养
- 苹果XR头显Vision Pro王炸登场:3499美元起售,2024年开卖-环球观天下
- 经常挖鼻孔会影响颜值 严重可诱发颅内感染
- 天天观热点:小米王腾分享苹果Vision Pro看法:令人赞叹、但普及需要时间
- QQ空间18周岁 第一代美女网红鼻祖露面:16年没变样
- 压力给到合资品牌 上汽大众永久关停第一工厂:部分产线搬迁|全球要闻
- 全国爱眼日,王贾桥小学倡导学子保护视力、珍爱光明
- 抄底!百度网盘超级会员年卡178元:送优酷+喜马拉雅 世界实时
- 防止别人蹭热点 苹果Vision Pro完全不提元宇宙三个字
- 16.99万起!零重力座椅、无框车门、三种动力选择 长安深蓝S7即将上市
- 制作成本16.5亿!《封神三部曲》第一部定档:7月20日上映 焦点速读
- 天天消息!孙俪代言!超能双离子洗衣粉骨折价大促:39.9元11斤
- 国内卫浴二线品牌有哪些_国内卫浴二线品牌-最新
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
饶派杯 XCTF 车联网挑战赛 mqttsvr 复现|当前观点
前言
IDA和Ghidra对mips64架构的识别貌似不是很友好,赛场上由于反编译实在难看,所以很难静下心来去逆,于是赛后在期末考试前稍微花点时间做了一下复现。
准备
checksec一下,发现是mips64 大端,没开Canary RELRO,可以溢出,可以覆写got表,这里开了NX和PIE,NX对mips64这种异架构来说好像并不会起作用,如果服务端是用qemu起的,PIE好像也啥作用。
(资料图片)
把文件拖进IDA分析,发现我的IDA根本反编译不了。
拖进ghidra分析,乍看起来貌似并没有什么问题,仔细看一下会发现少了很多函数。
这可能是由于ghidra基址识别错误导致的,于是我们把ghidra的加载地址由0x100000改为0x0,可以得到较为全面的反编译。
逆向分析
从题目名字mqttsvr大概就能猜到这题基于mqtt协议,不过赛场上不能联网,不知道mqtt协议的大致格式,纯靠逆向就很难受了,复现的时候可以上网查查,感觉还可以。一开始会分配一个堆块,然后进入一个循环,这个堆块后来可以知道是存放标志位用的。
函数FUN_000042fc比较长,容易关注到其中的switch,这个操作是对某个字节右移4,也就是取了该字节的高bit位,来作为选择项。通过以下mqtt Connect报文,可大概推断这个switch就是判断报文的不同类型的请求,并且给出相对应的处理。那么漏洞大概率就存在这些请求的处理函数中。
0x10 // 固定报头:报文类型(Connect)和保留标志位0x0C // 可变报头长度0x00 0x04 0x4D 0x51 0x54 0x54 // MQTT协议名称(长度为4)0x05 // MQTT协议版本号0xCE // 连接标志0x00 0x3C // Keep Alive时间(以秒为单位,此处为60秒)// 有效载荷0x00 0x04 0x63 0x6C 0x69 0x65 // 客户端标识符(Client Identifier)0x00 0x0A 0x2F 0x75 0x73 0x65 0x72 0x73 0x2F 0x31 0x32 0x33 // 遗嘱主题(Will Topic)0x00 0x06 0x77 0x69 0x6C 0x6C 0x2F 0x31 // 遗嘱消息(Will Message)0x00 0x04 0x75 0x73 0x65 0x72 // 用户名(Username)0x00 0x06 0x70 0x61 0x73 0x73 0x77 0x6F // 密码(Password)
并且我们不难发现除了case 1,其他在进入处理函数前,都会有一个pbVar1[1] == 0的判断,猜测这里的case 1是一个连接认证的请求。直接进入FUN_00003200看一下,但是发现ghidra识别不出这个函数。
我这里采用的方法是,直接到0x3200+0x4的地方,直接强行创建一个函数,发现可以识别出来。还是有少许函数调用识别不出来,对着汇编看看就行。
FUN_00003200函数大概流程是,获取客户端标识符,用户名和密码并对其进行检查。这里的客户端标识符和用户名经过简单逆向可知应该分别为Car_MQTT_Client和Car_Administrator。对于用户密码来说,在获取到密码之后会经过FUN_000049f0,FUN_00004a68,FUN_00004c84进行处理。进入函数内部看一下,可以得知实现了一个md5加密,同时把加密之后的数据,通过strncmp与"\x64\x1C\x73\x9C\x22\xC8\xF5\xC0\x67\xE1\x1F\xC3\x0B\xEC\x9D\x7A"循环异或0x73进行比较,这里可以发现,第三位会出现\x00截断,故这里可以通过爆破,得到一个加密后前3字节为\x17\x6f\x00的密码即可,我这里爆破出一个\x00\xDD\x5E\x85。发送如下报文即可成功连接。
# Connectsleep(0.1)s.send(b"\x10" + b"\x34")VariableHeader = b"\x00\x04MQTT" + b"\x04\xC2" + b"\x43\x21" # \x04 + MQTT + \x04\x02 + \x43\x21VariableHeader+= b"\x00\x0F" + b"Car_MQTT_Client"VariableHeader+= b"\x00\x11" + b"Car_Administrator"VariableHeader+= b"\x00\x04" + b"\x00\xDD\x5E\x85"# Subscribe 1sleep(0.1)s.send(VariableHeader)
接下来分析case 3的函数FUN_000039b0,一开始有一大堆的函数,其中也有memcmp来进行判断,不过这里不太好看出来是和什么进行的比较,我去调试了一下,可以知道是与IOTcar_topic进行比较,这些数据会用全局变量null_ARRAY_00017360来存放其指针进行保存,同时最后会进入函数FUN_000037d8。
函数FUN_000037d8中也有一些memcmp,并且可以很清楚得之是与什么进行的比较。
可以发现,一个字段是与 IOTcar_topic,另一个是与 car_car进行比较,并且如果 *** (calloc_ptr+ 2) == "\x01",*(calloc_ptr+ 3) == "\x05"**,那么就可以进入函数 FUN_0000250c,并且上面把 null_ARRAY_00017360 + local_30 * 0x20 + 0x13(存放字段car_car的堆地址)拷贝到 acStack_48上。后期经过调试得知 FUN_0000250c本意可能是用来泄露出一个堆地址,不过由于我这里是 qemu启动的原因,堆地址都是 0x4000018000,会出现 00截断的问题,不知道远程是不是用其他方式启动的,还是我的启动方式的原因。不过这里的 (calloc_ptr+ 2) == "\x01",(calloc_ptr+ 3) == "\x05"还并不满足,我们需要对其他函数进一步分析。
case 5,6的处理函数比较简单,同时并没有起到什么作用,故分析略过。
case 8的函数 FUN_00003dfc中,可以很明显看出有一个堆溢出漏洞,它在申请堆块时,malloc_size=(size&0xff),并且如果其中的一个字段等于 IOTcar_topic,就会把 *(calloc_ptr+ 2)的值设置为 1,这是泄露堆地址的条件之一。
case 10的功能是吧 case 8申请的堆块释放掉,并且把 (calloc_ptr+ 2)的值设置为 0。case 12*的功能是使得 *(calloc_ptr+ 3) = *(calloc_ptr+ 3)+1,通过发五次这个请求包可以满足 *(calloc_ptr+ 3) == "\x05"。
漏洞分析
这题的漏洞有如下几个。第一个是在连接时,用户密码由于md5之后存在\x00截断的问题,故可以爆破出一个满足条件的密码。第二个是订阅IOTcar_topic主题,并且发送5次\xC0开头的请求,再发送特定的消息即可泄露堆地址。第三个是存在一个堆溢出。
漏洞利用
泄露出堆地址之后,就可以得到程序基地址。可以劫持got表,并且NX没有效果,那么我们就可以把malloc等函数的got表改为某一个堆地址,并且在这个堆地址上写入shellcode即可。uclibc mips64的堆利用我参考https://eqqie.cn/index.php/search/mips64 ,发现有三个不同的malloc版本。但我并不知道怎么判断当前 uclibc是哪一个版本,我就用 malloc-standard这个版本的利用方法试了一下,直接覆盖一个杯释放堆块的 fd,发现二次分配,可以申请到预期位置(malloc_got - 0x20)。
覆盖成shellcode地址之后,我们即可执行提前布置好的shellcode,从下图可见我们成功跳转到我们提前布置的shellcode上,不过虽然最后我可以走到execve("/bin/sh", NULL, NULL),但是似乎系统调用并没起作用。有知道原因的师傅可以联系我一下,我再改一下这里。
Poc
https://github.com/fxc233/CTF/blob/main/IOT/2023XCTFcar-mqttsvr/exp.py
关键词:
饶派杯 XCTF 车联网挑战赛 mqttsvr 复现|当前观点
【天天速看料】一条视频带你回忆高三这一年 网友感动:祝愿每位考生忙而不茫
《暗黑破坏神4》正式发售:标准版终于能玩了
苹果Vision Pro头戴支持近视用户:需额外掏钱买插片-世界观焦点
牛骨头汤有营养吗 牛骨头汤是否有营养
读改变未来的九大算法笔记05_数字签名
Git hooks与自动化部署-全球新消息
每日聚焦:直播平台源码画面质量功能的实现
云图说|ModelArts开发环境,让AI开发、探索、教学更简单 世界新要闻
苹果XR头显Vision Pro王炸登场:3499美元起售,2024年开卖-环球观天下
经常挖鼻孔会影响颜值 严重可诱发颅内感染
天天观热点:小米王腾分享苹果Vision Pro看法:令人赞叹、但普及需要时间
QQ空间18周岁 第一代美女网红鼻祖露面:16年没变样
压力给到合资品牌 上汽大众永久关停第一工厂:部分产线搬迁|全球要闻
全国爱眼日,王贾桥小学倡导学子保护视力、珍爱光明
linux tar解压命令总结
速讯:848中国鱼类资料图谱大全ACCESS\EXCEL数据库
顶象无感验证码助力京客隆提升数字化运营能力
MySQL用户与权限管理_每日热门
全球快播:电池级碳酸锂价格重回30万元/吨 锂盐厂商二季度业绩可期
抄底!百度网盘超级会员年卡178元:送优酷+喜马拉雅 世界实时
防止别人蹭热点 苹果Vision Pro完全不提元宇宙三个字
16.99万起!零重力座椅、无框车门、三种动力选择 长安深蓝S7即将上市
制作成本16.5亿!《封神三部曲》第一部定档:7月20日上映 焦点速读
天天消息!孙俪代言!超能双离子洗衣粉骨折价大促:39.9元11斤
国内卫浴二线品牌有哪些_国内卫浴二线品牌-最新
低利率环境与发行优势助推 商业银行绿色金融债发行火热
抽检合格率97.26%!江西加强中高考期间校园食品安全监管
阿根廷中国行 花30万可让梅西敬酒、合影?官方回应
续航2小时、仅售2万5!苹果首款AR眼镜开卖:还有半年时间攒钱
天天观天下!《暗黑4》德鲁伊玩家发声:不要随便攻击熊熊!
移动SSD也白菜价了!梵想PS2000 1TB只要279元 不到小米一半
天天日报丨天猫京东红包加码!最高23888元 每天最多领3次
阿根廷中国行 花30万可让梅西敬酒、合影?官方回应
在 Linux 中使用 sFTP 上传或下载文件与文件夹
日本工人的实际工资在4月份继续下降,尽管已经反映了在年度薪资谈判中所取得的加薪,这给考虑召集选举的首相岸田文雄带来挑战|天天时讯
环球速递!76核核显GPU足以毁天灭地 苹果Mac Pro不支持任何独显
今亮点!AMD确认锐龙8000明年问世:Zen5 CPU、亮机核显大升级
iPhone不用再说“嘿 Siri”了!可能不好用:用户担忧误唤醒_每日快讯
烤串巨无霸!广西烧烤竹签长1米8:网友直呼开眼 一串吃饱|热点评
精彩看点:李宁获摩根大通增持1117.05万股 最新持股比例为5.07%
全国中成药集采分组等多项信息公布 96家药企参与申报 多个品种竞争激烈
国际金融市场早知道:6月6日
取代iPhone?苹果发布首款MR头显Vision Pro:卖到2.5万天价
资讯:实用性看齐安卓?这就是iOS/iPad OS 17 苹果已推送测试版:iPhone 8、X被弃
天天简讯:《小美人鱼》全球票房突破3亿美元 黑美人鱼欢呼:大家还是爱看我的
独立在轨33天 状态良好:天舟五号与空间站组合体再次对接 时讯
7月14日上映!《碟中谍7》发布新剧照:59岁阿汤哥骑摩托冲下悬崖 头条焦点
龙岗生态司法修复基地揭牌 天天动态
24800元的苹果Vision Pro发布 一文看懂WWDC23有多硬!
母亲病危家人让高考孩子见最后一面 网友争议:高考高于亲情?|天天微速讯
天弘中证沪港深线上消费主题交易型开放式指数证券投资基金基金产品资料概要(更新)
环球热点!SD协议-时序
JAVA学习笔记_基础篇01
基于 log4j2 插件实现统一日志脱敏,性能远超正则替换-焦点信息
焦点观察:MRST绘制三维网格图
每日焦点!生态河湖 诗画江城
2.4万元!苹果首款MR头显Vision Pro发布:单眼像素超越4K电视
真颠覆XR!苹果Vision Pro技术、体验几乎完美 但是一根线毁所有|世界快报
苹果Mac三大新品国行价格汇总:巅峰顶配9.7万元-环球速看
8450米的珠峰上舍命救人 女子承诺1万美元只肯给4000美元:贵吗?
1100万年后 决定性别的Y染色体将消失:人类会怎么样?
旅游景区清洁工人工作情况影像记录带定位时间时间水印相机
全球动态:父母去世了,为子女买的保险能用遗产续费吗?
天天讯息:高中教材选修和必修有什么区别_高中必修是什么意思 选修呢
油毡纸多少钱一卷(油毡纸) 环球播资讯
当前短讯!不负如来不负卿txt下载完整版_不负如来不负卿txt下载
UFOU首获投资,升降桌售价上万元有人望而却步,孟振亮曾连续创业
每日短讯:管理能力有哪些方面_能力有哪些方面
阿里云宣布举办首届AI黑客马拉松挑战赛 最终获胜团队将获得3万奖金
现实题材电影《八角笼中》发布一“骗”真心版预告 由王宝强与肖央主演
人造电子皮肤首次亮相 每层主干均为长分子链组成
美国一男子连吃100天麦当劳后减重53斤 网友困惑垃圾食品是否需重新定义
巴奴火锅反向推出“天价土豆”套餐 套餐几乎囊括巴奴所有热门菜品
日本地下偶像女子团体成员灌男粉丝喝洗洁精 看其吐泡泡后捧腹大笑
在线访问量直线飙升 OpenAI已跻身全球20家流量最高网站榜单
2023年夏日游戏节发布预热宣传片 将于6月9日进行直播
比亚迪上调部分车型的保养费 幅度达到50%左右
清华大学成立秀钟书院:今年开始招生 目标宏大_当前热文
语音系统用上全自研算法!李想:95%以上控制张嘴就能搞定-天天亮点
浙江大学学生被录用为“场务及驱鸟员” 网友惊呼太卷了
创美药业(02289)将于7月31日派发末期股息每股0.45元
hackthebox sniper medium
致乘风破浪的青春|胡千行:求是创新,多维发展-消息
网上出现假冒北京市人社局的网站!官方发布风险提示_头条焦点
警惕!身上有这7个特征的人 容易得肺癌
男子嘴贴保鲜膜忍不住亲亲宝宝引热议 医生科普:被老人、家人亲吻会遭殃
太卷了!浙大学霸应聘机场驱鸟员:要求英语四级425分 环球微头条
文心一言 VS 讯飞星火 VS chatgpt (32)-- 算法导论5.2 4题_全球看点
环球微动态丨【解决方法】网络设备使用CLI命令行模式进入Telnet登录,如交换机,路由器
厦门大学有哪些专业 厦门大学专业排名
天天热头条丨信泰航空拟对全资子公司信泰克增资1000万
5月国内汽车召回数量排名:美系特斯拉遥遥领先 全球滚动
珠峰为救遇险女子放弃登顶当事人发声:停止网暴_环球视讯
OpenAI跻身全球前20大网站:月活用户近9亿
购物追剧两不误!腾讯视频会员年卡+京东PLUS年卡降价:到手138元
排海计划坚持不变!福岛核电站鱼体放射性物质超标180倍 环球头条
当前动态:2023年南疆冬小麦成熟期及复播玉米播种期预报金十期货6月5日讯,根据目前南疆冬小麦发育进程和6月天气气候趋势预测,预计2023年南疆冬小麦成熟期大部
全国一体化算力算网调度平台正式发布
比iPhone 14更薄的机身塞进4600mAh!vivo S17本周开卖:2499起