awd入门

发布时间:2026/7/19 22:23:31
awd入门 这里我们采用乌班图虚拟机进行操作虚拟机docker和其他环境的安装推荐博客AWD练习的平台搭建_awd平台搭建-CSDN博客在我们创建队伍后我们使用docker ps我们就能发现开放了两个端口作为两个队伍的网站以及一个观战网站awd的得分形式是通过提交本队token和flag得分每个队伍的ssh链接密码在pass.txt中提交格式如下http://ip:8080/flag_file.php?tokenflagflag的来源在搜索框中使用cat /flag这里实际上和ctf没什么区别都是拿flag但是awd好就好在它能加固防御这里我们是通过rce实现的读取我们能在文件夹下找到源码这里的rce我们先试试找到它在哪里打开文件夹后我们能发现有一个 名称叫做team1的文件夹显然这里包含了网站的模板我们打开查看打开后有些混乱我们可能一时半会找不到出问题的文件是哪个这里我们在浏览器中使用f12我们能发现表单提交区域使用了一个叫做footer的程序我们跟进?php $shell$_POST[shell]; system($shell); if($shell !){ exit(); } ? !--footer-- div classfooter div classcontainer div classfooter-row div classcol-md-3 footer-grids h4Seafaring/h4 pmailexample.com/p p2 000 222 1111/p ul classsocial-icons lia classp/a/li lia classin/a/li lia classv/a/li lia classfacebook/a/li /ul /div div classcol-md-3 footer-grids h3目录/h3 ul lia href./index.php主页/a/li lia href./about.php?fileheader.php关于/a/li lia href./services.php服务/a/li lia href./contact.php联系我们/a/li /ul /div div classcol-md-4 footer-grids h3SHELL/h3 pIt seems that this command can be executed ...p form methodPOST actionfooter.php input nameshell typetext classtext valuels onfocusthis.value ; onblurif (this.value ) {this.value Enter Email;} input typesubmit value执行 /form /div div classclearfix /div /div /div /div div classfooter-bottom div classcontainer pCopyright copy; 2018.Company name All rights reserved.More Templates - /p /div /div !--//footer-- !-- for bootstrap working -- script srcjs/bootstrap.js /script刚开门就是大惊喜直接对用户的数据system没有任何阻拦原先这里是收集用户的邮箱大概是想归档到sql中我们先看看有没有类似的数据库-- MySQL dump 10.13 Distrib 5.7.19, for Linux (i686) -- -- Host: localhost Database: test -- ------------------------------------------------------ -- Server version 5.7.19-0ubuntu0.16.04.1 /*!40101 SET OLD_CHARACTER_SET_CLIENTCHARACTER_SET_CLIENT */; /*!40101 SET OLD_CHARACTER_SET_RESULTSCHARACTER_SET_RESULTS */; /*!40101 SET OLD_COLLATION_CONNECTIONCOLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; /*!40103 SET OLD_TIME_ZONETIME_ZONE */; /*!40103 SET TIME_ZONE00:00 */; /*!40014 SET OLD_UNIQUE_CHECKSUNIQUE_CHECKS, UNIQUE_CHECKS0 */; /*!40014 SET OLD_FOREIGN_KEY_CHECKSFOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS0 */; /*!40101 SET OLD_SQL_MODESQL_MODE, SQL_MODENO_AUTO_VALUE_ON_ZERO */; /*!40111 SET OLD_SQL_NOTESSQL_NOTES, SQL_NOTES0 */; -- -- Table structure for table admin -- drop database if exists test; create database test; use test; DROP TABLE IF EXISTS admin; /*!40101 SET saved_cs_client character_set_client */; /*!40101 SET character_set_client utf8 */; CREATE TABLE admin ( user_id int(10) unsigned NOT NULL AUTO_INCREMENT, user_name varchar(255) NOT NULL DEFAULT , user_pass varchar(255) NOT NULL DEFAULT , PRIMARY KEY (user_id) ) ENGINEMyISAM AUTO_INCREMENT4 DEFAULT CHARSETutf8; /*!40101 SET character_set_client saved_cs_client */; -- -- Dumping data for table admin -- LOCK TABLES admin WRITE; /*!40000 ALTER TABLE admin DISABLE KEYS */; INSERT INTO admin VALUES (1,admin,mysql); /*!40000 ALTER TABLE admin ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table news -- DROP TABLE IF EXISTS news; /*!40101 SET saved_cs_client character_set_client */; /*!40101 SET character_set_client utf8 */; CREATE TABLE news ( id int(10) unsigned NOT NULL AUTO_INCREMENT, news varchar(255) NOT NULL DEFAULT , pub_date date NOT NULL, PRIMARY KEY (id) ) ENGINEMyISAM AUTO_INCREMENT22 DEFAULT CHARSETutf8; /*!40101 SET character_set_client saved_cs_client */;有一个莫名其妙的数据库这里让ai写一条归档代码未尝不可但不是自己写的缺点意思。这里我们在网站目录下写一条flag效果是这样的看起来还是很真的这里我们把源码改成如果输入存在ls就输出固定内容程序原来怎么写咱们就怎么写接着我们让用户输入cat /flag的内容时打开假的flag?php $shell isset($_POST[shell]) ? $_POST[shell] : ; if (strpos($shell, ls) ! false) { echo Wopop_files a.php about.php admin bower.json config.php contact.php css data docker.sh flag.py flag.txt footer.php gulpfile.js images index.php js less login.php package.json run.sh search.php services.php single.php test.sql; exit(); } if (trim($shell) cat /flag) { if (file_exists(flag.txt)) { echo file_get_contents(flag.txt); } exit(); } ?当然这里的一切需要在docker中运行我们ssh链接一队默认端口在2201二队以此类推这里我们链接一队成功我们开始创建文件并且修改没什么问题了不过这里没办法模拟真实情况重启服务后全部修改都会消失权当自娱自乐了