简介
最近ChatGPT也是特别火,我也是迫不及待的试了试他的代码审计能力,不得不说强呀!使用Satc污点分析工具快速查找漏洞点,使用ChatGPT提高代码理解能力构造请求包,感觉效果还是不错滴,ChatGPT大家都清楚了,简单介绍一下Satc,它是基于变量关键字通常在前端文件和后端函数之间共享的思想,SaTC精确识别后端二进制文件中的输入条目,然后利用本文为嵌入式系统定制的污点引擎,有效地检测出对不可信任的输入的危险使用。参考https://github.com/NSSL-SJTU/SaTC安装,下面以tenda A18为例来试试效果(演示的tenda 漏洞均为公开漏洞)。
漏洞分析
使用Satc的”python satc.py -d /home/satc/ -o /home/satc/res --ghidra_script=ref2sink_cmdi --ghidra_script=ref2sink_bof --taint_check” 命令跑一下-d 指定是输入文件夹 -o指定结果的输出目录,等待程序跑完,去-o 指定的目录下找结果即可。
1
可以看到它根据deviceName,回溯找出了几
层引用。
“
这里直接搜索0x000a674c来到了漏洞点,但是如果一点也看不懂怎么办呢?当然是丢给AI了。
“
这么明显了,直接ctrl+x ida看一下这个危险函数的引用,构造poc打一下就行啦。
“
Post http://x.x.x.x/goform/setUsbUnload
参数 deviceName=;whoami
2
这里根据macFilterType也找出来了几点链。
“
直接搜索最后strcpy前面的那个就是最终的危险函数位置了。这里从src的内容是读取r后面的数据,看不懂怎么办,继续丢AI。
“
接下来就是继续向上找引用
“
这里的getpar是我自己备注的,如果你不懂怎么办,继续丢Ai。
“
然后这里需要满足v19为0,满足的条件为macFilterType为white或者black。
“
最后ctrl+x找引用,构造满足进入危险函数条件的poc。
Post http://x.x.x.x/goform/setMacFilterCfg
参数"macFilterType": "white", "deviceList": "r"+ "A"*500。
“
此时触发了异常,就可以用gdb调试看看距离返回地址几个字节,结合libc构造一下gadget就可以了。
3
同样的分析污点分析的结果。
“
丢给AI去分析分析。
“
向上找引用构造poc。
“
Post http://x.x.x.x/goform/fast_setting_wifi_set
参数 "ssid": "A"*500
“
同样的此时触发了异常,就可以用gdb调试看看距离返回地址几个字节,结合libc构造一下gadget就可以了。
总结
在是文件系统的情况下,污点分析不失为一种好的静态分析方法,结合AI分析让挖掘漏洞更简单!
编辑:陈雅端子
原文始发于微信公众号(DX安全实验室):物联网 | 污点分析+AI漏洞挖掘
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论