0x01 简介
通过在fofa上搜索可能存在通用产品的公司,原理是判断网站标题数目以及独立IP数达到一定条件时将该标题以及公司名称导出。
如果想挖掘cnvd证书,可导出注册资金大于5000w的公司名称到company.txt文件中,使用这个脚本收集通用系统。
0x02 部署及使用
完成代理池部署后,安装第三方库
pip install -r requirements.txt
然后将公司名称存入company.txt
文件,启动脚本程序
python query_fofa_for_cnvd.py
结果将保存到result.xlsx
文件中
详见https://github.com/onis4n/query_fofa_for_cnvd
0x03 js逆向
在浏览器打开开发者工具(F12),点击【网络】,然后重新访问站点
找到目标请求
点击【发起程序】列的js文件
发现它定位到了一个static子域名下,经过在此处进行断点,未发现相关信息,在该文件搜索“sign”发现9个但似乎都不是
转而在static子域名下的js文件搜索“sign”,“sign”数量是不是太多了喂
没办法,那就试试其它参数名“app_id”,然后再35ab0ab.js找到3个匹配项,并且看到了RSA私钥
打下断点进行调试
看了这里就是构造请求的代码了
进一步跟进函数,得到了签名的明文r,下一步就是签名了
已知信息:
a)明文r;
b)签名算法RSA;
c)RSA私钥;
d)RSA-SHA256;
e)密文为base64编码
至于填充模式这里用的PKCS#1 v1.5(这是最常见的RSA签名填充模式之一,也是历史上最早的填充模式之一。)
对于学过密码学的大哥来说“木大木大木大”。
那小白怎么办啊喂!
呆胶布!我们小佬看了这篇文章后,也可轻松应对小小的RSA签名了噢耶。
RSA(Rivest-Shamir-Adleman)是一种非对称加密算法,用于加密和数字签名。虽然它们都基于相同的数学原理,但在用途和操作上有一些关键的区别。
RSA加密是使用公钥加密,RSA签名是用私钥加密。
所以验证的时候,记得使用RSA签名算法工具
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)