2018红帽杯Web

Web1 Simple upload

下方的比赛地址:http://9d8889c69c2b4661a6dfa070bb32f96c0a9d73f58d6d457e.game.ichunqiu.com/


把cookie中的admin=0改成admin=1


随后出现上传页面

上传一个马 并把后缀更改成jsp

flag在当前大马路径下的flag.txt里面

Web2 shopping log

点开地址,右键查看源代码

更改本地的hosts文件

访问发现需要验证www.dww.com
遂增加referer: www.dww.com

然后返回japan sales
更改Accept-Language为ja

然后利用md5截断脚本算出code
脚本利用如下

最后发现9588存在

flag{hong_mao_ctf_hajimaruyo}

Web4 biubiubiu

一开始页面的URL:http://5d0dc35658884ba89d578e6bfc1323757f0bae2d97fb4ce2.game.ichunqiu.com/index.php?page=login.php
就是一个login的登陆框

查看源代码,发现提示

随便输了一个邮箱密码,竟然登进去了。。
登录后的URL:http://5d0dc35658884ba89d578e6bfc1323757f0bae2d97fb4ce2.game.ichunqiu.com/index.php?page=send.php

然后看下是啥功能吧,然后就按照例子输入http://www.baidu.com,但是并没有出现跳转之类的东西,很迷。
然后抓包看一下,也是返回同一个页面,没有变化。

这个时候我想会不会有任意文件读取之类的漏洞?因为提示是users.sql
我就看看会有会存在任意文件下载,后面再打组合拳

访问:http://5d0dc35658884ba89d578e6bfc1323757f0bae2d97fb4ce2.game.ichunqiu.com/index.php?page=users.sql
真的成功了,出现users.sql文件

出现这个,基本判断就是文件包含漏洞了。

此刻思路就很明确了,给出了users.sql的数据库表结构,说明flag就在password字段中。
直接getshell,读数据库里东西就行了。

getshell思路:把一句话写入日志文件,然后包含就会解析执行shell code。

那么我们来看一下都有哪些日志可以写入:

经过观察在error.log中只写入请求的URL和请求的User Agent
所以构造payload写入

直接写入文件中,用蚁剑连接
在网站目录下存在配置文件conn.php

里面内容如下:

连接上数据库得到 flag{dbc98dd7-90fb-44f4-8dbe-35a72f07ec9d}