CTF 入门笔记

站点:http://www.moctf.com/

web1:水题
非常简单的题目,直接F12查看元素即可,在HTML代码中,flag被注释了。

web2:水题

该题的核心 就是通过HTML代码对输入框进行了属性设置,限制输入框不可输入、宽度为4

但题目要求输入moctf,为5宽度;故此,需要删去不可输入的属性,宽度属性改为5

web3:访问限制:

该题的目的是限制访问的浏览器和身份;

第一:要求访问的身份是:NAIVE浏览器,解决方法是改变User-Agent(主要显示浏览器的信息)属性值

通过抓包,将User-Agent属性值变更:

第二:要求访问的身份是:香港记者

变更Accept-Language属性值为 : zh-HK

Accept-Language表示浏览器所支持的语言类型 == 表示所在的区域】

web3:机器蛇

发现是一个动态的游戏页面,进入robots.txt页面

发现内容,根据flag提示,进入/flag327a6c4304ad5938eaf0efb6cc3e53dc.php中

 web5:php黑魔法

源码:

<?php

    $flag="moctf{**************}";
    
    if (isset($_GET['a'])&&isset($_GET['b'])) {
        $a=$_GET['a'];
        $b=$_GET['b'];


        if($a==$b) 
        {
            echo "<center>Wrong Answer!</center>";
        }
        else {
            if(md5($a)==md5($b)) 
            {
                echo "<center>".$flag."</center>"; 
                echo "By:daoyuan";
            }
            else echo "<center>Wrong Answer!</center>";
        }
        
    }
    else echo "<center>好像少了点什么</center>"; 
?>

 代码审计后,发现要求a和b两个不等参数的md5要相同

 于是构造url 提供a和b的不等参数值 ?a=240610708&&b=QNKCDZO

 

web6:要钱

该题有源码:--代码审计

<?php
    include "flag.php";
    highlight_file(__FILE__);

    if (isset($_GET['money'])) {
        $money=$_GET['money'];
        if(strlen($money)<=4&&$money>time()&&!is_array($money)) 
      审计——//money 长度不超过 4 且 值必须大于 time() money不是数组
          // time()返回的是当前时间的秒数, {
echo $flag; echo "<!--By:daoyuan-->"; } else echo "Wrong Answer!"; } else echo "Wrong Answer!"; ?>

构造url:?money=1e10

解析:长度小于5,并且数值很大,不是数组 。

 web7:登录

SQL注入题目:万能的用户密码:—— admin ‘ -- '    或者     admin' #

web8:文件包含

 发现url中存在问题,

于是利用php伪协议:?file=php://filter/read=convert.base64-encode/resource=flag.php

 

base64解码后就得到flag   http://tool.oschina.net/encrypt?type=3

web9:

 -----------------------------------

MISC1:我可是黑客:

直接使用winhex十六进制查看即可,就在最后尾部。

原文地址:https://www.cnblogs.com/wangyuyang1016/p/10808862.html