应用:系统中开展https请求应用通常在获得远程照片、网页页面分亨保存等业务场景,在代码审计时可重点关注风险变量。
实战演练:UeditorSSRF漏洞
源代码中的validHost方式对url地址开展分辨,如果不正规,就提醒“被阻止的远程服务器”;当符合条件后会应用validContentState方式回到返回的状态是不是为200,若不是200,则提醒“远程桌面连接不正确”,假如url地址无法打开,则提醒“爬取远程照片不成功”,这就间接性造成了SSRF漏洞。
我们在源代码中找寻captureRemoteData中读取了validHost方式,我们可以见到captureRemoteData中应用了HttpURLConnection。
随后capture方式中读取了captureRemoteData,在async中读取了capture方式。
我们进到到async中发觉,要想读取capture就须要符合条件为actionCode为ActionMap.throw_img,当actionType值为catchimage,即action主要参数相匹配为catchimage时,才很有可能开启SSRF漏洞。
很有可能有点儿绕,但容易归纳便是
ction=catchimage->async->capture->captureRemoteData->validHost(SSRF)。
9、应用带有已知漏洞的模块
应用:可以应用某些搜索平台回到应用软件选定的第三方平台模块是不是具有漏洞。
框架有关:S2、spring、Spring
分布式数据库有关:JBoss、Weblogic、Jenkins
Java库有关:Fastjson、Jackson
第三方平台编辑软件:UEditor、KindEditor、FCKeditor
实战演练:我们可以在项目的tpu.xml文件中回到
10、请求轰炸
关键字:手机短信、客户找不到、手机验证码、电子邮箱、上传
应用:应用软件中很有可能具有很多接口用于做某些如上传手机验证码、分辨客户是不是具有,这种接口功能如果可以开展反复请求便会造成某些问题漏洞。
实战演练:
未对群发短信做频次限制造成短信轰炸漏洞
当账户输入不正确后,提醒“账户找不到”,造成登录名可枚举类型漏洞
11、越权
应用:在对某些数据信息开展增删的情况下,要是没有身份验证,便会造成越权漏洞,通常越权漏洞须要按照具体的项目管理流程来找寻发掘。
实战演练:下面的图便是开展删掉应用的情况下,并没有开展身份验证,立即配对到id号就开展了删掉。
12、网页地址跳转漏洞
风险变量:
sendRedirect
getHost
redirect
setHeader
forward
应用:重点找寻风险变量,随后回到是不是对跳转地址做有限制。
归纳
这篇文章仅仅归纳了一下下我平时开展Java代码审计的情况下常见的构思,应属基本中的基本。