嵌入式Web
HTTP 协议讲解
Web 通信原理
HTTP 工作流程
HTTP 请求报文格式
HTTP 响应报文格式
HTTP 通信模拟
利用nc
监听一个端口来模拟 Web 服务端。
然后在浏览器访问服务端口,向服务端发送请求包。
可以看到nc
接收到了 http 请求包。
我们可以在nc
中给其返回一个 http 响应包,将响应包内容粘贴进正在监听端口的nc
命令行中,然后回车。
响应包:
浏览器收到响应包之后进行解析:
手动还是太麻烦我们可以写一个脚本来让程序自动发送响应包。
在目录下创建一个index.html
文件存放html
内容:
然后再创建一个cgi.sh
文件进行响应操作:
最后我们创建一个run.sh
脚本,来启动程序。
这样就可以实现自动与客户端进行交互。
这里的nc
就是一个简单的 http 服务器,这里的cgi.sh
程序就是一个 CGI(用于 Web 服务器与外部程序交互)程序。
Tinyhttpd 源码分析
简介
Tinyhttpd 是 J. David Blackstone 在 1999 年写的一个不到 500 行的超轻量型 Http Server,用来学习非常不错,可以帮助我们真正理解服务器程序的本质。
SOAP 协议
在嵌入式 Web 中通常会用到 SOAP 协议进行通信。
SOAP(Simple Object Access Protocol,简单对象访问协议) 是一种简单的基于 XML 可以使应用程序在分散或分布式的环境中通过 HTTP,SMTP 等协议来交互信息。
- XML:一种可扩展标记语言,被设计用来传输和存储数据。
- XML 命名空间:用来避免元素命名冲突。
XML 基本知识
XML 命名空间
命名空间的定义格式:
xmlns:前缀标识=用于标示命名空间的地址
SOAP 组成
- SOAP 协议封装
- SOAP 代码规则
- SOAPRPC 表示
- SOAP 绑定
语法规则
SOAP 消息必须用 XML 来编码
SOAP 消息必须使用 SOAP Envelope 命名空间
SOAP 消息必须使用 SOAP EncodingStyle 命名空间
SOAP 消息不能包含 DTD 引用
SOAP 消息不能包含 XML 处理指令
SOAP 消息基本结构
SOAP 报文实例
SOAP 是基于 http 的。
常见嵌入式 Web 应用及漏洞分析
由于嵌入式设备的性能相对于桌面计算机来说性能相对比较弱并且访问量也比较少,所以我们就不能使用像 Apache 这种大型的 Web 服务。所以人们为嵌入式设备专门设计了占用资源比较小的 Web 服务。
常见嵌入式 Web 系统
- Lighttpd
- Goahead
- Shttpd
- Thttpd
- Boa
- Mini_httpd
- Appweb
Lighttpd编译
敏感信息泄露
- 漏洞描述:
敏感信息包括但不限于口令,密钥,证书,会话标识,License,隐私数据,授权凭据,个人数据(如姓名,地址,电话等),在程序文件,配置文件,日志文件,备份文件,固件中都有可能包含敏感信息。
检测方法:
- 工具,爬虫等扫描获得敏感信息,敏感文件路径。
- 手动挖掘,根据 Web 容器或网页源代码获得敏感信息。
firmwalker 工具可以快速搜集敏感文件路径。
- 漏洞案例:
任意文件下载/读取
- 漏洞简介:
任意文件下载漏洞,正常的利用手段是下载服务器文件,如脚本代码,服务器配置或者是系统配置等等,在能提取固件的情况下能够很好的获得文件路径
- 漏洞危害:
下载服务器任意文件,如脚本代码、服务及系统配置文件等,在这些文件中能获得一些敏感的信息等数据。
- 漏洞案例:
CVE-2019-6273:任意文件下载
- exp
未授权访问
- 漏洞简介:
服务端未授权访问可以理解为需要安全配置或权限认证的地址、授权页面存在缺陷,导致其他用户可以直接访问,从而引发重要权限可被操作、网站目录等敏感信息泄露
- 漏洞危害:
未授权访问能引发重要权限可被操作、任意用户登录、网站目录、用户密码等敏感信息泄露
- 漏洞案例:
XSS
漏洞简介:
漏洞危害:
漏洞案例:
命令执行
- 漏洞简介:
命令执行漏洞介绍当应用需要调用一些外部程序去处理内容的情况下,就会用到一些执行系统命令的函数
- 漏洞危害:
根据不同用户权限,能执行任意命令,造成的后果十分严重,稍加利用就能够获得she11
- 漏洞案例:
Be the first person to leave a comment!