ctf题目writeup(8)

对着背影说爱祢 提交于 2019-12-25 04:41:38

 

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}

 

今天到这。。累了。 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!