web做题记录
2020.1.19 南邮ctf 签到题
题目:key在哪里?
在火狐浏览器中右键选择打开查看源代码,在源代码可以看到如下
因为是第一次做这个题,不知道提交啥,我先提交了“admiaanaaaaaaaaaaa”,其后提交了“flag_admiaanaaaaaaaaaaa”,最后觉得提交的应该带上网站的关键信息,我这才提交了nctf{flag_admiaanaaaaaaaaaaa} (一言难尽)
2020.1.19 南邮ctf 这题不是WEB
题目:
当时看见这个题目我是懵逼的,感觉应该是和那个gif文件有关
,在参考了下面这个知识点后,我尝试打开那个解码网页(但是!!姥姥家的信号是真的差,打不开网页,只能放弃
选择了另存为图片在本地用记事本打开。看到了在一堆乱码中的flag
2020.1.19 南邮ctf 单身二十年
题目:到这里找key
在题目网页中点击“到这里找key”会出现跳转http://chinalover.sinaapp.com/web8/search_key.php一瞬间后闪到http://chinalover.sinaapp.com/web8/no_key_is_here_forever.php
过后在跳转网页中查看网页源代码,没有什么发现,选择用burp suite进行抓包,在http://chinalover.sinaapp.com/web8/no_key_is_here_forever.php时抓包并没有什么发现,后选择退出去在http://chinalover.sinaapp.com/web8/中进行抓包 repeater后得到flag
2020.1.21 南邮ctf md5 collision
题目:$md51 = md5('QNKCDZO');
$a = @$_GET['a'];
$md52 = @md5($a);
if(isset($a)){
if ($a != 'QNKCDZO' && $md51 == $md52) {
echo "nctf{*****************}";
} else {
echo "false!!!";
}}
else{echo "please input a";}
这是一个php源码的题,首先对@提出了疑问,经过百度后,得到如下结果
然后对isset()函数提出了疑问,经过百度后得到:isset函数用于判断一个变量是否已经声明,且当判断一个变量存在且不为空时 先使用isset函数再使用empty函数
了解后再看代码,发现还是看不懂,才发现是对MD5不明了,搜索后发现是一种加密方式,然后在网上搜索查看了’QNKCDZO’对应的加密结果发现是’0e830400451993494058024219903391’,所以尝试以get方式输入http://chinalover.sinaapp.com/web19/?a=0e830400451993494058024219903391后得到的结果是false。再读源码后发现需要的不是0e830400451993494058024219903391而是另一串未解码前的a,通过下图的提示,搜索以0e开头的以get方式得到的a
如此得到了flag
2020.1.21 南邮ctf 签到题2
题目:
在输入框输入zhimakaimen后,发现页面没有变化。选择了抓包,在抓包后发现如下问题
即是text1的结果不是zhimakaimen 而是zhimakaime
发送到repeater后,对这串数据进行修改并Go得到如下,由此得到了flag
2020.1.21 南邮ctf COOKIE
题目:please login in first (另给出TIP:0==not)
点击网页进入后出现了“please login in first”的字样,因为题目的名字是cookie,便感觉应该与cookie有关,在火狐网页中F12打开存储中的cookie选项,得到如下
发现值为0,有根据题中所给的提示,对值进行修改,将0改为1后,刷新页面,即可得到flag,如图
2020.2.6 南邮ctf 单身一百年也没用
和 “单身二十年”一题非常类似。点击下图连接后,发现链接从http://chinalover.sinaapp.com/web9/到http://chinalover.sinaapp.com/web8/no_key_is_here_forever.php
所以联想到web8,进行抓包,得到flag
2020.2.6 南邮ctf SQL注入1
题目:
首先提交了一下查询,不出意料的错了,点击查看了source,发现了下图,要求user格需要输入admin
直接去尝试(没用到sql注入,但还是去尝试了),当然还是错了,又去看代码,思考密码的要求,网上搜索后,发现了下图的思路
又去看代码发现,下图语句,看出user和pass是一起检测的,所以尝试在输入admin时直接将后面关于密码的部分注释
(#),同时保证注释掉后面的部分后,关于user的部分仍然闭合,执行如下,得到flag
2020.2.16 南邮ctf php是世界上最好的语言
题目进去后就是404 Not Found ,查看源码后没有什么发现,在网上搜了一下说是挂了??
2020.2.16 南邮ctf sql注入2
题目:主要考察union
查看代码,与上一道注入题不同的是,用户名和密码不是一同查询的了,所以直接注释掉密码的方法不可行了,分析代码,(strcasecmp用忽略大小写比较字符串.,通过strcasecmp函数可以指定每个字符串用于比较的字符数,strncasecmp用来比较参数s1和s2字符串前n个字符,比较时会自动忽略大小写的差异)
返回值: |
该函数返回: 0 - 如果两个字符串相等 <0 - 如果 string1 小于 string2 >0 - 如果 string1 大于 string2 |
需要if语句为真才能得到flag,即需要密码不为空且!Strcasecmp($pass,$query[pw])为真,因为两者相等时,值为0,!0即为真,所以需要我们输入的密码与数据库中的密码相等
这时,查看sql语句"select pw from ctf where user='$user'",我们可以通过union查询语句,自己设定密码,即让色块部分失效,又因为密码是md5加密的,那么在数据库中,密码也应该是md5加密的,所以加入我们设定密码为username,那么就需要对username进行加密
执行’union select ‘14c4b06b824ec593239362517f538b29’# 密码输入username,得到flag
参考资料:https://wenku.baidu.com/view/3f3e03c84431b90d6c85c7fb.html
2020.2.16 南邮ctf 起名字真难
题目:源码:<?php
function noother_says_correct($number)
{
$one = ord('1'); //数字1
$nine = ord('9'); //数字9
for ($i = 0; $i < strlen($number); $i++)
{
$digit = ord($number{$i});
if ( ($digit >= $one) && ($digit <= $nine) )
{
return false; //一串数字每一个数字不能是1-9
}
}
return $number == '54975581388';
}
$flag='*******';
if(noother_says_correct($_GET['key'])) //需要与54975581388相同
echo $flag;
else
echo 'access denied';
?>
分析源码,想要得到flag需要函数执行为真,那么分析函数,其中ord表示“将ASCLL码值转换为字符”,根据别人的wp,得知可将54975581388转换成十六进制:0xCCCCCCCCC=54975581388,在url中以get方式输入,即可得到flag
2020.2.23 南邮ctf 文件包含(不是很懂)
题目:没错 这就是传说中的LFI
ok,看不懂是什么意思,搜了一下lfi,是一种漏洞的名字,具体参考https://blog.csdn.net/qq_29419013/article/details/81202358
可以通过构造一个漏洞,来查看需要的代码,即:?file=php://filter/read=convert.base64-encode/resource=index.php ,可以得到如下
进行解码,可以得到如下代码,即可得到flag
<html>
<title>asdf</title>
<?php
error_reporting(0);
if(!$_GET[file]){echo '<a href="./index.php?file=show.php">click me? no</a>';}
$file=$_GET['file'];
if(strstr($file,"../")||stristr($file, "tp")||stristr($file,"input")||stristr($file,"data")){
echo "Oh no!";
exit();
}
include($file);
//flag:nctf{edulcni_elif_lacol_si_siht}
?>
</html>
2020.2.23 南邮ctf php decode
题目:见到的一个类似编码的shell,请解码
对源码进行分析,经过搜索得知,
gzinflate是一种解压函数,把这个代码直接拿来运行,不造为什么出现下面的报错
wa,突然发现我好傻。。。echo,哎,把代码改成如下
还是直接运行代码得到flag
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2020.2.1 攻防世界 cookie
题目:你知道什么是cookie吗
在火狐浏览器中,使用F12快捷键,在存储中查看cookie,如下图发现值是cookie.php
将浏览器网页地址改为http://111.198.29.45:44150/cookie.php,得到如下,根据提示,查看网络
点击F12快捷键,在网络中可看到如下,如此可得到flag
2020.2.1 攻防世界 Robots
题目:robots协议
根据提示,本题主要考察robots协议,题目的第一个页面是空白页面在查看网页源代码没有发现后,首先网络搜索robots协议得到
robots协议也叫robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。因为一些系统中的URL是大小写敏感的,所以robots.txt的文件名应统一为小写。robots.txt应放置于网站的根目录下。如果想单独定义搜索引擎的漫游器访问子目录时的行为,那么可以将自定的设置合并到根目录下的robots.txt,或者使用robots元数据(Metadata,又称元数据)。
robots协议并不是一个规范,而只是约定俗成的,所以并不能保证网站的隐私。
对此协议有了一定了解之后尝试在网页中查询一个网页的robots协议,即将网址改成http://111.198.29.45:45981/robots.txt即可查看到一个网页的robots协议,得到flag的php
起初,我得到f1ag_1s_h3re.php后,选择直接在http://111.198.29.45:45981/robots.txt后添加/f1ag_1s_h3re.php即:http://111.198.29.45:45981/robots.txt/f1ag_1s_h3re.php 但发现网页出现404,再次思考robots协议后,理解到/robots.txt只是让我们可以查看到网页的robots,但是已经不是原网页,所以将网址修改为http://111.198.29.45:45981/f1ag_1s_h3re.php后,得到flag
2020.2.1 攻防世界 simple_is
题目:小宁发现了一个网页,但却一直输不对密码。(Flag格式为 Cyberpeace{xxxxxxxxx} )
打开题目后没有什么发现,就查看了网页源代码得到如下
这个东西真的时看了半天也没看明白,但代码中有两串数字:
70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65
\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30"
第二串数字看着是十六进制,又因为题目给到的提示是flag的格式为Cyberpeace{xxxxxxxxx} 联想到其他的flag答案,利用ASCII码对应将这串数字70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65 转换成字符得到:FAUX PASSWORD HAHA 是错误答案,于是尝试第二串数字
将第二串数字以同样的方式转换得到一串十进制数55,56,54,79,115,69,114,116,107,49,50,将得到的数字参考ASCII码转换成字符得:786OsErtk12
根据题目要求的flag格式得到flag为:Cyberpeace{786OsErtk12}
2020.2.1 攻防世界 backup
题目:寻找备份文件
打开题目后查看了网页源代码,没有发现什么,网络搜索“如何查看php的备份文件”没有收获,就去参考了别人的答案,得到了如下结果,利用http://111.198.29.45:41189/index.php.bak
将该文件下载后查看网页源代码即可得到flag
但是有一个疑问:为什么是http://111.198.29.45:41189/index.php.bak
搜索后得知php.bak文件是有些编辑器在编辑文件时自动备份的文件,用于紧急恢复
web做题记录的更多相关文章
- 攻防世界Web刷题记录(进阶区)
攻防世界Web刷题记录(进阶区) 1.baby_web 发现去掉URLhttp://111.200.241.244:51461/1.php后面的1.php,还是会跳转到http://111.200.2 ...
- UOJ 做题记录
UOJ 做题记录 其实我这么弱> >根本不会做题呢> > #21. [UR #1]缩进优化 其实想想还是一道非常丝播的题目呢> > 直接对于每个缩进长度统计一遍就好 ...
- project euler做题记录
ProjectEuler_做题记录 简单记录一下. problem 441 The inverse summation of coprime couples 神仙题.考虑答案为: \[\begin{a ...
- Sam做题记录
Sam做题记录 Hihocoder 后缀自动机二·重复旋律5 求一个串中本质不同的子串数 显然,答案是 \(\sum len[i]-len[fa[i]]\) Hihocoder 后缀自动机三·重复旋律 ...
- 退役IV次后做题记录
退役IV次后做题记录 我啥都不会了.... AGC023 D 如果所有的楼房都在\(S\)同一边可以直接得出答案. 否则考虑最左最右两边的票数,如果左边>=右边,那么最右边会投给左边,因为就算车 ...
- 退役III次后做题记录(扯淡)
退役III次后做题记录(扯淡) CF607E Cross Sum 计算几何屎题 直接二分一下,算出每条线的位置然后算 注意相对位置这个不能先搞出坐标,直接算角度就行了,不然会卡精度/px flag:计 ...
- 退役II次后做题记录
退役II次后做题记录 感觉没啥好更的,咕. atcoder1219 历史研究 回滚莫队. [六省联考2017]组合数问题 我是傻逼 按照组合意义等价于\(nk\)个物品,选的物品\(\mod k\) ...
- BJOI做题记录
BJOI做题记录 终于想起还要做一下历年省选题了2333 然而咕了的还是比做了的多2333 LOJ #2178. 「BJOI2017」机动训练 咕了. LOJ #2179. 「BJOI2017」树的难 ...
- FJOI2017前做题记录
FJOI2017前做题记录 2017-04-15 [ZJOI2017] 树状数组 问题转化后,变成区间随机将一个数异或一,询问两个位置的值相等的概率.(注意特判询问有一个区间的左端点为1的情况,因为题 ...
随机推荐
- 【机器学习】算法原理详细推导与实现(六):k-means算法
[机器学习]算法原理详细推导与实现(六):k-means算法 之前几个章节都是介绍有监督学习,这个章解介绍无监督学习,这是一个被称为k-means的聚类算法,也叫做k均值聚类算法. 聚类算法 在讲监督 ...
- 1.【Spring Cloud Alibaba】服务发现-Nacos
一.服务的提供者与服务的消费者 二.服务发现原理 如果用户中心地址发生变化怎么办? 服务的消费者总能找到服务的提供者的这种原理,即服务发现原理. 三.什么是Nacos? Nacos文档地址请查看,引入 ...
- PBFT 算法 java实现(下)
PBFT 算法的java实现(下) 在上一篇博客中(如果没有看上一篇博客建议去看上一篇博客),我们介绍了使用Java实现PBFT算法中节点的加入,view的同步等操作.在这篇博客中,我将介绍PBFT算 ...
- width、height为auto或者100%的区别
一.规则 1. 某div不设置宽度,那么width默认为auto. 2. 某子元素div的width为100%(或者设置为等于父元素宽度的具体值,比如父元素width为100px,子元素width也设 ...
- 【查阅】Chrome快捷键
高频简要Chrome快捷键整理 记录一下Chrome常用快捷键方便查询熟悉,提高工作效率. 在我认为比较高频有用的快捷键,会加粗和标记. 在日常中熟练使用快捷键能帮助我们提高工作效率. 一 .F区单键 ...
- golang单元测试简述
Golang中内置了对单元测试的支持,不需要像Java一样引入第三方Jar才能进行测试,下面将分别介绍Golang所支持的几种测试: 一.测试类型 Golang中单元测试有功能测试.基准测试. ...
- java设计模式学习笔记——里氏替换原则
oo中的继承性的思考和说明 1.继承包含这样一层含义:父类中凡是已经实现好的方法,实际上是在设定规范和契约,虽然它不强制要求所有的子类必须遵循这些七月,但是如果子类对这些已经实现的方法任意修改,就会对 ...
- 07.JS对象-2
前言: 学习一门编程语言的基本步骤(01)了解背景知识(02)搭建开发环境(03)语法规范(04)常量和变量(05)数据类型(06)数据类型转换(07)运算符(08)逻辑结构(09)函数(10)对象1 ...
- 如何用apply实现一个bind?
面试题:如何用apply实现一个bind? Function.prototype._bind = function(target) { // 保留调用_bind方法的对象 let _this = th ...
- Android中使用SeekBar拖动条实现改变图片透明度
场景 效果 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 将布局改为Lin ...