使用GMProxy+ SqlMap进行国密SSL网站安全检查

国密算法即国家密码局认定的国产密码算法(商用密码)。近年来,国家站在长远战略的高度大力推动国产密码算法在金融、电子政务等关键领域的应用。明确要求在金融银行、电子政务、教育、交通运输、民生保障等关键领域全面推进自主可控密码技术的应用。

越来越多的政府、企事业单位的WEB系统都已开始部署使用国密SSL。国产密码算法以及相对应的产品应用将成为未来各级政府机关网站和各类企业网站的安全标配。但目前主流的WEB安全测试软件如Burp Suite、 SqlMap等都不支持直接对国密SSL 网站的安全检查。这无疑给一些国密SSL系统的安全检查带来不便。

 

Windows系统下可以借助第三方工具GMProxy 来实现让Burp Suite、 SqlMap等安全工具支持国密SSL 。GMProxy 支持http到国密HTTPS 代理转发,从而实现安全检查工具对国密网站的检查。

0x1 国密SSL测试环境搭建

编译部署Apache httpd国密支持

1.下载编译gmssl

http://gmssl.org下载gmssl

编译安装

./config --prefix=/usr/local/gmssl 
make install

2.下载并编译安装 apr

wget -c https://archive.apache.org/dist/apr/apr-1.7.0.tar.bz2 --no-check-certificate
tar -jvxf apr-1.7.0.tar.bz2
./configure --prefix=/usr/local/apr
#编译安装 apr
make && make install

3.下载并编译安装 apr-util

#切换至 /usr/local/ 目录下
cd /usr/local/ 
#下载 apr-util-1.5.4
wget -c http://archive.apache.org/dist/apr/apr-util-1.5.4.tar.gz
#解压已下载的 apr-util-1.5.4 压缩包
tar -zvxf apr-util-1.5.4.tar.gz 
#进入解压后的 apr-util-1.5.4 文件夹并指定编译目录路径。
cd /usr/local/apr-util-1.5.4/
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
#编译安装 apr-util
make && make install

apt-get install libpcre3

4.安装国密版Apache

#下载 Apache 国密版
wget -c https://www.wotrus.com/download/apache-2.4.39_gm.tar.gz --no-check-certificate

#下载国密模块
wget -c https://www.wotrus.com/download/wotrus_ssl.tar.gz
#解压已下载的 wotrus_ssl 压缩包
tar -zvxf wotrus_ssl.tar.gz 
#解压已下载的 pache-2.4.39_gm 压缩包
tar -zvxf apache-2.4.39_gm.tar.gz 
#进入解压后的pcre-8.43文件夹并指定编译目录路径。
cd httpd-2.4.39_gm/
./configure --prefix=/usr/local/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork --with-zlib --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-ssl=/usr/local/gmssl 
#编译安装 Apache
make && make install

5.配置示例(国密单向自适应)

进入 /usr/local/httpd/conf 目录,按照以下步骤编辑 httpd.conf 文件:
请去掉 #ServerName www.example.com:80 前的 #。
请去掉 LoadModule ssl_module modules/mod_ssl.so 前的 #。
请在 Listen 80 前加 # ,只开放433 端口
请在 #Include conf/extra/httpd-ssl.conf 下增加 Include conf/ssl.conf 文件内容后保存并退出。
在 /usr/local/httpd/conf 目录下,新建一个 ssl.conf 文件,添加如下配置:
Listen 443
<VirtualHost *:443>
#填写证书名称
ServerName demo1.gmssl.cn
#填写网站文件路径
DocumentRoot website根目录
#启用 SSL 功能
SSLEngine on
SSLCertificateFile "/usr/local/httpd/conf/extra/demo1.sm2.sig.crt.pem"
SSLCertificateKeyFile "/usr/local/httpd/conf/extra/demo1.sm2.sig.key.pem"
SSLCertificateFile "/usr/local/httpd/conf/extra/demo1.sm2.enc.crt.pem"
SSLCertificateKeyFile "/usr/local/httpd/conf/extra/demo1.sm2.enc.key.pem" 
# sign 和 encrypt 配置中的 .key 为同一个
#请按照以下协议配置
SSLProtocol all -SSLv2 -SSLv3
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
SSLCipherSuite SM2-WITH-SMS4-SM3:ECDH:AESGCM:HIGH:MEDIUM:!RC4:!DH:!MD5:!aNULL:!eNULL
SSLHonorCipherOrder on
<Directory "website根目录">
Options -Indexes -FollowSymLinks +ExecCGI
AllowOverride None
Order allow,deny
Allow from all
Require all granted

相关国密证书可以在https://www.gmssl.cn/gmssl/index.jsp生成测试版或直接下载测试版证书。

6.运行

/usr/local/httpd/bin/httpd -t

若提示 Syntax OK,则表示配置正常,可以启动 Apache 服务器。

若提示非 Syntax OK,请您重新配置或者根据提示修改存在问题。

执行以下命令启动 Apache 服务器

/usr/local/httpd/bin/httpd -k start

7.国密SSL 网站访问

通过HOST 文件绑定域名指向后,使用支持国密协议的浏览器访问

而使用非国密浏览器连接该网站会报错。

0x2 安装sqli-labs 测试环境

1安装PHP 环境

wget https://www.php.net/distributions/php-7.3.5.tar.gz
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/httpd/bin/apxs --with-mysqli
Make install

2.下载sqli-labs到 apache 网站目录下

git clone https://github.com/skyblueee/sqli-labs-php7

 

 

 在sql-connections/db-creds.inc中 设置数据的用户名和密码,点击Setup/reset Database for labs.

0x3 下载GMPoxy

https://www.gmproxy.cn/下载 GMPoxy,运行 GMPoxy

0x4 SqlMap 测试国密SSL

测试靶场:https://xxxxxxx/sqli-labs-php7/Less-1/?id=5

sqlmap.py -u "https://xxxxx/sqli-labs-php7/Less-1/?id=5" -batch

如果我们直接访问测试国密SSl,会出现SSL 连接错误。

这是需要启用gmproxy 国密代理功能,将 --proxy参数 设置为http://127.0.0.1:8443

sqlmap.py -u "http://xxxxx/sqli-labs-php7/Less-1/?id=5" --proxy=http://127.0.0.1:8443 -batch

 

 

 此时 Sqlmap 已经检查到了注入漏洞。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值