环境
攻击机:192.168.96.4
靶机:ip未知
主机探测
确定靶机ip为32的主机
端口扫描
访问80端口
外围打点
在contact.php页面源码中找到了flag1
之后没啥突破
但查看网络后发现contact.php页面请求的三个js文件的文件名很有特点,猜测是base64编码
对其进行拼接发现是flag2
对flag2的内容进行解码
猜测是路径,因为服务器仅仅开放了80端口,应该不是用户名
对ip和上述路径进行拼接,并访问,得到一个登录界面
作者提示用户验证没有使用sql,而是使用的是PHP的硬编码
在PHP中硬编码存在三种方式==、===、strcmp函数
其中strcmp函数存在漏洞,当使用strcmp函数对字符串和数组进行比较的时候,PHP低于5.2的版本会返回-1
尝试利用数组登录,之前收集到的用户名有
- roger
- rmichaels
- akeith
- estone
成功登陆rmichaels用户,拿到flag3
对flag3的内容进行解密
对url的参数进行修改,发现有报错,可能存在SQL注入
使用sqlmap对其进行测试
sqlmap -u "http://192.168.96.32/imfadministrator/cms.php?pagename=home" --cookie "PHPSESSID=kde2npe0ejb05ee474afu5ksk6" --level=5 --risk=3 --dbs --batch --dump
发现一张图片的路径
访问
拿到二维码中的信息
flag4{dXBsb2Fkcjk0Mi5waHA=}
继续解码
访问这个文件,是一个文件上传的页面,应该需要进行一句话木马的上传
通过制造图片马以及对eval函数的绕过,成功上传了图片
这里还可以使用weevely工具
weevely生成php木马
修改图片后缀为gif,并且在文件内容的开始添加GIF89a来绕过内容的检测
之后成功上传
发现返回页面的源码中有注释,是文件上传后对应的文件名
使用weevely工具连接,成功拿到www-data用户的权限shell,文件的上传路径可以通过扫描后台目录得出
拿到flag5
解密flag5的内容
提权
此靶场一般有两种方式进行提权,一种是内核漏洞提权,另外一种是通过端口试探技术开启特定的端口服务,通过此程序的缓冲区溢出漏洞进行提权
但尝试了几次均不成功,水平不够,之后需要加强权限提升的能力。