96SEO 2026-02-20 08:38 0
现在日子越来越不好过了无论攻防、企业src还是渗透项目总能看到大量的存在加密的网站XZ师傅的前端加密靶场还是很值得做一做的环境很贴合实战会遇到的一些情况本人web小菜鸡练完之后反正是收获颇丰推荐给各位师傅。

之前自己在学习前端加解密经常遇到加密解不了的情况之后慢慢看师傅们的文章也学到了很多绕过技术于是写了个简单的靶场为之后的师傅们铺路学习,加密方式列出了我经常见的8种方式包含非对称加密、对称加密、加签以及禁止重放的测试场景比如AES、DES、RSA用于渗透测试加解密练习。
希望可以帮助到最近在学习这块知识的师傅靶场函数.很简单和实战相比还是差的有点多不过应该够入门了
http://82.156.57.228:43899/easy.php
burp自动加解密插件autoDecederhttps://github.com/f0ng/autoDecoder
这个插件可以帮忙处理常见的AES、DES、SM4、SM2、RSA等加密灰常好用
也是可以对常见的加密方式进行加密解密,这个适用的加解密方式更多如果只是用于验证加解密情况的话这个插件会方便很多
http://82.156.57.228:43899/easy.php
一个断点直接找到加密后的数据和加密前的数据向上查找发现是用AES加密
document.getElementById(username).value,password:
document.getElementById(password).value};const
CryptoJS.enc.Utf8.parse(1234567890123456);const
CryptoJS.enc.Utf8.parse(1234567890123456);const
CryptoJS.pad.Pkcs7}).toString();const
encryptedData${encodeURIComponent(encrypted)}
点击第二关抓包可以获取到两个数据包一个是服务端返回的key和iv一个是登录数据包
经过测试发现重发数据包该key和iv发现key和iv短时间内不会发生变化应该是服务端和客户端断连之前key和iv都会保持不变
{aes_key:OUd4SEqDsA1GP2l8WszZnQ,aes_iv:RQenJ2Hszn1p7Q6poVngFQ}
进入eazy.js下断点往上查看很容易获取到了publickey
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDRvA7giwinEkaTYllDYCkzujvi
NHup0XAKXQot8RixKGpB7nr8AdidEvuowVCxZwDK3hlcRGrrqt0Gxqwc11btlM
DSj92Mr3xSaJcshZU8kfj325L8DRh9jpruphHBfh955ihvbednGAvOHOrz3Qy3Cb
经确认为RSA加密RSA加密需一个公钥解密需要私钥没有私钥只能尝试加密
document.getElementById(username).value,password:
document.getElementById(password).value};const
CryptoJS.lib.WordArray.random(16);const
CryptoJS.lib.WordArray.random(16);const
CryptoJS.pad.Pkcs7}).toString();const
JSEncrypt();rsa.setPublicKey(-----BEGIN
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDRvA7giwinEkaTYllDYCkzujvi
NHup0XAKXQot8RixKGpB7nr8AdidEvuowVCxZwDK3hlcRGrrqt0Gxqwc11btlM
DSj92Mr3xSaJcshZU8kfj325L8DRh9jpruphHBfh955ihvbednGAvOHOrz3Qy3Cb
rsa.encrypt(key.toString(CryptoJS.enc.Base64));const
rsa.encrypt(iv.toString(CryptoJS.enc.Base64));
被加密的参数是formData也就是{username:admin,password:123456}经过AES加密且加密使用的key和iv是16位随机数、得到encryptedData
之后对key和iv进行rsa加密得到encryptedKey和encryptedIv
现在想办法将随机16位的key和iv进行固定右键选择替换内容使用本地替换的方式将key和iv固定下来就选择之前第一关的key和iv即可
再次下断点查看是否修改成功可以看到已经修改成功key和iv变成了1234567890123456
成功替换encryptedData其中加密的key和iv经过测试似乎不用替换也能通过就不进行加解密操作了
可以看到就是简单的DES加密key和iv都使用了username的值
可以看到有两个参数不清楚是啥分别是noncesignature还有个时间戳分析下js看看依旧是js中下断点发包
document.getElementById(username).value;const
document.getElementById(password).value;const
Math.random().toString(36).substring(2);const
CryptoJS.HmacSHA256(dataToSign,
secretKey).toString(CryptoJS.enc.Hex);
signature由dataToSign经SHA256加密生成secretKey为固定值be56e057f20f883e
SHA256在autoDecoer中没有尝试自写发包器其中nonce可以随机生成也可以固定
hmac.new(secret_key.encode(utf-8),
digestmodhashlib.sha256)h.update(data_to_sign.encode(utf-8))return
http://82.156.57.228:43899/encrypt/signdata.php
82.156.57.228:43899,Content-Length:
http://82.156.57.228:43899,Referer:
http://82.156.57.228:43899/easy.php,Accept-Encoding:
PHPSESSIDq3nlpgst4h9kpdiklq2rcbrnc1,Connection:
headersheaders)print(response.status_code)print(response.text)time.sleep(1)
通过第一个数据包获取signature第二个数据包发包时加上这个达到加签key在服务端的效果
获取对应的signature值丢到第二个包中依旧是自写脚本即可不难这里不演示了。
document.getElementById(username).value;const
document.getElementById(password).value;const
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDRvA7giwinEkaTYllDYCkzujvi
NHup0XAKXQot8RixKGpB7nr8AdidEvuowVCxZwDK3hlcRGrrqt0Gxqwc11btlM
DSj92Mr3xSaJcshZU8kfj325L8DRh9jpruphHBfh955ihvbednGAvOHOrz3Qy3Cb
jsEncrypt.setPublicKey(publicKey);const
jsEncrypt.encrypt(data.toString());if
document.getElementById(username).value;const
document.getElementById(password).value;const
现在是要寻找random参数怎么来的,根据上面js可知是通过encryptedTimestamp来的encryptedTimestamp是通过时间戳经过RSA加密来的
RSA.import_key(public_key)cipher
PKCS1_v1_5.new(key)encrypted_data
cipher.encrypt(data.encode(utf-8))return
b64encode(encrypted_data).decode(utf-8)def
generate_request_data():生成random字段username
KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDRvA7giwinEkaTYllDYCkzujvi
NHup0XAKXQot8RixKGpB7nr8AdidEvuowVCxZwDK3hlcRGrrqt0Gxqwc11btlM
DSj92Mr3xSaJcshZU8kfj325L8DRh9jpruphHBfh955ihvbednGAvOHOrz3Qy3Cb
ocDbsNeCwNpRxwjIdQIDAQAB\n-----END
encrypted_timestamp}print(data_to_send)return
http://82.156.57.228:43899/encrypt/norepeater.phpheaders
82.156.57.228:43899,Content-Length:
http://82.156.57.228:43899,Referer:
http://82.156.57.228:43899/easy.php,Accept-Encoding:
generate_request_data()response
datajson.dumps(data))print(response.text)if
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback