以前打过的一个靶场,今天闲来无事就把步骤什么的都给写一遍。话不多说,开整~
步骤
打开URL得知是一个登录的界面
尝试使用弱口令,万能密码登录都失败,换其他思路,先扫目录吧。
其中robots.txt下面的内容是:初步判断这里应该有一个flag。
还有这里的1.txt,内容是"请认真核查在改正" 先做为一个信息记录来收集着吧,说不定后期能用到
其他路径下的文件访问都是提示"您没有权限访问"。
通过nmap扫描端口得知就开放了22和80端口,这里可以爆破22端口,也算是一个思路吧,不过我这里优先来爆破80端口,加载常用的弱口令字典 通过burp来进行爆破
最后被爆破出来的账号和密码尽然是user 123456 随后登录进来如下提示:
意思就是当前的账号是user,请用admin的账号进行登录,尝试爆破admin的密码一直无法爆破成功,所以这里显然不是让咱们通过爆破来获取到flag的,这里我们修改下我们的cookie为admin试试看,这里的值默认是user,我们修改为admin后刷新页面,成功切换为admin用户
获得第一个:
flag{greedisgood999999}
接下来点击管理雇员,界面如下,通过界面我们可以判断出是存在文件包含的,将根目录的1.txt包含到了这个页面。那么我们通过扫目录得知根目录下有一个flagssspppoookkk.php,所以这里我们也可以通过文件包含的形式来获得第二个flag
先来尝试包含**/etc/passwd**,发现是可以成功的,但是直接包含flagssspppoookkk.php是无法在页面显示出来的,所以这里需要通过php伪协议中的base64的方式来进行包含
代码如下:
php://filter/read/convert.base64-encode/resource=flagssspppoookkk.php
进行base64解密,内容为
<?php
$flag='flag{include_file_is_easy}';
echo 'flag is ';
?>
到这里我们就获得了第二个flag了。
然后回到主页面,我们可以看到增加雇员和图片管理的功能,我们尝试看是否可以通过图片管理功能直接上传webshell。
构造我们的图片马来进行上传测试时发现,这里只能传jpg格式的图片,gif的无法上传绕过,但是jpg的上传了以后,会回显上传成功路径,但是访问的时候确实404 not found后来通过测试得知,将上传文件后缀修改为php3,即可直接返回第三个flag
flag{webshell_success}
最后确定了这个上传点无法绕过上传webshell。
尝试判断其他功能位置是否存在SQL注入,后来想到了我们是通过修改cookie来登录admin账号的,所以在cookie的地方可能说不定存在注入呢?
构造语句:sqlmap -u "http://192.168.107.147/menu.php" --cookie "user=123" --level 2
得知cookie处确实是存在注入点的,查看当前权限是否为dba,判断确实是dba权限。
直接通过sqlmap执行--os-shell
获得交互式终端,发现写入shell失败,提示无法在根目录中写入文件。
这里需要注意的是,如果是在dba权限下,根目录中无法写入文件的话,那么此时可能是由于根目录设置的无法写入。所以才导致我们写入文件失败。
此时我们可以通过sqlmap来执行sql语句查询当前可写路径,直接执行:sqlmap -u "http://192.168.107.147/menu.php" --cookie "user=123" --level 2 --sql-shell
返回sql语句交互界面
构造sql语句:select @@secure_file_priv
查询可写目录
知道了可写目录以后,然后执行–os-shell输入该路径后,成功写入webshell!
进入网站根目录拿到最后一个flag