• ctf题目writeup(8)


    2019.2.11

    南京邮电的ctf平台:

    地址http://ctf.nuptzj.cn/challenges#

    他们好像搭新的平台了。。。我注册弄了好半天。。。

    1.

    签到题,打开网址:

    查看一下页面源代码:

    2.

    这道题很熟悉,就是找 md5后开头为0e的 然后传参就行了:

     比如 ?a=s878926199a

    nctf{md5_collision_is_easy}

    3.

    这里查看页面源代码:

    这里最大长度是10 肯定不够 改成12什么的,足够我们输入 zhimakaimen

    nctf{follow_me_to_exploit}

    4.

    打开后:

    查看页面源代码,没发现什么有用的。试了试把index.html改成Index.php也不行。

    就把图片保存到本地,notepad++打开:

    最后一行:

    nctf{photo_can_also_hid3_msg}

    5.

    这道题打开后是这样的:

    打开后查看页面源代码(总共需要三次) 分别是 S0.html S0.htm 404.htm

    最后进入404.html:

    这个后退没什么用。直接查看源代码:

    这段注释 竖着看 就是flag

    nctf{this_is_a_fl4g}

    6.

    打开后这样:

    这里需要用unicode看:

    去百度一下aaencode

    http://utf-8.jp/public/aaencode.html

    原来是一种颜文字的加密方式,直接用这个加解密就行了:

    nctf{javascript_aaencode}

     7.

    这里点开后是这样:

    其实不知道原理,自己是误打误撞地,因为我在第一页就查看了源代码

    然后从这里点链接:

    可能正常的方式是抓包吧。这里一路查看源代码没想到就通了。。

    8.

    这道题以前做过,抓包 吧referer改成 http://www.google.com 就行

    nctf{http_referer}

    9.

    这道题涉及到了 php中一种加密方式,gzinflate(base64)加密,破解的方法就是把eval改成echo即可:

    nctf{gzip_base64_hhhhhh}

    10.

    这道题直接抓包(不能像上一道题那样直接查看源代码了)

    看样子是302跳转。。。

    nctf{this_is_302_redirect}

    11.

    打开页面是空白的,查看源代码也什么都没有,尝试抓包:

    然后发现 cookie是 login=0 结合提示,0==not,那么1就是真,改成login=1 :

    nctf{cookie_is_different_from_session}

    12.

    打开后有个提示:

    直接进去:

    所以就是 我们要进入 sql.php这个网址 通过给id赋值,得到flag。

    而再明显不过,1024就是我们想要读取的内容。但是这里被过滤了,不过他用的是 intval 这里用1024.1这样的小数 经过intval变换也会变成1024

    nctf{query_in_mysql}

    13.

    看到这提示就想到了啥,利用/x00截断:

    这里就构造 nctf= 的形式。 

    这里需要是数字,而且还得和#biubiubiu符合 strpos函数

    所以就得需要利用到 /x00

    有两种方式

    可以构造 ?nctf[]=1

    (利用数组,php中大多函数都无法处理数组,很多题都可以这么做)

    或者利用截断,使两个函数都可以利用到:

    ?nctf=1%00#biubiubiu

    nctf{use_00_to_jieduan}

    14.

    这里就是利用数组,?a[]=1&b[]=2

    nctf{php_is_so_cool}

    15.

    这道题用到了变量覆盖漏洞。

    说白了就是两个变量相等,导致变量被覆盖掉。

    要注意这里是post方式 需要用到hackbar。

    nctf{bian_liang_fu_gai!}

    16.

    这里大概意思就是 需要等于 54975581388 但是不能和他一样 ,用数组也无法绕过。

    所以采用十六进制:

    ?key=0xccccccccc

    nctf{follow_your_dream}

    17.

    jsfuck直接搞:

    进这个网页瞅瞅:

    tip在脑袋里,就是header呗。

    tip是 history of bash 直接百度下这是啥:

    所以直接访问/.bash_history 试试。

    那就接着访问/flagbak.zip 发现直接下载这个压缩包了。解压后得到flag

    nctf{bash_history_means_what}

    18.

     R1pDVE1NWlhHUTNETU4yQ0dZWkRNTUpYR00zREtNWldHTTJES1JSV0dJM0RDTlpUR1kyVEdNWlRHSTJVTU5SUkdaQ1RNTkJWSVkzREVOUlJHNFpUTU5KVEdFWlRNTjJF

    先base64 再base32 最后base16

    nctf{base64_base32_and_base16}

    19.

    其实不用python也行。。。直接base64在线一直解密就好了:

    nctf{please_use_python_to_decode_base64}

     20.

    密文:iEJqak3pjIaZ0NzLiITLwWTqzqGAtW2oyOTq1A3pzqas

    加密方式:1. 翻转明文
    2. 将明文的每个字符的ascii码加1
    3. base64编码
    4. 翻转
    5. rot13编码

    所以我们解密就是:

    1. rot13编码
    2. 翻转
    3. base64解码
    4. 将密文的每个字符的ascii减1
    5. 翻转密文

    代码:

    <?php function decode($str){ $m = base64_decode(strrev(str_rot13($str))); $n = null; $c = null; for($i=0;$i<strlen($m);$i++){ $c = substr($m,$i,1) ; $n = ord($c)-1; $c = chr($n); $r = $r.$c; } $r = strrev($r); echo $r; } decode("iEJqak3pjIaZ0NzLiITLwWTqzqGAtW2oyOTq1A3pzqas"); ?>
    

     解出:nctf{rot13_and_base64_and_strrev}

    21.

    这个就是随机的 base64 32 16

    可以用脚本,也可以咱们先解密看结果因为这三种都有不同的地方。

     或者写脚本

    答案:nctf{random_mixed_base64_encode}

    今天到这。。累了。 

  • 相关阅读:
    神通数据库 SQL 异常捕获
    StringBuilder Append 和 AppendLine 的细节
    Linux (Debian) 安装 Sqlplus 工具
    linux杀掉所有相关进程进程
    java和python 重写和重载
    python 深复制和浅复制
    python 闭包
    os.makedirs 权限问题
    python多进程和多线程
    python工厂函数
  • 原文地址:https://www.cnblogs.com/lixiaoyao123/p/10361927.html
Copyright © 2020-2023  润新知