CUMTCTF-寒假赛出题总结与感想

出题过程

首先写了源码,设置了本地数据库web1和This_True(真正的flag表)
设置过程中存在数据库校验字符集的问题,相同的字符集才能union
本地实验成功
然后用docker拉取了php5.6环境(centos8不支持低版本php)环境配置了很长时间
环境为apache2+mariadb(mysql)+php5.6
数据库设置了web1用户的权限
将源码放上去后导出镜像docker commit
(源码文件放在根目录下,放在www/html下会丢失,不知道为啥,猜测原因是docker cp命令不是容器的命令因此无法记录,在容器内移动一次文件会记录在镜像内,因此文件不会丢失)
导出后重命名,将镜像push到docker.io,在服务器端登录并pull镜像即可
创建容器后由于没有设置环境的自动重启因此需要手动命令

/etc/init.d/apache2 start
/etc/init.d/mysql start

我还设置了一下mysql的定时任务,定时删除表中内容

event_scheduler=ON 
show variables like 'event_scheduler';

DELIMITER |
DROP PROCEDURE IF EXISTS clear_table |
CREATE PROCEDURE clear_table()
    BEGIN  
       DELETE FROM `user`;      
    END
|

CREATE EVENT IF NOT EXISTS time_clear_table
ON SCHEDULE EVERY 1200 SECOND//每20分钟删除一次
ON COMPLETION PRESERVE  
DO CALL clear_table();

ALTER EVENT time_clear_table ON
COMPLETION PRESERVE ENABLE;


密码学出题中遇到的一个问题是,脚本在window写入文件时不是预想的那样,在linux下运行则正确,猜测编码不一样

感想

第一次出题确实遇到了很多困难,首先是源码思路,参考博客与本地的数据库并不一样,懵了很久,休息了一会儿突然豁然开朗,还是不能太钻牛角尖,遇到了困难,不做了,睡大觉,还是有点道理的,休息一下也许会更有思路。
web出题最麻烦的就是环境问题,版本不兼容问题真的是搞吐了,不要装最新版环境!!!,老是踩到这个坑里,最新版老是有很多东西不兼容,当我知道centos8不兼容的时候真的心态崩了,真的考验心态,不过总算是在别人的提醒下发现了新的办法,拉取php5.6的镜像,最终终于搞好了,做事的时候真的要动动脑子想想怎么做才是最简单的,什么才是问题的关键,遇到困难不要脑子一热重来,往往重来之后又会后悔。
这次出题真的是过程有点曲折,但是真的学到很多东西,这次出题应该是我认真参与ctf比赛的最后一次了,以出题来画上一个圆满的句号,最终两道题的质量以及反响真的都很满意,很舒服。
我从大二上半学期接触ctf,如今是大三上半学期结束,这一年多时间真的学习到了很多,虽然还是因为懒的原因没有成为大佬,但是也算是没有虚度大学的光阴,这半学期的成绩也有所进步,在打ctf比赛以来认识了不少大佬,大家都在为自己的目标努力着,突然觉得这是一件很幸福的事,既然在做一件事就要全力以赴,道理虽然懂得晚了一些但是总算还是知道了,结束了大学的ctf比赛以后就要开始全心投入准备考研了,希望在ctf比赛中学到的知识,道理,学习方法能帮我度过我大学的最辛苦的一年,希望自己能上岸一个满意的学校和专业,加油吧!!!
最后感谢一下一起打ctf的老师和同学,感谢这一年多的ctf经历,希望以后有机会还能继续研究!


版权声明:本文为flying_bird2019原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。