寒假CTF学习打卡笔记~Day2
extract变量覆盖 <?php $flag='xxx'; extract($_GET); if(isset($shiyan)) { $content=trim(file_get_contents($flag)); if($shiyan==$content) { echo'flag{xxx}'; } else { echo'Oh.no'; } } ?> 补缺补漏: extract() 函数从数组中将变量导入到当前的符号表。该函数使用数组键名作为变量名,使用数组键值作为变量值。针对数组中的每个元素,将在当前符号表中创建对应的一个变量。该函数返回成功设置的变量数目。该函数产生的变量具有覆盖效果。 详细:https://www.cnblogs.com/goodswarm/p/10995256.html 这题要做的就是将原有的flag变量覆盖掉,让其file_get_contents 函数因无法正确获取文件而返回一个空值即可。 Payload: ?shiyan...
寒假CTF学习打卡笔记~Day1
第一个没有作业的寒假终于来了,但是在家感觉瞬间失去了在学校里平日的那种积极性,感觉变得越来越咸鱼。于是就打算在寒假的时候认真学习一下CTF,好歹不要虚度光阴。 打卡不一定每天都会坚持,但是感觉只要在博客上更新了笔记就可以在一定程度上督促自己的学习。这里会写下每天写题的时候遇到的新的知识以及部分做题笔记,还会有一些有意思的地方。 Bugku:备份是个好习惯 http://123.206.87.240:8002/web16/ 点进去是一堆奇怪的东西: d41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427e 看起来有md5的特征,但是md5往往只有16或者32位,这里却有64位。 根据题目提示的“备份是个好习惯”猜测可能会有源码泄露: http://123.206.87.240:8002/web16/index.php.bak 发现返回HTTP 200请求,于是乎下载,得到泄露的源码: <?php include_once "flag.php";...
2019年度总结
如今也就只能感慨一下岁月匆匆了,如今的我已经进入大学,而回想起刚刚中考完,在教室里用充满一丝期待、同时有有几分恐惧的眼神看着刚刚毕业的学长为我们阐述高中生活的那堂课,仿佛也刚刚过去没多久。 从2016年我的博客建站开始,在每年的十二月底我都会在这里写下对前一年的总结(2018年的因为高考的缘故并没有写很多,也因为各种原因被设置成了私密,这里就先把这篇To:未来的自己顶替下orz),我自己也知道自己的文笔并不是很好,这些总结并不会有多少人会看到、看到了会不会因为我写在这里的种种溴事来嘲笑我,但我只是想让这些记录我这一年生活的文字记号能够保留下来。认认真真准备每一年的总结,至少能给未来的自己一个回忆,至少能证明我在这一年笑过,哭过。 2019年对于我而言注定是一个永生难忘的一年:这一年是我成年的一年,这一年我高考、踏入大学校园、逐渐走向独立。2019年发生的事情太多太多了,以至于我为了准备写这篇文章的提纲就写了大半个上午。 回顾2019 辛酸的自主招生准备过程 因为我的高中走的是半竞赛道路,所以在今年的二月份我要根据各大高校的自主招生政策准备好各种材料...
本站已经支持QQ微信微博登陆
为了方便评论、讨论交流,我刚刚给本站配置了QQ微信微博登陆,只需要在评论区点击相应的按钮登陆后就可以评论了。 P.S.因为接口的资质审核很严,所以只能使用第三方的接口,可能有广告,不要去点就是了。 ↓↓↓可以在“发表评论”这里试试哦 ↓↓↓
NISA第一次打卡赛部分题目wp
Web题 水溶C的第一个网站: 打开网页,发现无法右键,按F12没有任何反应。于是在浏览器菜单里打开开发者工具查看源代码,发现网页屏蔽了这些鼠标和键盘事件: 根据网站标题提示的Inspect Me和屏蔽鼠标键盘分析可能在源代码中有突破口,于是直接下载整个网站,用grep或者Notepad++全局搜索网站的所有文件,尝试寻找flag: 找到三段flag,拼接即为最终flag python是世界上最好的语言 游戏规则判断以下式子答案的正误在两秒内提交你的答案,式子正确提交true,错误提交false,答对20次可以获得flag由于某位长者很讨厌速度快的记者,所以你不能在1s内提交 游戏规则已经写的很清楚了,咱直接上代码跑: import bs4 import requests import cookielib import urllib2 import time url="http://10.128.11.66:30888/" i=0 cookie = cookielib.CookieJar() handler = u...
NISA CTF Crypto两道题解
残缺的MD5 题面: 残缺的明文:NISA{mdfhg_odfhty_ojky6u0_ki70n} 密文:cfc6bcdf4cbeab03a66e8d2bbb84a8aa 下划线为残缺的数字或字母,请你找出完整的明文 这题已经给出了缺了三个字符的明文和md5密文,因为空格不多,我们直接上脚本爆破就可以了: import hashlib import itertools word="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" #观察其他的区域推测空缺的部分都是字母或者数字 r=itertools.product(word,repeat=3) #生成爆破容器 answer="cfc6bcdf4cbeab03a66e8d2bbb84a8aa" #加密后的密文 for i in r: dec = "NISA{mdfhg" + i[0] + "odfhty" + i[1] + "ojky6u0" + i[2] + "ki70n}" #开始枚举爆破 d...
NISA CTF Web部分题库WriteUp
第一题 Just_post 题目地址:http://47.101.198.103:10069/ 点进去直接显示源码了 $flag=$_POST["flag"];if($flag=='NISA_CTF')echo 'NISA_CTF{******}'; 根据这个源码,直接给服务器POST flag=NISA_CTF,就直接返回flag了 第二题 easy 题目地址 http://47.101.198.103:10086/ 点进去还是直接源码<?phpinclude "flag.php";$hello = @$_GET['hello'];$id = @$_GET['id'];if(md5($hello) == 0 && !is_numeric($id) && $id == 1){echo "$flag";}show_source(FILE);?> 看到这里对传入的id有一个判断,不过这个判断很奇怪,用is_numeric($id)来过滤数字,但是又要求id=1,这就自相矛盾了。 这时候就要用到php神奇的比较符了,这...
To:未来的自己
未来的自己: 嗨,不知道你现在过得怎么样,或许你看到这封信时,距离我们上次见面已经过去了很多年了——毕竟,时光是不能倒流的。 就在现在,写这封信的时候,你即将迎来你的17周岁生日。提笔写这封信时多少有些犹豫。但是马上就要17岁的你意识到自己正在经历一段人生中最特殊、最青涩的时光,便下定决心坐下来写这封信。 是的——即将17岁的你打算用文字记录自己的青春。青春是一生中最珍贵的时光,记忆终将被湍急的时间之河洗刷,但文字雕刻下的一幕幕场景,一个个鲜活的人却永远不会褪去。希望你,我未来的自己,在看到这些文字之后能够想起你曾经还拥有过这么一段美好动人的岁月。 即将17岁的你,总是对一切新鲜的事物表现出强烈的好奇心和热情——有的时候甚至还有些幼稚。你热爱这个世界,热爱自然,还有身边的一切。每每想到即将要做一件之前从来没做过的事情或者不敢做的事情的时候,总是激动不已。不久前,你爱上了钢琴乐。尽管你的钢琴弹奏水平一直都还停滞在小学低年级学钢琴的时候的水平,但是你还是非常享受琴声在耳边徜徉的感觉。你也会不断地自言自语:哇,这个世界是如此的美妙! 即将17岁的你,也遇上了各种各样之前从来都没有遇到过...
2017年度总结
2017年,说真的,真的是在一瞬间就过了。在2016年的最后一天晚上写总结的这事情好像还有没有过去多久。以前总是听别人说,上了高中以后时间一年过得比一年快,现在看起来似乎就是这么一回事。 这一年,总感觉自己经历了太多太多。 这一年…… 回想一下今年年初我是什么样子…… 当时的自己,志气满满,总感觉这一年是自己非常重要的一年——去年的NOIP因为少打了一个#include<cstdio>直接导致第一题CE而与省二失之交臂。当时想着要在这一年把自己的OI水平提高上去,之后要拿一个省一之后争取进队。即使现在回想当时的自己就觉得当时的自己简直就是在做白日梦,但是看看现在的自己与当时的预期的差别,总是会感到有点遗憾和惋惜。 在寒假的时候,自己心血来潮开设了柯南情报局网站,再后来又因为一个非常偶然的机会深入研究了柯南官方app,发现这个app不论是从逻辑设计还是从实现技术上来看都存在非常大的问题,于是开始了长达4个月的深入破解研究(寒假之后还在利用周六晚上的时间继续研究)。最终这个app被我完全破解了。现在回头看看当时确实走了很多的弯路,不过想想能从中提高自己的技术水平还是很值...
[CodeVS 1294]全排列
题目描述 Description 给出一个n, 请输出n的所有全排列 输入描述 Input Description 读入仅一个整数n (1<=n<=10) 输出描述 Output Description 一共n!行,每行n个用空格隔开的数,表示n的一个全排列。并且按全排列的字典序输出。 样例输入 Sample Input 3 样例输出 Sample Output 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 最近练得比较废,来练练深搜。 思路没什么好讲的,正常的深搜思路,看代码就行了。 另外,据说写cout的有一个点过不了2,我想说: 标准输入输出大法好!! 233333333 代码: #include<cstdio> int n,data[10]; void dfs(int x) { if(x>n) //搜到了n就输出 { for(int i=1;i<=n;i++) { ...