前言
最近遇到DWR挺多,分享一个案例从FUZZ参数到SQL注入的全过程。
正文
起初是在登陆页burp里面有一个关于功能点控制器的js文件,然后这里其实遇到了一个坑,后面再讲。
这里在js里面拿到了scriptName和methodName,可以看这篇文章简单去了解一下。
JaveWeb中常见的信息泄漏——DWR类测试地址
tkswifty,公众号:SecIN技术平台原创 | JaveWeb中常见的信息泄漏——DWR类测试地址
POST /DwrProject/dwr/call/plaincall/dwrtest.findByUserId.dwr HTTP/1.1
Host: ip:port
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:62.0) Gecko/20100101 Firefox/62.0
Accept: */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: text/plain
Content-Length: 227
Cookie: JSESSIONID=F0DE72C197AFEF273E84AC3686F4F8C7; DWRSESSIONID=7viforTWTj$BVBJSxv99$V*hVgn
Connection: close
callCount=1
windowName=
c0-scriptName=dwrtest
c0-methodName=findByUserId
c0-id=0
c0-param0=number:1
batchId=1
instanceId=0
page=%2FDwrProject%2Fdwr%2Ftest%2Fdwrtest
scriptSessionId=7viforTWTj$BVBJSxv99$V*hVgn/*YsBVgn-XOm0BUHfr
直接用他的参数发现请求之后报错了,这里其实跟get请求里面的内容没有关系,get请求里面.dwr前面两个值随便写都不会影响你的请求内容,这里出问题的主要还是我们自己加了一个请求参数param0影响的。
删掉param0之后再次请求,成功获取到SMTP配置信息,说明这几个请求都是未授权的。
但是仅仅于此其实危害都不严重,这里看JS的命名其实我们可以去跑字典看看能不能跑出其他功能点的JS文件。
拿出祖传字典跑了一下,收获还是挺多,有个备份的执行了好几次都没成功索性就放弃了,然后去看这个User。
其实坑也就在这,其实你访问登陆页面的时候他就会加载User控制器的这个js文件当时我没往下翻。。
摸了一圈发现这几个请求都没什么利用的都是一些新增和更新的需要很多参数,这里没拿到参数不好搞,然后看到这个关于找回密码的。
添加一个请求参数number/string类型都可以,他提示没有设置密码提示问题,最开始以为这里答案和问题能一起返回,但是去爆破了一圈用户名和ID发现都没设置这个东西。
无奈之际,随手打了个单引号,这不就出了吗。
500救济金到账。下班。
最后
最后其他的参数跑出来也泄露了不少信息,后续拿到账号密码可以继续在后台利用。
原文始发于微信公众号(蓝云Sec):记某SRC从FUZZ测试到SQL注入的案例
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论