web漏洞-java安全(41)

web漏洞-java安全(41)_第1张图片

 这个重点是讲关于java的代码审计,看这些漏洞是怎么在java代码里面产生的。

#Javaweb 代码分析-目录遍历安全问题 

这个漏洞原因前面文章有,这次我们看看这个漏洞如何在代码中产生的,打开靶场web漏洞-java安全(41)_第2张图片

 解题思路就是通过文件上传,上传文件把它应该正常上传的路径进行修改,更改他的上传路径。

查看页面源码web漏洞-java安全(41)_第3张图片

 我们正常上传一个文件,看一下他的储存路径web漏洞-java安全(41)_第4张图片

 就是箭头指向的对方。

这关的过关思路就是把这个文件上传到其他目录下面去。

而我们发现fullname是test,上传后文件的命中也叫test,我们改一下fullname为xiaodi,上传文件的名字也变成小迪了。

这时候我们试着把名字改成../xy,../是意思就是上一级,那我们这样子上传,会不会上传到他的上一级目录下面../web漏洞-java安全(41)_第5张图片

 上传一下web漏洞-java安全(41)_第6张图片

 成功了,成功过关。

这个有什么意义,我们还没有讲过目录权限解析这个东西,如果对方设置了目录解析权限,这个目录下面的文件的监听,比如一个图片的储存目录,他就可以设置不给予脚本执行权限,如果能操作储存到目录,就可以上传到别的目录,因为别的目录就可能没有设置权限。

我们看一下这关代码是怎么回事 

我们看代码重点要看,模块引用(框架,自带的等等),路由地址,静态文件(html,js等等)简易代码理解。

web漏洞-java安全(41)_第7张图片

 这个就是java一个比较知名的框架,

 这个就类似php里面的get什么的,就是接收数据,后门是变量值,web漏洞-java安全(41)_第8张图片

 在这个数据包里面就有代码中的变量。

 接受fullname值给value,在数据包里面也有显示,还有fullname的值web漏洞-java安全(41)_第9张图片

 web漏洞-java安全(41)_第10张图片

 这个mltioatfile和上面引用的名字一样,就是引用的上面的功能。web漏洞-java安全(41)_第11张图片

这就是mltioatfile声明的情况

 web漏洞-java安全(41)_第12张图片

这个代码的大概含义就是,把输入的文件赋值到输出的地方来。

#打开第三关

web漏洞-java安全(41)_第13张图片

 还是同样的绕过,不过../被修复了,

先上传一个文件看看保存路径,代码,差不多,多了一个过滤web漏洞-java安全(41)_第14张图片

 这个因为他只过滤一次,所以就可以直接用循环绕过,写为....//,这样子绕过web漏洞-java安全(41)_第15张图片

就成功了。

#Javaweb 代码分析-前端验证安全问题 

因为他的验证产生在前端,不在后端验证,

打开靶场web漏洞-java安全(41)_第16张图片

就是尝试登陆, 随便输入个账户密码抓一下数据包

web漏洞-java安全(41)_第17张图片

查看一下源码

web漏洞-java安全(41)_第18张图片

 

 tosring改编为字符串格式,equals对比括号内的内容是否相同,web漏洞-java安全(41)_第19张图片

我们该如何在黑盒情况下,获取到账户密密码,在java里面组成目录结构的相关问题,我们直接在html网站的源码页面就可以查看web漏洞-java安全(41)_第20张图片

 因为是前端验证,去看那个加载代码web漏洞-java安全(41)_第21张图片

 我们解码的时候要把/x去掉,才能解码出来

这个就是账号和密码。

我们还可以不写账号密码,直接点击登录吗,就触发前端的jscript代码,抓住数据包就可以看到账户密码web漏洞-java安全(41)_第22张图片

 这一关是告诉我们看代码,要去看那些代码,

Javaweb 代码分析-逻辑越权安全问题

web漏洞-java安全(41)_第23张图片

先登录进去,

 就会显示一些信息

web漏洞-java安全(41)_第24张图片

 查看一下这一关的过关要求

web漏洞-java安全(41)_第25张图片

 这个靶场登录之后,会展示一些用户的信息,比如账户,而这些是由网站决定的展示什么,比如密码就不会展示。

你有很多信息,但是网站会选择部分显示。而这一关是教我们可以通过数据包的发送,把本来不显示的信息,显示出来。

这一关就是让你获取不显示出来的的两个信息,该怎么操作。我举个栗子,假如他有sql语句去数据库查询,如果我在数据包里面让他去显示密码这种信息,相当于他传递过去回去查询,会查出来,就会显示出来,这个要看对方代码1会不会显示查询的其他信息,web漏洞-java安全(41)_第26张图片

 这里传过去两个参数,而这一关就会显示这两个参数的信息,就过关了,这一关的目的就是让我们知道可以通过数据包之类的查看到不显示的信息出来,

代码审计

web漏洞-java安全(41)_第27张图片

 

提交poost数据就请求括号里面的内容来。

接受attributes的数据

而我们输入好参数点的那个按钮接受attribues,代码里面接受他的变量值。

 逗号分割,如何判断是否小于2,小于2就判断失败。

 这个就是去判断他的第一个数组,是否等于不显示的参数值,等于就过关了。

下一关web漏洞-java安全(41)_第28张图片

代码审计

web漏洞-java安全(41)_第29张图片

 接受变量url。

 以斜杠分隔开,然后比对值,所有值都相等的就过关了,前三个值都有显示,但是第四个值就没有固定值, 

第四个值从括号里面的id获取来的

第四个、

 userfile是我们常说的对象,但是在这个页面的代码里没有就在上面的引用文件里面,

 web漏洞-java安全(41)_第30张图片

 就找到了,之后再把之前的值拼接到一起web漏洞-java安全(41)_第31张图片

 这个值就是答案。

这一关的想要告诉我们,就是类似于接口问题。找一个网站看一下web漏洞-java安全(41)_第32张图片

 每一个用户都有自己对应的编号,而我们换一下上面的编号就会换一个用户,就可以获取更多信息,知道用户访问地址,就可以不断更改对应值,用户的变更。

#Javaweb 代码分析-XSS 跨站安全问题

 直接看代码

web漏洞-java安全(41)_第33张图片

 

 接受answerxss1的值,

web漏洞-java安全(41)_第34张图片

数据包里面也有这个

 这个就对比是不是yes,直接在框框里面输入yes点击按钮就过关了。

打开第七关

 抓一下数据包找一下对应源代码在哪个文件里面web漏洞-java安全(41)_第35张图片

 web漏洞-java安全(41)_第36张图片

 我们再看一下靶场显示哪些数据出来web漏洞-java安全(41)_第37张图片

 显示箭头指的值。

web漏洞-java安全(41)_第38张图片

代码是有先后执行顺序的, 而根据代码来看,只要进入else里面,触发else的代码,就可以了,就不会在有field1的过滤了,所以fielad2里面不存在那些过滤的东西,把跨站语句写在field1里面,在数据包修改web漏洞-java安全(41)_第39张图片

而我们还可以不用他过滤里面的那些关键字来实现绕过,之前xss绕过文章里面有。

而将这些就是有一些漏洞java和php是一样的,没有啥变化;

#拓展-安卓 APP 反编译 JAVA 代码(审计不香吗?)

网上随便下一个apk文件,如何拿去反编译为jar文件,就是它的代码web漏洞-java安全(41)_第40张图片

添加到ic里面查看源代码,就可以进行源码分析了,如果apk里面涉及到web网站,协议就可以找关于web的漏洞, 

s

你可能感兴趣的:(java,开发语言)