B_roin

导航

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   (另给出TIP0==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注入,但还是去尝试了),当然还是错了,又去看代码,思考密码的要求,网上搜索后,发现了下图的思路

 

又去看代码发现,下图语句,看出userpass是一起检测的,所以尝试在输入admin时直接将后面关于密码的部分注释

#),同时保证注释掉后面的部分后,关于user的部分仍然闭合,执行如下,得到flag

 

2020.2.16 南邮ctf php是世界上最好的语言

题目进去后就是404 Not Found ,查看源码后没有什么发现,在网上搜了一下说是挂了??

2020.2.16 南邮ctf sql注入2

题目:主要考察union

查看代码,与上一道注入题不同的是,用户名和密码不是一同查询的了,所以直接注释掉密码的方法不可行了,分析代码,(strcasecmp用忽略大小写比较字符串.,通过strcasecmp函数可以指定每个字符串用于比较的字符数,strncasecmp用来比较参数s1s2字符串前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=54975581388url中以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协议,得到flagphp

 

起初,我得到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  是错误答案,于是尝试第二串数字

将第二串数字以同样的方式转换得到一串十进制数55565479115691141161074950,将得到的数字参考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文件是有些编辑器在编辑文件时自动备份的文件,用于紧急恢复

 

 

 

posted on 2020-02-16 17:31  B_roin  阅读(299)  评论(0编辑  收藏  举报