这是一个基于Openssl的Web安全实验项目。主要工作如下:
- 使用rust实现了一个简单的Http Web服务器,实现了有XSS漏洞的前端界面。
- 使用openssl库新建了一个CA,签发了一个证书。
- 将证书用于Web服务器,升级为Https Web服务器。
- 使用rust语言实现了一个client程序,用于访问Https Web服务器。
- 将client程序改写,可以自动填充XSS攻击脚本。
- 设计了一个会话劫持的实验,用于演示XSS攻击的危害。
-
文档:
docs/SSL.md
:SSL协议的介绍以及实现docs/XSS.md
:XSS攻击的介绍以及实现docs/server.md
:服务端程序的介绍docs/client.md
:客户端程序的介绍docs/会话劫持.md
:会话劫持的介绍以及实现
-
服务端程序:
src/bin/server.rs
:Https服务器程序src/bin/client.rs
:Https客户端程序src/bin/sess-listener.rs
:会话监听程序
-
证书生成程序:
scripts/gen-pem.sh
:生成CA证书
-
前端界面:
SSL/WebServer/XSS/index.html
:前端界面SSL/WebServer/XSS/handle.js
:前端界面的处理脚本
-
会话劫持实验:
SSL/WebServer/XSS/hook.js
:会话劫持攻击脚本SSL/WebServer/XSS/example.txt
:会话劫持示例SSL/WebServer/XSS/session.txt
:劫持到的cookie
cargo 1.79.0-nightly
OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)
- 在根目录使用下列命令可以生成证书:
./scripts/gen-pem.sh
- 在根目录使用下列命令可以分别启动服务端、客户端、会话监听程序和XSS攻击程序:
cargo run --bin [server | client | sess-listener | xss-attack]
- 首先是实现好的Https服务器,可以在浏览器中访问到:
- 使用脚本生成证书的结果如下:
- 按照指导书的步骤,可以看到,客户机浏览器中已经得到了Server的证书。
- 在主机上运行Wireshark抓到的报文如下: