[Black Watch 入群题]Web2

/ 0评 / 0

[Black Watch 入群题]Web2

这题算是我所做出来的最最最最最难的题了
登录处有注入,fuzz后发现过滤了一吨符号和函数,需要骚知识绕过,遍历百度,在SWPU2019 web6中发现了解法:sql注入中的with rollup
使用with rollup 将token置空,\逃逸单引号--+闭合(这里因为#被过滤了还想了好久怎么闭合-我是zz)
因为过滤了or导致password不能使用,所以只能置空token
username=\&password=|| 1 group by token with rollup having token is NULL--+&question=1
登录成功后是一个

然后就一点思路都没有了,根据题目描述
2、题目靶机无法访问外网,如有需要请在本站开一个小号然后运行 Basic 类 Linux Labs 靶机,靶机内网可以互相访问。
3、flag 和入群密码在根目录下。
我们知道可能要利用工具把相应信息反弹到靶机中。但是我们现在连flag的名字都不知道,如何获取到flag的名字呢?
猜测这题存在文件遍历?系统命令执行?
继续测试。发现在添加数据中有查看已添加的数据且访问的是一个文件夹地址。这里会不会存在文件遍历呢??
这里试了亿次才试出来,在查看数据的时候进行抓包:

可以发现这里的dt即data请求了alldata。又经过测试后发现查看下一层为name=??。那么我们可以不可以这里更改name的值成我们所需要的地址根目录呢?
再试亿次

可以发现成功返回了flag和password的文件名,我们怎么读取呢?
又测试了一吨以后发现网页上读不出来我们需要的文件。
本题到目前为止还有一个条件没有用了。使用内网的linux,而本题之前还有一个考点是sql注入,那么用sql能不能读文件呢??
遍历百度发现一个工具叫:rogue_mysql_server。我们的页面上正好有

只要包含我们需要的文件就可以了
MYSQl任意文件读取
这篇文章已经说的很详细了,这里就不在赘述了。把需要的文件包含进去就可以了
虽然执行过程中会报错且网页提示链接错误,但是数据已经被包含进去了
执行后查看mysql.txt发现flag确实被包含进去了

那么password也很容易的被包含进去了

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注