实战案例三则分享(含人脸绕过)

admin 2026-02-02 00:35:19 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文分享三个渗透测试实战技巧:利用前端脚本批量生成加密字典;结合APIKit与autodecoder插件修复接口路径冲突并自动化测试;利用人脸照片绕过移动端OA登录,复现SSO凭证。文章强调了工具组合运用与细节记录的重要性。 综合评分: 87 文章分类: 渗透测试,实战经验,WEB安全


cover_image

实战案例三则分享(含人脸绕过)

听风安全

2025年8月18日 10:30 北京

以下文章来源于only security ,作者f0ng

only security .

分享日常笔记、所思所想

免责声明

由于传播、利用本公众号听风安全所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号听风安全及作者不为承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!

公众号现在只对常读和星标的公众号才展示大图推送,

建议大家把听风安全设为星标,否则可能就看不到啦!


很久没写文章了,分享一下一些小技巧

主要通过三个案例来分享下

  • 0x01 批量生成加密的用户名、密码
  • 0x02 接口测试下的autodecoder妙用
  • 0x03 渗透测试下的人脸照片的妙用

0x01 批量生成加密的用户名、密码

0x001 背景

现在遇到过很多站点,登录都用到了加密,但是我们如何去快速的生成加密后的字典,是个比较麻烦的事情

后续笔者就想过通过前端去批量生成,通过在前端新增一个文件选择框,选择字典

然后通过批量加密操作,将字典中的明文加密,再选中copytest批量复制下来

0x002 案例

这里可以举一个较为简单的案例

0x0001 生成前端按钮

首先需要加载前端的两个按钮,文件选择框与复制框,如上图所示

有两个途径,一个是通过poc2jar生成,一个是加载油猴脚本

  • poc2jar

将红色框住的复制到控制台执行

  • 油猴脚本
// ==UserScript==
// @name         Batch encode
// @namespace    http://tampermonkey.net/
// @version      2024-11-26
// @description  Batch encode
// @author       f0ng
// @match        https://*/*
// @match        http://*/*
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant        unsafeWindow
// @run-at       document-start
// ==/UserScript==

(function() {
    console.log("location.hostname:",location.hostname)
    window.total
    window.arr
    var newInput =document.createElement("input");
    newInput.type= "file";
    newInput.id="inputtest";
    document.body.insertBefore(newInput,document.body.firstChild);
    const fileSelectortest = document.getElementById('inputtest');
    fileSelectortest.addEventListener('change', (event) => {
    const fileList = event.target.files[0];
    const reader = new FileReader()
    reader.readAsText(fileList,'utf8')
    reader.onload = ()=>{
    total = ""
    if (reader.result.includes("\r\n")){
    arr = reader.result.split('\r\n');
    console.log(arr.length)
    }
    else{
    arr = reader.result.split('\n');
    console.log(arr.length)
    }
    }
    });

    var newButton = document.createElement("button");
    newButton.id="copytest"
    newButton.innerHTML="copytest"
    document.body.insertBefore(newButton,document.body.firstChild);
    newButton.addEventListener('click',function(){
&nbsp; &nbsp; // &nbsp; &nbsp;for&nbsp;(let&nbsp;i = 0; i < arr.length; i++) {
&nbsp; &nbsp; // &nbsp; &nbsp;total = total &nbsp;+&nbsp;'1111\r\n';}
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var aux = document.createElement("textArea");
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; aux.value=total;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; document.body.appendChild(aux);
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; aux.select();
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; document.execCommand("copy");
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; document.body.removeChild(aux);
&nbsp; &nbsp; })
&nbsp; &nbsp; // debugger;
&nbsp; &nbsp; var _constructor = unsafeWindow.Function.prototype.constructor;

&nbsp; &nbsp; unsafeWindow.Function.prototype.constructor =&nbsp;function() {
&nbsp; &nbsp; &nbsp; &nbsp; console.log(_constructor.apply(this, arguments));
&nbsp; &nbsp; &nbsp; &nbsp; console.log("hook!!!!!");
&nbsp; &nbsp; &nbsp; &nbsp; var fnContent = arguments[0];
&nbsp; &nbsp; &nbsp; &nbsp;//&nbsp;if&nbsp;(fnContent) {
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; console.log(fnContent);
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// &nbsp; }

&nbsp; &nbsp; &nbsp; &nbsp; // Execute the normal&nbsp;function&nbsp;constructor&nbsp;if&nbsp;nothing unusual is going on
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;return&nbsp;_constructor.apply(this, arguments);
&nbsp; &nbsp; }
&nbsp; &nbsp; })();

可以看到有两个按钮生成

0x0002 找到加密函数

这里需要人工进行逆向,找到加密的函数,这里是

$('#Password').val(encrypt.encrypt($('#Password').val()));

实际上的加密函数是encrypt.encrypt($('#Password').val()),因为只需要获取到加密的值,所以填充到poc2jar里面就是encrypt.encrypt(#str#)

0x0003 生成加密后的字典

接着在页面中点击选择文件加载字典

选中以后控制台会出现字典的密码数目

然后点击网站的登录(在debug模式下),这里是为了可以调用加密逻辑

这时候在控制台复制如下框住的

进行执行

可以看到已经出来加密的结果了,直接复制到output框,点击复制处理后的结果

粘贴出来的就是批量加密后的字段了

0x02 接口测试下的autodecoder妙用

0x001 背景

有次做项目,遇到了一个接口,但是时间有限,想很快速的过一遍,来方便查看是否有漏洞,但是一直出现404的问题,实际上笔者对接口进行拼接是可以正常访问的,后续配合自写工具的autodecoder对接口成功进行了自动化测试。

0x002 案例

遇到个接口文档,用APIKit进行测试,但是发现全是404

大概率是文档的baseurl的问题,仔细看下 原来是basePath和api的路径冲突了

这样的话,肯定会导致路由404,两个api拼接,肯定出问题

如果是proxy模块的话,可以直接使用burp的替换模块,但是APIKit发的包属于是Extender模块,所以没法用

这时候可以使用autodecoder来进行替换,配置下

记得勾选以及保存

再次扫描

洞来!

PS:这里其实也可以通过autodecoder配置参数,比如把APIKIT的参数test替换成test',快速查看一遍接口是否有sql注入等;另外autodecoder有自动解码的能力,如Burp一个很大的问题无法自动解码unicode,使用autodecoder可以解决这个问题。

0x03 渗透测试下的人脸照片的妙用

0x001 背景

做一个项目的时候遇到的很有灵感的想法,实践了发现可行度很高,可以作为一种渗透测试的办法

0x002 案例

首先开局爆破某oa,进去一个账号,这里比较细节的就是,这个oa有人脸照片,先mark下

后面也就是坐牢了,收集了很多这个单位的其他资产,发现没法再爆破进去了

看到一个手机端OA,直接下载

下载以后打算是爆破再进去的,发现有个人脸识别,那我直接拿人脸照片行不行呢

没想到,直接登进去了?!

看到数据包,发现还是个cas登录请求,域名是sso,一看就是sso框架进行登录的,但是怎么在电脑端进行利用呢

打开burp,把这个请求的数据包在电脑端重现一下

再粘贴到代理bp的浏览器,访问一下,凭证就有了

就可以愉快地测试其他sso登录以后的站点了

0x03 总结

  1. 有些时候很多站点其实不需要专门为它写一个脚本去加密,用上几行js代码,打个断点,加载下文件,5分钟左右可以生成一批加密后的字典
  2. 单个工具做不到的事情,工具与工具相叠加能起到事半功倍的效果,如何去扩展思维很重要
  3. 渗透测试过程中遇到的一些小的细节要记录下来,如本文案例提到的人脸照片,诸如此类,还有账号命名特点,密码规则,参数名等等

0x04 参考

https://github.com/API-Security/APIKit 【APIKit-Burp接口测试插件】

https://github.com/f0ng/autoDecoder 【autodecoder】

https://github.com/f0ng/poc2jar 【poc2jar】

不可错过的往期推荐哦

![](https://mmbiz.qpic.cn/mmbiz_gif/AFgdiaw95AaNY572lpficoa3l1cVE17VfZ4WDWhcMYWJbibW3UvQP4H2Izrsic6ZSlqnw3DtMzjzJHvuhGJ2V6CF2A/640?wx_fmt=gif&wxfrom=5&wx_lazy=1&retryload=1&randomid=tfibc7o0&tp=webp#imgIndex=24)

利用解析差异复活某凌OA前台RCE

攻防演练中如何快速抢分

敏感行业下的Fastjson打点实战:攻破加固N次的“古董级”系统

记一次对某涩涩APP的逆向过程

破译之眼:AI重构前端渗透对抗新范式

渗透测试-从下载漏洞到前端加解密+签名校验拿下sql注入

记一次帮丈母娘破解APP,满满的全是思路

APP渗透|0基础师傅也可以通杀测试金融APP了

点击下方名片,关注我们

觉得内容不错,就点下“”和“在看

如果不想错过新的内容推送可以设为星标


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:听风安全 《实战案例三则分享(含人脸绕过)》

评论:0   参与:  0