扫描获取靶机ip
nmap扫描开放的端口服务
访问80端口
看看网页中存在的功能,有一个查询功能,还有一个登录,一般这种地方是比较容易出现漏洞的
根据名字查询一下,是有结果的
判断一下是否存在sql注入,and 1=1有结果
and 1=2没结果,说明存在sql注入
是post型的,用burp抓包保存下来再使用sqlmap跑,成功获得用户名密码
sqlmap -r dc9.txt --batch -D Staff -T Users -C Password,UserID,Username --dump
登录,下面现实文件不存在,猜测可能存在文件包含
尝试参数file看看对不对
成功包含/etc/passwd,这里运气比较好,试了一次就成功了,如果不是file可以用brupfuzz一下。
接下来尝试包含日志,但是失败了。不知道怎么办了。看了wp有一个/etc/knocked.conf文件是端口敲门的(端口敲门:如果要访问22端口,必须先访问1111,2222,3333端口后才能访问22端口),看一下这个文件
看到需要访问7469,8475,9842这三个端口后才能开启22端口,依次在url中访问这几个端口,访问后看到22端口正常开启了,没访问之前是没开启的
尝试使用已知用户admin登录,是没有权限登录
之前跑sqlmap时有一个users数据库,试试用其中的用户名密码
sqlmap -r dc9.txt --batch -D users -T UserDetails -C username,password --dump
分别保存用户名密码,然后使用hydra爆破一下
成功爆破出来三个用户名密码,ssh登录。查看都没有可以使用root身份执行的文件
看了wp才发现使用ls -la查看隐藏的文件,在janitor的家目录下发现一个和其他两个用户不一样的地方,多了一个目录
进入这个目录看到一个密码文件
把这些密码写入到刚才的密码文件中,使用hydra爆破
继续ssh登陆,登陆后发现有一条命令可以无root密码已root身份执行
尝试执行这个文件
发现无法执行,提示读取test.py文件,使用find查找一下这个文件
find / -name test.py 2>/dev/null
查看一下第一个test.py
sys.argv
test.py的内容是如果sys.argv的参数不为3输出提示,如果是3读取第二个参数的内容写到第三个参数中。
这里设置一个root权限的用户追加到/etc/passwd中去
首先openssl加密一个密码(-1是md5加密,-salt是随机加入一个数作为文件内容加密)
根据/etc/passwd的格式写一个文件
执行test文件(要使用sudo命令)
切换到root目录查看flag
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。