mirror of
https://github.com/Mr-xn/Penetration_Testing_POC.git
synced 2026-10-24 17:04:31 +00:00
114 lines
2.9 KiB
Markdown
114 lines
2.9 KiB
Markdown
# tendaCP3摄像头分析-2
|
|
> p1yang
|
|
> 来源:https://www.iotsec-zone.com/article/206
|
|
|
|
上次的坑来填了
|
|
|
|
之前没有系统学习过网络编程,花了一周时间把tinyhttpd的源代码阅读理解了一下,并且仿照用python写了一个简易的httpd,可以看我另一篇文章
|
|
|
|
## noodles服务分析
|
|
|
|
通过分析发现noodles监听了1300端口
|
|
|
|
### 启动
|
|
|
|
> sudo chroot . ./qemu-arm-static ./usr/bin/noodles
|
|
|
|

|
|
|
|
可以使用nmap来查看是否监听1300
|
|
|
|

|
|
|
|
可以看到1300端口已开放,并且noodles也对nmap有反应了
|
|
|
|
### 静态分析
|
|
|
|
对于程序的静态分析,可以从main函数来正向递进分析,也可以从一些字符串来分析,又或者从一些关键函数
|
|
|
|
这里通过nmap扫描时noodles的打印来查找
|
|
|
|
通过交叉引用发现在FUN_00011878函数中存在相关信息。
|
|
|
|
创建并监听1300端口
|
|
|
|

|
|
|
|

|
|
|
|
等待用户连接
|
|
|
|

|
|
|
|
获取client传进来的内容
|
|
|
|

|
|
|
|

|
|
|
|
主要内容处理在下面相似的内容处
|
|
|
|

|
|
|
|
1300端口大概做了这些事情
|
|
|
|
参数有一下几种
|
|
|
|
> UPGRADE
|
|
>
|
|
> BURNMAC
|
|
>
|
|
> ELFEXEC
|
|
>
|
|
> SYSTEM
|
|
>
|
|
> SYSTEMEX
|
|
>
|
|
> DOWNLOAD
|
|
>
|
|
> UPLOAD
|
|
>
|
|
> FLASHDUMP
|
|
>
|
|
> BURNSN
|
|
>
|
|
> READSN
|
|
>
|
|
> WRITEENV
|
|
>
|
|
> READENV
|
|
|
|
#### fun_00014f90()函数
|
|
|
|

|
|
|
|
三个参数分别为从client传入的内容,字符串,0
|
|
|
|

|
|
|
|
这里是xml参数处理。
|
|
|
|
### 成果
|
|
|
|
这里出了一个代码注入和一个设备重启
|
|
|
|
#### 设备重启
|
|
|
|
设备重启是利用了代码问题,更像是设计时不严谨导致的
|
|
|
|
当标签中含有upgrade时,会运行到FUN_000146f4函数,执行完毕后必然会执行到FUN_00016b90函数来使设备重启。
|
|
|
|

|
|
|
|
只需要运行到此处,脚本会使设备重启
|
|
|
|

|
|
|
|
#### 代码注入
|
|
|
|
这里更像一个后门,直接在 FUN_000140b4函数中发现,如果`<system></system>`中的参数不是iwlist便会直接使用system执行
|
|
|
|

|
|
|
|
这里就不贴poc了,诸位可自行测试
|