vulfocus/hms-cve_2022_25491漏洞复现

pc0000001   ·   发表于 2022-10-18 15:04:48   ·   漏洞文章
  1. 通过镜像描述信息,知道存在sql注入的点在哪里。

  2. 通过抓包,可以看到,账号密码属于明文传输,使用万能密码进行绕过,可以正常绕过


  3. 放包之后,正常登陆到系统中,从此可看出此系统当前版本存在sql注入的问题
  4. 这里可以直接使用sqlmap跑,拿到数据库名,而sqlmap判断出的是一个时间注入。再次使用sqlmap跑出数据库账号密码

  5. 拿到账号密码后,使用账号密码直接连接数据库。Sqlmap在跑mysql数据库的时候,因为是盲注类型,会比较慢,我直接结束,并使用mysql一般都存在的表来进行直接查询,比如python sqlmap.py -r 01.txt -D mysql -T user -C user,password —dump —batch,能够跑出root账号和密码MD5,经常使用phpstudy的一般可能会有印象,这个MD5是默认密码root的md5值,所以相当于账号密码就是root

  1. 然后使用数据库账号密码进行远程登录,

  1. 因为是dba权限,可以直接使用sqlmap的—os-shell命令试下能不能直接拿shell,但是失败了。失败的原因可能是:
    ① 实际路径不对,
    ② 没有写入的权限
    ③ Secure_fire_priv可能存在值,但是实际查询后,没有值(可以进行导入导出,没有限制)

  1. 那么实际就只有两种情况,实际路径不对,或者当前账号对路径没有写入得权限。实际路径我们可以使用nmap扫描下当前访问端口,查看中间件为apache,然后系统是debian,然后网上查询下debian系统的网站默认路径,一般是在/var/www下,所以使用sqlmap,再次泡一下路径,最后确认的确是没有权限写入,通过mysql管理工具远程连接查询,也可以发现没有权限写入
  2. 那么只有其他方式再进行shell
    有几种思路:
    ① 使用loadfile()函数直接读取系统上/tmp下的文件(因为知道flag在/tmp目录下但是不知道文件名)(如果能够读取目录,那么就能解决了)
    ② 拿shell方式,使用mysql管理工具,在tmp下写入文件,并使用计划任务方式对tmp下上传的文件进行执行,但是计划任务的cron目录并没有写入权限(已经尝试,行不通)
    ③ 读取到/etc/passwd文件,然后搜索其他账户,试着登录或者爆破,但是本靶场并没有提供远程连接的端口,而且是一个容器(docker),所以也不可行
    ④ 搭建了本地vulfocus,然后进入了容器后查看,发现网站目录的确没有权限,且计划任务那边也没有权限,只有/tmp目录是有权限的,但是flag是一个文件,如图,只有root才有权限写入

  1. 然后查看/tmp目录,发现flag是一个文件,如果使用loadfile,就必须知道文件名,文件名就是flag,那要是知道了文件名,还查询什么???????

登录网站后台后,发现根本没有上传点,只有几个注入点,但是都已经拿到后台数据库账号密码登录了,注入点就无用了
*是否存在其他方式进行拿shell呐,或者说可以读取目录下不确定名字的文件????

用户名金币积分时间理由
Track-劲夫 70.00 0 2022-10-21 11:11:59 一个受益终生的帖子~~

打赏我,让我更有动力~

1 条回复   |  直到 3个月前 | 1382 次浏览

binaryuser
发表于 3个月前

大佬,可以具体讲解一下最终怎么获取flag吗 新手实在是没看明白

评论列表

  • 加载数据中...

编写评论内容
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.