freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

使用GMProxy+ SqlMap进行国密SSL网站安全检查
2021-08-09 16:38:34

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

越来越多的政府、企事业单位的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 已经检查到了注入漏洞。

# SQL注入 # SqlMap # Burp Suite # 国密
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录