HTB-baby~
HTB-baby~
- HTB-baby interdimensional internet
- HTB-looking glass
- HTB-sanitize
- HTB-baby auth
- HTB-baby nginxatsu
- HTB-baby WAFfles order
- HTB-baby todo or not todo
- HTB-baby BoneChewerCon
- HTB-Full Stack Conf
HTB-baby interdimensional internet
主页面。
看源代码发现/debug。
calc函数,获取recipe,然后定义一个garage字典,并且会让calc函数内的garage去外面寻找全局变量garage。不过对其搜索可以发现没有找到相应变量。然后exec,让括号内的变量作为python命令执行。
经过测试知道此情况下的garage对exec执行并没有影响。
所以我们只需要能够控制recipe就可以利用exec。接着看recipe变量在什么地方被定义的。GCR,函数内部还有一个federation函数。
它的作用就是给ingredient随机赋予一个十位小写字符串。
这一长串的作用是,首先生成一个范围是1-69的数和另一个范围是1-69的数做加减乘的字符串,比如3*6、3+1不是18、4。接着和上面生成的ingredient以ingredient = 生成的加减乘字符串格式赋给recipe。
例子。
接着如果是POST方式,就会获取我们输入的ingredient和measurements来进行赋值。然后丢进calc操作。
给了GET或POST两种方式。
OK,准备就绪,开始吧。可能会对此会感到很困惑,为什么exec会执行而不会因为有rick =的存在不执行呢?
因为官方文档写到这样一句话。
有了123了。
__import__('os').popen('cat flag').read()
HTB-looking glass
没有对输入过滤,直接在IP后面加;id
,;可以连续输入linux命令。
HTB-sanitize
HTB-baby auth
注册一个test用户,抓包发现我们获得了一个PHPSESSID。
对其解码发现如下。
eyJ1c2VybmFtZSI6ImFkbWluIn0=,覆盖掉原有cookie即可。
HTB-baby nginxatsu
注册个账号登陆,有一个可以自己配置nginx配置文件的功能。
随意配置后最底下会出现配置出来的文件。
这是全局块,用来配置全局指令。
events块,用来配置nginx服务器或与用户的网络连接。
http块,用来配置日志、服务、缓存、代理等。
server块,用来配置虚拟主机相关参数。
location块,用于配置请求路由以及处理各种页面。上面还有一排小字不希望/storage里泄露一些东西。
具体nginx可自行查阅理解,此处不做过多介绍。去访问/storage目录。
文件如下。
对获得的hash进行判断。
使用hashcat。
HTB-baby WAFfles order
源码分析。index.php里可以发现有两条分支。
GET就是正常加载网站。
POST是我们点击order使用的方式。
而POST会指向/api/order,并且使用OrderController.php里的order函数。
OrderController.php的order函数里面又有两条分支。
一条是以json格式传输。
一条是以xml格式传输。
搜索xml injection 可以知道一个叫XXE注入的攻击(正好和网站标题一致)。
开始构造xml注入。
不知道为什么没有响应。
以后再来试试。
HTB-baby todo or not todo
阅读源码知道有一行注释。
他叫我们不要用,我们就使用看看。
未定义,再去看看注释还有相关代码。
修改为getTasks(‘all’)
不过很快啊,出现的flag就刷新没了,也是因为这段代码。
开启burp suite抓包。
flag就在底下。
HTB-baby BoneChewerCon
文字描述说因为人太多,关闭了注册功能,如果还是输入并提交就会出现报错。
不过这个报错界面过于详细,以至于我都看到flag了。
HTB-Full Stack Conf
既然都说了弹一个alert。